From bfefe7001332ee000364a210b26afd822d17e97f Mon Sep 17 00:00:00 2001 From: liuxingbaoyu <30521560+liuxingbaoyu@users.noreply.github.com> Date: Wed, 14 Feb 2024 15:31:00 +0800 Subject: [PATCH] Continue writing `output.js` when `exec.js` throws (#16278) defer exec error --- .../src/index.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/babel-helper-transform-fixture-test-runner/src/index.ts b/packages/babel-helper-transform-fixture-test-runner/src/index.ts index 96c0923c5c9b..1ab9e641fffc 100644 --- a/packages/babel-helper-transform-fixture-test-runner/src/index.ts +++ b/packages/babel-helper-transform-fixture-test-runner/src/index.ts @@ -301,6 +301,8 @@ async function run(task: Test) { let result: FileResult; let resultExec; + let execErr: Error; + if (execCode) { const context = createTestContext(); const execOpts = getOpts(exec); @@ -318,9 +320,13 @@ async function run(task: Test) { resultExec = runCodeInTestContext(execCode, execOpts, context); } catch (err) { // Pass empty location to include the whole file in the output. - err.message = - `${exec.loc}: ${err.message}\n` + codeFrameColumns(execCode, {} as any); - throw err; + if (typeof err === "object" && err.message) { + err.message = + `${exec.loc}: ${err.message}\n` + + codeFrameColumns(execCode, {} as any); + } + + execErr = err; } } @@ -395,6 +401,10 @@ async function run(task: Test) { } } + if (execErr) { + throw execErr; + } + if (task.validateSourceMapVisual === true) { const visual = visualizeSourceMap(result.code, result.map); try {