From ca9ddff7ca67e0b345447da5de1c9cc21dcab255 Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Wed, 31 Jul 2024 11:07:45 -0700 Subject: [PATCH] =?UTF-8?q?cherry-pick(#31934):=20chore:=20make=20sure=20e?= =?UTF-8?q?rror=20stack=20includes=20message=20as=E2=80=A6=20(#31935)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit … before #31691 This brings stack formatting to how it was prior to https://github.com/microsoft/playwright/commit/1686e5174db39599a0adac7c2001d93a21f2a0aa so that the ports can use it. --- .../server/isomorphic/utilityScriptSerializers.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/playwright-core/src/server/isomorphic/utilityScriptSerializers.ts b/packages/playwright-core/src/server/isomorphic/utilityScriptSerializers.ts index 0f3895fac5..6df7988caf 100644 --- a/packages/playwright-core/src/server/isomorphic/utilityScriptSerializers.ts +++ b/packages/playwright-core/src/server/isomorphic/utilityScriptSerializers.ts @@ -170,8 +170,16 @@ export function source() { if (typeof value === 'bigint') return { bi: value.toString() }; - if (isError(value)) - return { e: { n: value.name, m: value.message, s: value.stack || '' } }; + if (isError(value)) { + let stack; + if (value.stack?.startsWith(value.name + ': ' + value.message)) { + // v8 + stack = value.stack; + } else { + stack = `${value.name}: ${value.message}\n${value.stack}`; + } + return { e: { n: value.name, m: value.message, s: stack } }; + } if (isDate(value)) return { d: value.toJSON() }; if (isURL(value))