File tree Expand file tree Collapse file tree 2 files changed +16
-3
lines changed Expand file tree Collapse file tree 2 files changed +16
-3
lines changed Original file line number Diff line number Diff line change @@ -178,10 +178,13 @@ var Raven = {
178
178
}
179
179
180
180
function wrapped ( ) {
181
- var args = [ ] , i = arguments . length ;
181
+ var args = [ ] , i = arguments . length ,
182
+ deep = ! options || options && options . deep !== false ;
182
183
// Recursively wrap all of a function's arguments that are
183
184
// functions themselves.
184
- while ( i -- ) args [ i ] = Raven . wrap ( options , arguments [ i ] ) ;
185
+
186
+ while ( i -- ) args [ i ] = deep ? Raven . wrap ( options , arguments [ i ] ) : arguments [ i ] ;
187
+
185
188
try {
186
189
/*jshint -W040*/
187
190
return func . apply ( this , args ) ;
Original file line number Diff line number Diff line change @@ -1040,7 +1040,7 @@ describe('Raven (public API)', function() {
1040
1040
} ) ;
1041
1041
1042
1042
it ( 'should return the result of a wrapped function' , function ( ) {
1043
- var func = function ( ) { return 'foo' } ;
1043
+ var func = function ( ) { return 'foo' ; } ;
1044
1044
var wrapped = Raven . wrap ( func ) ;
1045
1045
assert . equal ( wrapped ( ) , 'foo' ) ;
1046
1046
} ) ;
@@ -1063,6 +1063,16 @@ describe('Raven (public API)', function() {
1063
1063
assert . isTrue ( spy . calledOnce ) ;
1064
1064
} ) ;
1065
1065
1066
+ it ( 'should not wrap function arguments' , function ( ) {
1067
+ var spy = this . sinon . spy ( ) ;
1068
+ var wrapped = Raven . wrap ( { deep : false } , function ( f ) {
1069
+ assert . isUndefined ( f . __raven__ ) ;
1070
+ f ( ) ;
1071
+ } ) ;
1072
+ wrapped ( spy ) ;
1073
+ assert . isTrue ( spy . calledOnce ) ;
1074
+ } ) ;
1075
+
1066
1076
it ( 'should maintain the correct scope' , function ( ) {
1067
1077
var foo = { } ;
1068
1078
var bar = function ( ) {
You can’t perform that action at this time.
0 commit comments