From f5bf9fdf2dd833ce4eaba1036d0a4d7a9a7a7780 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bargull?= Date: Fri, 21 Mar 2025 16:22:27 +0100 Subject: [PATCH] Allow for implementation-defined Error properties Various implementations (JSC, V8, SM) define additional properties on Error instances. Adjust the test case to account for that. --- .../SuppressedError/order-of-args-evaluation.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/test/built-ins/NativeErrors/SuppressedError/order-of-args-evaluation.js b/test/built-ins/NativeErrors/SuppressedError/order-of-args-evaluation.js index 292d7578fc..95ff2d3065 100644 --- a/test/built-ins/NativeErrors/SuppressedError/order-of-args-evaluation.js +++ b/test/built-ins/NativeErrors/SuppressedError/order-of-args-evaluation.js @@ -31,7 +31,14 @@ const e = new SuppressedError(error, suppressed, message); assert.sameValue(messageStringified, true); const keys = Object.getOwnPropertyNames(e); -assert(keys.indexOf("message") === 0, "Expected 'message' to be defined first"); -assert(keys.indexOf("error") === 1, "Expected 'error' to be defined second"); -assert(keys.indexOf("suppressed") === 2, "Expected 'suppressed' to be defined third"); +// Allow implementation-defined properties before "message" and after "suppressed". + +const messageIndex = keys.indexOf("message"); +assert.notSameValue(messageIndex, -1, "Expected 'message' to be defined"); + +const errorIndex = keys.indexOf("error"); +assert.sameValue(errorIndex, messageIndex + 1, "Expected 'error' to be defined after 'message'"); + +const suppressedIndex = keys.indexOf("suppressed"); +assert.sameValue(suppressedIndex, errorIndex + 1, "Expected 'suppressed' to be defined after 'error'");