From 971d381f54e7e241db82e8cfbbd6713620188f58 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 25 Feb 2026 15:03:30 +0000 Subject: [PATCH 1/2] Initial plan From 70bb4591860d3eaa19c9a566087f44312a26a13a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 25 Feb 2026 15:06:07 +0000 Subject: [PATCH 2/2] Fix Cannot read property 'name' of undefined when e.reason is null/undefined Co-authored-by: niemyjski <1020579+niemyjski@users.noreply.github.com> --- package-lock.json | 8 ++++++-- spec/tracekit-spec.js | 14 ++++++++++++++ tracekit.js | 4 ++-- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index c8364f1..8f54564 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "tracekit", - "version": "0.4.7", + "version": "0.4.8", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "tracekit", - "version": "0.4.7", + "version": "0.4.8", "license": "MIT", "devDependencies": { "grunt": "1.6.1", @@ -107,6 +107,7 @@ "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/linkify-it": "*", "@types/mdurl": "*" @@ -2076,6 +2077,7 @@ "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.4.tgz", "integrity": "sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==", "dev": true, + "peer": true, "dependencies": { "@colors/colors": "1.5.0", "body-parser": "^1.19.0", @@ -3662,6 +3664,7 @@ "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", "dev": true, + "peer": true, "requires": { "@types/linkify-it": "*", "@types/mdurl": "*" @@ -5128,6 +5131,7 @@ "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.4.tgz", "integrity": "sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==", "dev": true, + "peer": true, "requires": { "@colors/colors": "1.5.0", "body-parser": "^1.19.0", diff --git a/spec/tracekit-spec.js b/spec/tracekit-spec.js index 36e36cc..397136e 100644 --- a/spec/tracekit-spec.js +++ b/spec/tracekit-spec.js @@ -87,6 +87,20 @@ expect(stack.message).toEqual('test'); }); + it('should handle undefined (e.g. from Promise.reject())', function () { + var stack = TraceKit.computeStackTrace(undefined); + expect(stack.name).toBeFalsy(); + expect(stack.message).toBeFalsy(); + expect(stack.mode).toEqual('failed'); + }); + + it('should handle null (e.g. from Promise.reject(null))', function () { + var stack = TraceKit.computeStackTrace(null); + expect(stack.name).toBeFalsy(); + expect(stack.message).toBeFalsy(); + expect(stack.mode).toEqual('failed'); + }); + it('should handle a native error object stack from Chrome', function () { var stackStr = '' + 'Error: foo\n' + diff --git a/tracekit.js b/tracekit.js index 37252b0..7536eb9 100644 --- a/tracekit.js +++ b/tracekit.js @@ -1242,8 +1242,8 @@ TraceKit.computeStackTrace = (function computeStackTraceWrapper() { } return { - 'name': ex.name, - 'message': ex.message, + 'name': ex && ex.name, + 'message': ex && ex.message, 'mode': 'failed' }; }