Merge branch 'jasmine-deep-clone-args' of https://github.com/aj-dev/jasmine
- Merges #1424 from @aj-dev
This commit is contained in:
@@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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$);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user