From 33c2fae0bae6a5e029cb7ca9bb5b4c9e63995c97 Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Sat, 7 Mar 2026 01:17:18 -0600 Subject: [PATCH] Issue #2304 - Part 4 - Add xray support for the Error cause property. https://bugzilla.mozilla.org/show_bug.cgi?id=1679653 --- js/xpconnect/src/XPCJSContext.cpp | 1 + js/xpconnect/src/xpcprivate.h | 1 + js/xpconnect/wrappers/XrayWrapper.cpp | 5 +++++ 3 files changed, 7 insertions(+) diff --git a/js/xpconnect/src/XPCJSContext.cpp b/js/xpconnect/src/XPCJSContext.cpp index 0a5d248185..e93854a9f9 100644 --- a/js/xpconnect/src/XPCJSContext.cpp +++ b/js/xpconnect/src/XPCJSContext.cpp @@ -111,6 +111,7 @@ const char* const XPCJSContext::mStrings[] = { "columnNumber", // IDX_COLUMNNUMBER "stack", // IDX_STACK "message", // IDX_MESSAGE + "cause", // IDX_CAUSE "errors", // IDX_ERRORS "lastIndex" // IDX_LASTINDEX }; diff --git a/js/xpconnect/src/xpcprivate.h b/js/xpconnect/src/xpcprivate.h index 087e81a7ba..fc9a254a5c 100644 --- a/js/xpconnect/src/xpcprivate.h +++ b/js/xpconnect/src/xpcprivate.h @@ -495,6 +495,7 @@ public: IDX_COLUMNNUMBER , IDX_STACK , IDX_MESSAGE , + IDX_CAUSE , IDX_ERRORS , IDX_LASTINDEX , IDX_TOTAL_COUNT // just a count of the above diff --git a/js/xpconnect/wrappers/XrayWrapper.cpp b/js/xpconnect/wrappers/XrayWrapper.cpp index 8fc73b5d09..4660535a1b 100644 --- a/js/xpconnect/wrappers/XrayWrapper.cpp +++ b/js/xpconnect/wrappers/XrayWrapper.cpp @@ -609,6 +609,11 @@ JSXrayTraits::resolveOwnProperty(JSContext* cx, const Wrapper& jsWrapper, return true; } + // The optional .cause property can have any value. + if (id == GetJSIDByIndex(cx, XPCJSContext::IDX_CAUSE)) { + return getOwnPropertyFromWrapperIfSafe(cx, wrapper, id, desc); + } + if (key == JSProto_AggregateError && id == GetJSIDByIndex(cx, XPCJSContext::IDX_ERRORS)) { return getOwnPropertyFromWrapperIfSafe(cx, wrapper, id, desc);