File tree 3 files changed +19
-2
lines changed
3 files changed +19
-2
lines changed Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ var isErrorEvent = utils.isErrorEvent;
11
11
var isUndefined = utils . isUndefined ;
12
12
var isFunction = utils . isFunction ;
13
13
var isString = utils . isString ;
14
+ var isArray = utils . isArray ;
14
15
var isEmptyObject = utils . isEmptyObject ;
15
16
var each = utils . each ;
16
17
var objectMerge = utils . objectMerge ;
@@ -481,8 +482,7 @@ Raven.prototype = {
481
482
var stack = TraceKit . computeStackTrace ( ex ) ;
482
483
483
484
// stack[0] is `throw new Error(msg)` call itself, we are interested in the frame that was just before that, stack[1]
484
- var initialCall = stack . stack [ 1 ] ;
485
-
485
+ var initialCall = isArray ( stack . stack ) && stack . stack [ 1 ] ;
486
486
var fileurl = ( initialCall && initialCall . url ) || '' ;
487
487
488
488
if (
Original file line number Diff line number Diff line change @@ -38,6 +38,10 @@ function isString(what) {
38
38
return Object . prototype . toString . call ( what ) === '[object String]' ;
39
39
}
40
40
41
+ function isArray ( what ) {
42
+ return Object . prototype . toString . call ( what ) === '[object Array]' ;
43
+ }
44
+
41
45
function isEmptyObject ( what ) {
42
46
for ( var _ in what ) {
43
47
if ( what . hasOwnProperty ( _ ) ) {
@@ -371,6 +375,7 @@ module.exports = {
371
375
isUndefined : isUndefined ,
372
376
isFunction : isFunction ,
373
377
isString : isString ,
378
+ isArray : isArray ,
374
379
isEmptyObject : isEmptyObject ,
375
380
supportsErrorEvent : supportsErrorEvent ,
376
381
wrappedCallback : wrappedCallback ,
Original file line number Diff line number Diff line change @@ -8,6 +8,7 @@ var utils = require('../src/utils');
8
8
var isUndefined = utils . isUndefined ;
9
9
var isFunction = utils . isFunction ;
10
10
var isString = utils . isString ;
11
+ var isArray = utils . isArray ;
11
12
var isObject = utils . isObject ;
12
13
var isEmptyObject = utils . isEmptyObject ;
13
14
var isError = utils . isError ;
@@ -52,6 +53,17 @@ describe('utils', function() {
52
53
} ) ;
53
54
} ) ;
54
55
56
+ describe ( 'isArray' , function ( ) {
57
+ it ( 'should do as advertised' , function ( ) {
58
+ assert . isTrue ( isArray ( [ ] ) ) ;
59
+ assert . isTrue ( isArray ( new Array ( 42 ) ) ) ;
60
+ assert . isFalse ( isArray ( '' ) ) ;
61
+ assert . isFalse ( isArray ( { } ) ) ;
62
+ assert . isFalse ( isArray ( undefined ) ) ;
63
+ assert . isFalse ( isArray ( function ( ) { } ) ) ;
64
+ } ) ;
65
+ } ) ;
66
+
55
67
describe ( 'isObject' , function ( ) {
56
68
it ( 'should do as advertised' , function ( ) {
57
69
assert . isTrue ( isObject ( { } ) ) ;
You can’t perform that action at this time.
0 commit comments