File tree Expand file tree Collapse file tree 3 files changed +19
-2
lines changed Expand file tree Collapse file tree 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;
1111var isUndefined = utils . isUndefined ;
1212var isFunction = utils . isFunction ;
1313var isString = utils . isString ;
14+ var isArray = utils . isArray ;
1415var isEmptyObject = utils . isEmptyObject ;
1516var each = utils . each ;
1617var objectMerge = utils . objectMerge ;
@@ -481,8 +482,7 @@ Raven.prototype = {
481482 var stack = TraceKit . computeStackTrace ( ex ) ;
482483
483484 // 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 ] ;
486486 var fileurl = ( initialCall && initialCall . url ) || '' ;
487487
488488 if (
Original file line number Diff line number Diff line change @@ -38,6 +38,10 @@ function isString(what) {
3838 return Object . prototype . toString . call ( what ) === '[object String]' ;
3939}
4040
41+ function isArray ( what ) {
42+ return Object . prototype . toString . call ( what ) === '[object Array]' ;
43+ }
44+
4145function isEmptyObject ( what ) {
4246 for ( var _ in what ) {
4347 if ( what . hasOwnProperty ( _ ) ) {
@@ -371,6 +375,7 @@ module.exports = {
371375 isUndefined : isUndefined ,
372376 isFunction : isFunction ,
373377 isString : isString ,
378+ isArray : isArray ,
374379 isEmptyObject : isEmptyObject ,
375380 supportsErrorEvent : supportsErrorEvent ,
376381 wrappedCallback : wrappedCallback ,
Original file line number Diff line number Diff line change @@ -8,6 +8,7 @@ var utils = require('../src/utils');
88var isUndefined = utils . isUndefined ;
99var isFunction = utils . isFunction ;
1010var isString = utils . isString ;
11+ var isArray = utils . isArray ;
1112var isObject = utils . isObject ;
1213var isEmptyObject = utils . isEmptyObject ;
1314var isError = utils . isError ;
@@ -52,6 +53,17 @@ describe('utils', function() {
5253 } ) ;
5354 } ) ;
5455
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+
5567 describe ( 'isObject' , function ( ) {
5668 it ( 'should do as advertised' , function ( ) {
5769 assert . isTrue ( isObject ( { } ) ) ;
You can’t perform that action at this time.
0 commit comments