From 9e852b1aa07d0e91a2e2e3de9538b3299e48b9fb Mon Sep 17 00:00:00 2001 From: Ben Vinegar Date: Thu, 1 Sep 2016 10:57:12 -0700 Subject: [PATCH] Fix trimHeadFrames appearing in outbound payload in some cases (#714) --- src/raven.js | 5 +++-- test/integration/test.js | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/raven.js b/src/raven.js index cf8b87d2dcb2..60c05f551641 100644 --- a/src/raven.js +++ b/src/raven.js @@ -1141,8 +1141,6 @@ Raven.prototype = { for (var j = 0; j < options.trimHeadFrames && j < frames.length; j++) { frames[j].in_app = false; } - // ... delete to prevent from appearing in outbound payload - delete options.trimHeadFrames; } } frames = frames.slice(0, this._globalOptions.stackTraceLimit); @@ -1263,6 +1261,9 @@ Raven.prototype = { baseData.request = httpData; } + // HACK: delete `trimHeadFrames` to prevent from appearing in outbound payload + if (data.trimHeadFrames) delete data.trimHeadFrames; + data = objectMerge(baseData, data); // Merge in the tags and extra separately since objectMerge doesn't handle a deep merge diff --git a/test/integration/test.js b/test/integration/test.js index 75dd42d4797e..7388f2d4d594 100644 --- a/test/integration/test.js +++ b/test/integration/test.js @@ -79,6 +79,25 @@ describe('integration', function () { ); }); + it('should generate a synthetic trace for captureException w/ non-errors', function (done) { + var iframe = this.iframe; + iframeExecute(iframe, done, + function () { + setTimeout(done); + + + Raven.captureException({foo:'bar'}); + }, + function () { + var ravenData = iframe.contentWindow.ravenData[0]; + assert.isAbove(ravenData.stacktrace.frames.length, 1); + + // verify trimHeadFrames hasn't slipped into final payload + assert.isUndefined(ravenData.trimHeadFrames); + } + ); + }); + it('should capture an Error object passed to Raven.captureException w/ maxMessageLength set (#647)', function (done) { var iframe = this.iframe; iframeExecute(iframe, done,