8927256551
This fixes the source position printed in the stack trace for exceptions rethrown from within Wasm code. This only affects the message propagated to the console, not the trace stored as part of the exception object. Note that there still is a more fundamental issues with preserving the original message of a caught exception and funneling it through to each rethrow site, which is still missing. This change just makes sure that the interpreter and TurboFan are consistent. R=clemensh@chromium.org TEST=message/fail/wasm-exception-rethrow BUG=v8:8091 Change-Id: Iac04149ded3c54f5b23faeb83b1228081bbd3dfa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1598754 Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61374} |
||
---|---|---|
.. | ||
fail | ||
mjsunit | ||
regress/fail | ||
asm-assignment-undeclared.js | ||
asm-assignment-undeclared.out | ||
asm-function-mismatch-def.js | ||
asm-function-mismatch-def.out | ||
asm-function-mismatch-use.js | ||
asm-function-mismatch-use.out | ||
asm-function-redefined.js | ||
asm-function-redefined.out | ||
asm-function-undefined.js | ||
asm-function-undefined.out | ||
asm-function-variable-collision.js | ||
asm-function-variable-collision.out | ||
asm-import-wrong-annotation.js | ||
asm-import-wrong-annotation.out | ||
asm-import-wrong-object.js | ||
asm-import-wrong-object.out | ||
asm-linking-bogus-heap.js | ||
asm-linking-bogus-heap.out | ||
asm-linking-bogus-stdlib.js | ||
asm-linking-bogus-stdlib.out | ||
asm-linking-missing-heap.js | ||
asm-linking-missing-heap.out | ||
asm-missing-parameter-annotation.js | ||
asm-missing-parameter-annotation.out | ||
asm-missing-return-annotation.js | ||
asm-missing-return-annotation.out | ||
asm-table-mismatch-def.js | ||
asm-table-mismatch-def.out | ||
asm-table-mismatch-use.js | ||
asm-table-mismatch-use.out | ||
asm-table-redefined.js | ||
asm-table-redefined.out | ||
asm-table-undefined.js | ||
asm-table-undefined.out | ||
asm-table-variable-collision.js | ||
asm-table-variable-collision.out | ||
BUILD.gn | ||
empty.js | ||
empty.out | ||
message.status | ||
non-use-strict-hex-escape.js | ||
non-use-strict-hex-escape.out | ||
non-use-strict-octal-escape.js | ||
non-use-strict-octal-escape.out | ||
non-use-strict-uhex-escape.js | ||
non-use-strict-uhex-escape.out | ||
nonstrict-arguments.js | ||
nonstrict-arguments.out | ||
nonstrict-eval.js | ||
nonstrict-eval.out | ||
nonstrict-with.js | ||
nonstrict-with.out | ||
object-binding-pattern-await-computed-name.js | ||
object-binding-pattern-await-computed-name.out | ||
README.md | ||
strict-octal-indirect-regexp.js | ||
strict-octal-indirect-regexp.out | ||
strict-octal-regexp.js | ||
strict-octal-regexp.out | ||
testcfg.py | ||
try-catch-finally-no-message.js | ||
try-catch-finally-no-message.out | ||
try-catch-finally-return-in-finally.js | ||
try-catch-finally-return-in-finally.out | ||
try-finally-return-in-finally.js | ||
try-finally-return-in-finally.out | ||
wasm-finish-compilation.js | ||
wasm-finish-compilation.out | ||
wasm-function-name-async.js | ||
wasm-function-name-async.out | ||
wasm-function-name-streaming.js | ||
wasm-function-name-streaming.out | ||
wasm-module-and-function-name-async.js | ||
wasm-module-and-function-name-async.out | ||
wasm-module-and-function-name-streaming.js | ||
wasm-module-and-function-name-streaming.out | ||
wasm-module-name-async.js | ||
wasm-module-name-async.out | ||
wasm-module-name-streaming.js | ||
wasm-module-name-streaming.out | ||
wasm-no-name-async.js | ||
wasm-no-name-async.out | ||
wasm-no-name-streaming.js | ||
wasm-no-name-streaming.out | ||
wasm-trace-memory-interpreted.js | ||
wasm-trace-memory-interpreted.out | ||
wasm-trace-memory-liftoff.js | ||
wasm-trace-memory-liftoff.out | ||
wasm-trace-memory.js | ||
wasm-trace-memory.out |
JavaScript tests with expected output
Tests in test/message
pass if the output matches the expected output.
Message tests are particularly useful when checking for exact error messages.
Tests and their expected output must have the same filename, with the .js
and
.out
extension.
foo.js
foo.out
All tests must end with an exception. The test runner does not
handle output from multiple runs, e.g., --stress-opt
. Without an exception,
the output will be generated several times and the comparison will fail.
You can use a regex in the expected output instead of the exact path:
*%(basename)s:7: SyntaxError: Detected cycle while resolving name 'a'
Empty lines are ignored in the comparison, but whitespaces are not.
Exact details of the test runner are in testcfg.py.