Skip to content

Commit 2a7e6b1

Browse files
committed
Sentry wants stack frames from oldest to newest, lol
1 parent 0ae196a commit 2a7e6b1

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

src/raven.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -506,6 +506,9 @@ function processException(type, message, fileurl, lineno, frames, options) {
506506
if (globalOptions.ignoreErrors.test(message)) return;
507507

508508
if (frames && frames.length) {
509+
// Sentry expects frames oldest to newest
510+
// and JS sends them as newest to oldest
511+
frames.reverse();
509512
stacktrace = {frames: frames};
510513
fileurl = frames[0].filename || fileurl;
511514
} else if (fileurl) {

test/raven.test.js

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -399,47 +399,49 @@ describe('globals', function() {
399399

400400
var frames = [
401401
{
402-
filename: 'http://example.com/file1.js'
402+
filename: 'http://example.com/file2.js'
403403
},
404404
{
405-
filename: 'http://example.com/file2.js'
405+
filename: 'http://example.com/file1.js'
406406
}
407-
];
407+
], framesFlipped = frames.slice(0);
408+
409+
framesFlipped.reverse();
408410

409-
processException('Error', 'lol', 'http://example.com/override.js', 10, frames, {});
411+
processException('Error', 'lol', 'http://example.com/override.js', 10, frames.slice(0), {});
410412
assert.deepEqual(window.send.lastCall.args, [{
411413
exception: {
412414
type: 'Error',
413415
value: 'lol'
414416
},
415417
stacktrace: {
416-
frames: frames
418+
frames: framesFlipped
417419
},
418420
culprit: 'http://example.com/file1.js',
419421
message: 'lol at 10'
420422
}]);
421423

422-
processException('Error', 'lol', '', 10, frames, {});
424+
processException('Error', 'lol', '', 10, frames.slice(0), {});
423425
assert.deepEqual(window.send.lastCall.args, [{
424426
exception: {
425427
type: 'Error',
426428
value: 'lol'
427429
},
428430
stacktrace: {
429-
frames: frames
431+
frames: framesFlipped
430432
},
431433
culprit: 'http://example.com/file1.js',
432434
message: 'lol at 10'
433435
}]);
434436

435-
processException('Error', 'lol', '', 10, frames, {extra: 'awesome'});
437+
processException('Error', 'lol', '', 10, frames.slice(0), {extra: 'awesome'});
436438
assert.deepEqual(window.send.lastCall.args, [{
437439
exception: {
438440
type: 'Error',
439441
value: 'lol'
440442
},
441443
stacktrace: {
442-
frames: frames
444+
frames: framesFlipped
443445
},
444446
culprit: 'http://example.com/file1.js',
445447
message: 'lol at 10',

0 commit comments

Comments
 (0)