v8/test/inspector
Peter Marshall 9691c5cf15 [inspector] Throw during debug-eval when accessing function prototypes
Function prototypes can be lazily allocated. This means they go into the
temporary objects set that debug-eval uses to figure out if a write
will be side-effect free.

We were incorrectly classifying writes to function prototypes as
side-effect free because the prototype happened to be lazily allocated
when we first accessed it during debug-eval, but was actually reachable
from the function (not allocated temporarily).

To do this we introduced a way to temporarily turn off the temporary
object tracking, and we use it when lazily allocating function
prototypes.

This could mean that we incorrectly report side-effects when writing to
function prototypes for functions which were themselves created during
debug-eval side-effect free mode. However, it's unclear if this is a
problem, because function declarations set global variables which would
already throw due to side-effects.

Bug: chromium:1154193
Change-Id: I444a673662095f6deabaafdce3cdf3d86b71446d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2581968
Reviewed-by: Simon Zünd <szuend@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71692}
2020-12-10 11:37:28 +00:00
..
console Reland 2 ScriptContext CLs 2020-01-22 15:40:06 +00:00
counters [DevTools] Re-implemented Profiler.getRuntimeCallStats. 2020-09-08 18:32:05 +00:00
cpu-profiler [inspector][profiler] Print wasm positions (url, line, column) 2020-12-09 13:54:56 +00:00
debugger [inspector] Avoid loading other inspector tests 2020-12-09 11:26:07 +00:00
heap-profiler heap-snapshot: Add detachedness field 2020-09-09 14:42:41 +00:00
regress [inspector] Check for null pointer after creating a stack trace 2020-11-13 07:37:13 +00:00
runtime [inspector] Throw during debug-eval when accessing function prototypes 2020-12-10 11:37:28 +00:00
runtime-call-stats [DevTools] Re-implemented Profiler.getRuntimeCallStats. 2020-09-08 18:32:05 +00:00
sessions WIP: [parser] Fix arrow function name inferring 2019-01-08 08:10:03 +00:00
type-profiler [tests] Filter out non-existent methods in inspector tests 2020-01-17 12:21:29 +00:00
BUILD.gn [inspector] Remove spurious data dep 2020-12-09 16:03:37 +00:00
DEPS [inspector][fuzzer] Extract functionality for reuse 2020-10-28 08:37:25 +00:00
DIR_METADATA Add DIR_METADATA files to v8. 2020-10-20 22:12:28 +00:00
frontend-channel.h [cleanup] Remove DISALLOW_COPY_AND_ASSIGN in test/{cctest,fuzzer,inspector} 2020-11-10 01:24:43 +00:00
inspector-test.cc [inspector][fuzzer] Suppress messages about uncaught exceptions 2020-11-12 13:45:21 +00:00
inspector.status [mac][asan][tests] Fix inspector/runtime/remote-object 2020-11-30 16:35:24 +00:00
isolate-data.cc [modules] Add ResolveModuleCallback that takes import assertions 2020-11-30 19:54:52 +00:00
isolate-data.h [modules] Add ResolveModuleCallback that takes import assertions 2020-11-30 19:54:52 +00:00
json-parse-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
json-parse.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
OWNERS Add DIR_METADATA files to v8. 2020-10-20 22:12:28 +00:00
print-method-not-found-expected.txt [tests] Filter out non-existent methods in inspector tests 2020-01-17 12:21:29 +00:00
print-method-not-found.js [tests] Filter out non-existent methods in inspector tests 2020-01-17 12:21:29 +00:00
protocol-test.js [wasm][inspector][test] Print opcode names 2020-10-16 16:17:14 +00:00
task-runner.cc Reland "[wasm][inspector][test] Add more tests for code offsets" 2020-11-30 14:34:56 +00:00
task-runner.h [inspector][fuzzer] Suppress messages about uncaught exceptions 2020-11-12 13:45:21 +00:00
tasks.cc [api] Simplify ScriptOrigin 2020-11-24 19:51:42 +00:00
tasks.h [cleanup] Remove DISALLOW_COPY_AND_ASSIGN in test/{cctest,fuzzer,inspector} 2020-11-10 01:24:43 +00:00
testcfg.py [test] Load missing file to Android devices for inspector test suite 2020-07-21 14:11:11 +00:00
utils.cc [inspector][fuzzer] Extract functionality for reuse 2020-10-28 08:37:25 +00:00
utils.h [inspector][fuzzer] Extract functionality for reuse 2020-10-28 08:37:25 +00:00
wasm-inspector-test.js [wasm] Use WebAssembly.Memory objects in the scope chain. 2020-12-07 11:45:45 +00:00