v8/test
Simon Zünd cfec66ea12 [debug] Fix breakpoints on lazy accessors sometimes not getting hit
V8 implements accessors defined in C++ via FunctionTemplates in a lazy
manner. When userland JS uses the accessor, V8 calls the corresponding
C++ code directly. Only when the user JS obtains a reference to the
function object itself (e.g. via Reflect.getOwnPropertyDescriptor) does
V8 instantiate a JSFunction object.

This makes breakpoint logic tricky. The debugger requires a JSFunction
when the user wants to set a breakpoint on such an accessor.
There is already some logic in place that forces instantiation of
accessors with a breakpoint on them.

Unfortunately that logic forgot to also install the
"DebugBreakTrampoline" on the instantiated JSFunction that will
actually pause execution. This CL fixes that.

Note that this is not the whole fix. Contexts deserialized from
snapshots need a heap walk that also forces instantation of the
accessors.

R=bmeurer@chromium.org

Bug: chromium:1368554
Change-Id: I346f614f380859b6419ae1df0ec6b0ca8234120a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4000702
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Simon Zünd <szuend@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84032}
2022-11-03 10:14:29 +00:00
..
benchmarks Re-enable octane/typescript for deopt_fuzzer 2022-09-09 08:34:45 +00:00
bigint [test] Refactor testrunner (4) 2022-07-18 09:52:24 +00:00
cctest [debug] Fix breakpoints on lazy accessors sometimes not getting hit 2022-11-03 10:14:29 +00:00
common [wasm] Detemplatize immediates 2022-10-24 17:27:49 +00:00
debugger [debug] Re-use block lists across multiple local debug-evaluates 2022-10-13 07:44:59 +00:00
debugging [test] Refactor testrunner (4) 2022-07-18 09:52:24 +00:00
fuzzer [fuzzer][wasm] Allow struct.new_default for structs with immutable fields 2022-10-27 11:23:42 +00:00
fuzzilli [test] Refactor testrunner (4) 2022-07-18 09:52:24 +00:00
inspector [debugger] Throw exception if 'var x' fails in debug eval in module 2022-10-26 05:39:32 +00:00
intl [Intl] Sync to intl-numberformat-v3 PR107 2022-09-16 20:52:26 +00:00
js-perf-test [js-perf-test] Reduce input sizes for small BigInts 2022-10-06 14:23:53 +00:00
memory [snapshot] Fix the Memory.json benchmark 2021-04-28 07:54:34 +00:00
message [cleanup] Remove Wasm SIMD flag & deprecate embedder-enabling API 2022-10-22 00:47:42 +00:00
mjsunit [compiler] Fix the type of JSFindNonDefaultConstructorOrConstruct more 2022-11-03 09:36:04 +00:00
mkgrokdump [heap] Rename safepoint scopes 2022-10-25 16:32:55 +00:00
mozilla [mips32] Delete mips32 from v8 2022-09-13 07:54:54 +00:00
test262 [test262] Support the 'raw' flag 2022-10-27 20:08:39 +00:00
torque Reland "Reland "[Torque] Generalize Torque literals to larger size"" 2022-02-04 09:40:24 +00:00
unittests [wasm] add partial disassembler test for Wasm MVP 2022-11-02 17:22:50 +00:00
wasm-api-tests [wasm] Fix CWasmArgumentsPacker::TotalSize() with Ref types 2022-10-18 16:42:56 +00:00
wasm-js [wasm] Update spec tests 2022-10-24 14:27:58 +00:00
wasm-spec-tests [wasm] Update spec tests 2022-10-24 14:27:58 +00:00
webkit [mips32] Delete mips32 from v8 2022-09-13 07:54:54 +00:00
BUILD.gn [test] Move cctest/interpreter to unittests 2022-06-10 08:37:10 +00:00
OWNERS