Merge branch 'jasmine-deep-clone-args' of https://github.com/aj-dev/jasmine

- Merges #1424 from @aj-dev
This commit is contained in:
Steve Gravrock
2017-10-23 11:32:58 -07:00
5 changed files with 46 additions and 46 deletions

View File

@@ -45,7 +45,7 @@ var getJasmineRequireObj = (function (jasmineGlobal) {
var j$ = {}; var j$ = {};
jRequire.base(j$, jasmineGlobal); jRequire.base(j$, jasmineGlobal);
j$.util = jRequire.util(); j$.util = jRequire.util(j$);
j$.errors = jRequire.errors(); j$.errors = jRequire.errors();
j$.formatErrorMsg = jRequire.formatErrorMsg(); j$.formatErrorMsg = jRequire.formatErrorMsg();
j$.Any = jRequire.Any(j$); j$.Any = jRequire.Any(j$);
@@ -66,7 +66,7 @@ var getJasmineRequireObj = (function (jasmineGlobal) {
j$.ArrayWithExactContents = jRequire.ArrayWithExactContents(j$); j$.ArrayWithExactContents = jRequire.ArrayWithExactContents(j$);
j$.pp = jRequire.pp(j$); j$.pp = jRequire.pp(j$);
j$.QueueRunner = jRequire.QueueRunner(j$); j$.QueueRunner = jRequire.QueueRunner(j$);
j$.ReportDispatcher = jRequire.ReportDispatcher(); j$.ReportDispatcher = jRequire.ReportDispatcher(j$);
j$.Spec = jRequire.Spec(j$); j$.Spec = jRequire.Spec(j$);
j$.Spy = jRequire.Spy(j$); j$.Spy = jRequire.Spy(j$);
j$.SpyRegistry = jRequire.SpyRegistry(j$); j$.SpyRegistry = jRequire.SpyRegistry(j$);
@@ -355,7 +355,7 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) {
}; };
}; };
getJasmineRequireObj().util = function() { getJasmineRequireObj().util = function(j$) {
var util = {}; var util = {};
@@ -412,6 +412,23 @@ getJasmineRequireObj().util = function() {
return cloned; return cloned;
}; };
util.cloneArgs = function(args) {
var clonedArgs = [];
var argsAsArray = j$.util.argsToArray(args);
for(var i = 0; i < argsAsArray.length; i++) {
var str = Object.prototype.toString.apply(argsAsArray[i]),
primitives = /^\[object (Boolean|String|RegExp|Number)/;
// All falsey values are either primitives, `null`, or `undefined.
if (!argsAsArray[i] || str.match(primitives)) {
clonedArgs.push(argsAsArray[i]);
} else {
clonedArgs.push(j$.util.clone(argsAsArray[i]));
}
}
return clonedArgs;
};
util.getPropertyDescriptor = function(obj, methodName) { util.getPropertyDescriptor = function(obj, methodName) {
var descriptor, var descriptor,
proto = obj; proto = obj;
@@ -1629,26 +1646,9 @@ getJasmineRequireObj().CallTracker = function(j$) {
var calls = []; var calls = [];
var opts = {}; var opts = {};
function argCloner(context) {
var clonedArgs = [];
var argsAsArray = j$.util.argsToArray(context.args);
for(var i = 0; i < argsAsArray.length; i++) {
var str = Object.prototype.toString.apply(argsAsArray[i]),
primitives = /^\[object (Boolean|String|RegExp|Number)/;
// All falsey values are either primitives, `null`, or `undefined.
if (!argsAsArray[i] || str.match(primitives)) {
clonedArgs.push(argsAsArray[i]);
} else {
clonedArgs.push(j$.util.clone(argsAsArray[i]));
}
}
context.args = clonedArgs;
}
this.track = function(context) { this.track = function(context) {
if(opts.cloneArgs) { if(opts.cloneArgs) {
argCloner(context); context.args = j$.util.cloneArgs(context.args);
} }
calls.push(context); calls.push(context);
}; };
@@ -4326,7 +4326,7 @@ getJasmineRequireObj().QueueRunner = function(j$) {
return QueueRunner; return QueueRunner;
}; };
getJasmineRequireObj().ReportDispatcher = function() { getJasmineRequireObj().ReportDispatcher = function(j$) {
function ReportDispatcher(methods) { function ReportDispatcher(methods) {
var dispatchedMethods = methods || []; var dispatchedMethods = methods || [];
@@ -4364,7 +4364,7 @@ getJasmineRequireObj().ReportDispatcher = function() {
for (var i = 0; i < reporters.length; i++) { for (var i = 0; i < reporters.length; i++) {
var reporter = reporters[i]; var reporter = reporters[i];
if (reporter[method]) { if (reporter[method]) {
reporter[method].apply(reporter, args); reporter[method].apply(reporter, j$.util.cloneArgs(args));
} }
} }
} }

View File

@@ -7,26 +7,9 @@ getJasmineRequireObj().CallTracker = function(j$) {
var calls = []; var calls = [];
var opts = {}; var opts = {};
function argCloner(context) {
var clonedArgs = [];
var argsAsArray = j$.util.argsToArray(context.args);
for(var i = 0; i < argsAsArray.length; i++) {
var str = Object.prototype.toString.apply(argsAsArray[i]),
primitives = /^\[object (Boolean|String|RegExp|Number)/;
// All falsey values are either primitives, `null`, or `undefined.
if (!argsAsArray[i] || str.match(primitives)) {
clonedArgs.push(argsAsArray[i]);
} else {
clonedArgs.push(j$.util.clone(argsAsArray[i]));
}
}
context.args = clonedArgs;
}
this.track = function(context) { this.track = function(context) {
if(opts.cloneArgs) { if(opts.cloneArgs) {
argCloner(context); context.args = j$.util.cloneArgs(context.args);
} }
calls.push(context); calls.push(context);
}; };

View File

@@ -1,4 +1,4 @@
getJasmineRequireObj().ReportDispatcher = function() { getJasmineRequireObj().ReportDispatcher = function(j$) {
function ReportDispatcher(methods) { function ReportDispatcher(methods) {
var dispatchedMethods = methods || []; var dispatchedMethods = methods || [];
@@ -36,7 +36,7 @@ getJasmineRequireObj().ReportDispatcher = function() {
for (var i = 0; i < reporters.length; i++) { for (var i = 0; i < reporters.length; i++) {
var reporter = reporters[i]; var reporter = reporters[i];
if (reporter[method]) { if (reporter[method]) {
reporter[method].apply(reporter, args); reporter[method].apply(reporter, j$.util.cloneArgs(args));
} }
} }
} }

View File

@@ -23,7 +23,7 @@ var getJasmineRequireObj = (function (jasmineGlobal) {
var j$ = {}; var j$ = {};
jRequire.base(j$, jasmineGlobal); jRequire.base(j$, jasmineGlobal);
j$.util = jRequire.util(); j$.util = jRequire.util(j$);
j$.errors = jRequire.errors(); j$.errors = jRequire.errors();
j$.formatErrorMsg = jRequire.formatErrorMsg(); j$.formatErrorMsg = jRequire.formatErrorMsg();
j$.Any = jRequire.Any(j$); j$.Any = jRequire.Any(j$);
@@ -44,7 +44,7 @@ var getJasmineRequireObj = (function (jasmineGlobal) {
j$.ArrayWithExactContents = jRequire.ArrayWithExactContents(j$); j$.ArrayWithExactContents = jRequire.ArrayWithExactContents(j$);
j$.pp = jRequire.pp(j$); j$.pp = jRequire.pp(j$);
j$.QueueRunner = jRequire.QueueRunner(j$); j$.QueueRunner = jRequire.QueueRunner(j$);
j$.ReportDispatcher = jRequire.ReportDispatcher(); j$.ReportDispatcher = jRequire.ReportDispatcher(j$);
j$.Spec = jRequire.Spec(j$); j$.Spec = jRequire.Spec(j$);
j$.Spy = jRequire.Spy(j$); j$.Spy = jRequire.Spy(j$);
j$.SpyRegistry = jRequire.SpyRegistry(j$); j$.SpyRegistry = jRequire.SpyRegistry(j$);

View File

@@ -1,4 +1,4 @@
getJasmineRequireObj().util = function() { getJasmineRequireObj().util = function(j$) {
var util = {}; var util = {};
@@ -55,6 +55,23 @@ getJasmineRequireObj().util = function() {
return cloned; return cloned;
}; };
util.cloneArgs = function(args) {
var clonedArgs = [];
var argsAsArray = j$.util.argsToArray(args);
for(var i = 0; i < argsAsArray.length; i++) {
var str = Object.prototype.toString.apply(argsAsArray[i]),
primitives = /^\[object (Boolean|String|RegExp|Number)/;
// All falsey values are either primitives, `null`, or `undefined.
if (!argsAsArray[i] || str.match(primitives)) {
clonedArgs.push(argsAsArray[i]);
} else {
clonedArgs.push(j$.util.clone(argsAsArray[i]));
}
}
return clonedArgs;
};
util.getPropertyDescriptor = function(obj, methodName) { util.getPropertyDescriptor = function(obj, methodName) {
var descriptor, var descriptor,
proto = obj; proto = obj;