From c36a0058937661bc9f2af187e37c07a5c9ba8e88 Mon Sep 17 00:00:00 2001 From: johnjbarton Date: Thu, 3 Jan 2019 15:26:02 -0800 Subject: [PATCH] Support Error.stack in globalErrors. See https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror --- spec/core/integration/EnvSpec.js | 4 +++- src/core/Env.js | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/spec/core/integration/EnvSpec.js b/spec/core/integration/EnvSpec.js index dc690984..37b25182 100644 --- a/spec/core/integration/EnvSpec.js +++ b/spec/core/integration/EnvSpec.js @@ -2046,6 +2046,7 @@ describe("Env integration", function() { passed: false, globalErrorType: 'load', message: 'Uncaught SyntaxError: Unexpected end of input', + stack: 'a stack', filename: 'borkenSpec.js', lineno: 42 }, @@ -2053,6 +2054,7 @@ describe("Env integration", function() { passed: false, globalErrorType: 'load', message: 'Uncaught Error: ENOCHEESE', + stack: undefined, filename: undefined, lineno: undefined } @@ -2062,7 +2064,7 @@ describe("Env integration", function() { }); env.addReporter(reporter); - global.onerror('Uncaught SyntaxError: Unexpected end of input', 'borkenSpec.js', 42); + global.onerror('Uncaught SyntaxError: Unexpected end of input', 'borkenSpec.js', 42, undefined, {stack: 'a stack'}); global.onerror('Uncaught Error: ENOCHEESE'); env.execute(); diff --git a/src/core/Env.js b/src/core/Env.js index 3b9c2b97..02476268 100644 --- a/src/core/Env.js +++ b/src/core/Env.js @@ -100,11 +100,12 @@ getJasmineRequireObj().Env = function(j$) { if (!options.suppressLoadErrors) { installGlobalErrors(); - globalErrors.pushListener(function(message, filename, lineno) { + globalErrors.pushListener(function(message, filename, lineno, colNo, err) { topSuite.result.failedExpectations.push({ passed: false, globalErrorType: 'load', message: message, + stack: err && err.stack, filename: filename, lineno: lineno });