v8/test/inspector/runtime
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
..
add-binding-expected.txt DevTools: add support for injecting bindings by context name 2020-10-01 17:20:04 +00:00
add-binding.js DevTools: add support for injecting bindings by context name 2020-10-01 17:20:04 +00:00
await-promise-expected.txt Store JSMessageObject on rejected promises 2019-12-18 12:07:03 +00:00
await-promise.js Store JSMessageObject on rejected promises 2019-12-18 12:07:03 +00:00
call-function-on-async-expected.txt Ignore returnByValue when serializing caught value in promise rejections. 2019-08-09 00:55:59 +00:00
call-function-on-async.js Ignore returnByValue when serializing caught value in promise rejections. 2019-08-09 00:55:59 +00:00
clear-of-command-line-api-expected.txt Revert "[inspector] RemoteObject.description should be empty for primitive type" 2018-05-31 18:52:08 +00:00
clear-of-command-line-api.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
client-console-api-message-expected.txt [inspector] avoid cloning of async call chains 2017-04-18 15:53:08 +00:00
client-console-api-message.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
command-line-api-expected.txt Revert "[inspector] RemoteObject.description should be empty for primitive type" 2018-05-31 18:52:08 +00:00
command-line-api-without-side-effects-expected.txt [inspector] whitelist side-effect-free console API callbacks 2018-04-23 22:06:07 +00:00
command-line-api-without-side-effects.js [inspector] whitelist side-effect-free console API callbacks 2018-04-23 22:06:07 +00:00
command-line-api.js Revert "[inspector] queryObjects returns result" 2018-03-28 01:49:48 +00:00
compile-script-expected.txt [scanner] Don't muck with positions of EOS in Next 2018-08-29 14:08:41 +00:00
compile-script.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
console-api-repeated-in-console-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
console-api-repeated-in-console.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
console-assert-expected.txt Revert "[inspector] RemoteObject.description should be empty for primitive type" 2018-05-31 18:52:08 +00:00
console-assert.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
console-context-expected.txt inspector: implement console.timeLog 2018-09-28 17:34:08 +00:00
console-context.js [inspector] introduced console.context 2017-06-12 15:49:13 +00:00
console-line-and-column-expected.txt Revert "[inspector] RemoteObject.description should be empty for primitive type" 2018-05-31 18:52:08 +00:00
console-line-and-column.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
console-log-doesnt-run-microtasks-expected.txt Revert "[inspector] RemoteObject.description should be empty for primitive type" 2018-05-31 18:52:08 +00:00
console-log-doesnt-run-microtasks.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
console-memory-expected.txt Revert "[inspector] RemoteObject.description should be empty for primitive type" 2018-05-31 18:52:08 +00:00
console-memory.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
console-messages-limits-expected.txt [builtins] Add Array.p.join fastpath for single element array. 2018-11-05 14:45:34 +00:00
console-messages-limits.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
console-methods-expected.txt [inspector] console.table should not crash on empty preview 2018-11-21 21:21:24 +00:00
console-methods.js [inspector] console.table should not crash on empty preview 2018-11-21 21:21:24 +00:00
console-spec-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
console-spec.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
console-table-expected.txt [inspector] honor order in console.table's filter argument 2019-09-02 13:21:24 +00:00
console-table.js [inspector] honor order in console.table's filter argument 2019-09-02 13:21:24 +00:00
console-time-end-format-expected.txt Fix console time format error 2020-05-14 07:36:54 +00:00
console-time-end-format.js Fix console time format error 2020-05-14 07:36:54 +00:00
console-time-log-expected.txt Fix console time format error 2020-05-14 07:36:54 +00:00
console-time-log.js inspector: implement console.timeLog 2018-09-28 17:34:08 +00:00
console-time-repeat-expected.txt Fix console time format error 2020-05-14 07:36:54 +00:00
console-time-repeat.js Do not reset timer for console.time calls with the same label 2017-12-01 19:17:30 +00:00
console-timestamp-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
console-timestamp.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
context-destroyed-on-context-collected-expected.txt [inspector] support for cases when embedder doesn't call contextDestroyed 2017-08-01 23:06:20 +00:00
context-destroyed-on-context-collected.js [inspector] Make collectGarbage of HeapProfiler precise 2020-08-18 07:24:14 +00:00
create-context-expected.txt Reland [inspector] introduced stackTraceId and externalAsyncTask API 2017-11-22 20:56:10 +00:00
create-context.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
custom-preview-expected.txt [inspector] Prepend isolateId to remoteObjectId 2020-10-18 10:39:57 +00:00
custom-preview.js [inspector] Prepend isolateId to remoteObjectId 2020-10-18 10:39:57 +00:00
enable-async-stack-expected.txt [inspector] Do not report async stack for console.log messages 2019-03-29 19:37:34 +00:00
enable-async-stack.js [inspector] Do not report async stack for console.log messages 2019-03-29 19:37:34 +00:00
error-preview-expected.txt inspector: simplify preview generator for Error objects 2018-09-28 19:15:45 +00:00
error-preview.js inspector: simplify preview generator for Error objects 2018-09-28 19:15:45 +00:00
es6-module-expected.txt Report reliable embedderName in scriptParsed/scriptFailedToParse 2020-07-27 15:40:00 +00:00
es6-module.js inspector: fix queryObjects when page contains JSModuleNamespace 2019-06-12 18:27:19 +00:00
evaluate-async-expected.txt Add quotes around unexpected token SyntaxError 2019-06-11 06:11:58 +00:00
evaluate-async-with-wrap-error-expected.txt [inspector] Make InspectorTest.sendCommand* private 2016-10-03 23:33:07 +00:00
evaluate-async-with-wrap-error.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
evaluate-async.js [inspector] Make collectGarbage of HeapProfiler precise 2020-08-18 07:24:14 +00:00
evaluate-empty-stack-expected.txt [debug] remove JSON debug protocol related tests. 2016-11-24 10:43:22 +00:00
evaluate-empty-stack.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
evaluate-new-function-error-expected.txt [debug] Revert to old line number behavior for new Function() 2019-11-28 12:01:39 +00:00
evaluate-new-function-error.js [debug] Report line numbers for Function constructor functions correctly 2019-08-08 13:49:17 +00:00
evaluate-repl-await-expected.txt Store JSMessageObject on rejected promises 2019-12-18 12:07:03 +00:00
evaluate-repl-await.js Store JSMessageObject on rejected promises 2019-12-18 12:07:03 +00:00
evaluate-repl-mode-code-cache-expected.txt Don't use the isolate compilation cache for REPL mode scripts 2020-09-28 13:25:56 +00:00
evaluate-repl-mode-code-cache.js Don't use the isolate compilation cache for REPL mode scripts 2020-09-28 13:25:56 +00:00
evaluate-repl-mode-expected.txt REPL mode must only re-write AST on successful parses 2020-01-28 13:09:13 +00:00
evaluate-repl-mode-side-effecting-expected.txt [inspector] Add a test for const declaration and side effects 2020-01-27 10:10:56 +00:00
evaluate-repl-mode-side-effecting.js [inspector] Add a test for const declaration and side effects 2020-01-27 10:10:56 +00:00
evaluate-repl-mode.js REPL mode must only re-write AST on successful parses 2020-01-28 13:09:13 +00:00
evaluate-run-microtasks-expected.txt WIP: [parser] Fix arrow function name inferring 2019-01-08 08:10:03 +00:00
evaluate-run-microtasks.js Set RuntimeAgent evaluate to use DebugEvaluate::Global 2018-02-16 19:56:20 +00:00
evaluate-timeout-expected.txt Reland "[inspector] added timeout argument for Runtime.evaluate" 2018-04-14 07:27:32 +00:00
evaluate-timeout.js Reland "[inspector] added timeout argument for Runtime.evaluate" 2018-04-14 07:27:32 +00:00
evaluate-unserializable-expected.txt Revert "[inspector] RemoteObject.description should be empty for primitive type" 2018-05-31 18:52:08 +00:00
evaluate-unserializable.js Remove always-true --harmony-bigint runtime flag 2018-10-01 11:31:13 +00:00
evaluate-with-context-id-equal-zero-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
evaluate-with-context-id-equal-zero.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
evaluate-with-disable-breaks-expected.txt [inspector] Add "disableBreaks" parameter to "Runtime.evaluate". 2019-09-27 12:16:01 +00:00
evaluate-with-disable-breaks.js [inspector] Add "disableBreaks" parameter to "Runtime.evaluate". 2019-09-27 12:16:01 +00:00
evaluate-with-generate-preview-expected.txt [inspector] support BigInt in inspector 2018-03-09 21:28:00 +00:00
evaluate-with-generate-preview.js inspector: add couple tests 2018-10-22 16:12:02 +00:00
evaluate-without-side-effects-expected.txt [inspector] Throw during debug-eval when accessing function prototypes 2020-12-10 11:37:28 +00:00
evaluate-without-side-effects.js [inspector] Throw during debug-eval when accessing function prototypes 2020-12-10 11:37:28 +00:00
exception-thrown-expected.txt Add quotes around unexpected token SyntaxError 2019-06-11 06:11:58 +00:00
exception-thrown.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
exceptionthrown-on-connect-expected.txt Add quotes around unexpected token SyntaxError 2019-06-11 06:11:58 +00:00
exceptionthrown-on-connect.js [Inspector] Add tests for Runtime domain 2019-03-01 20:34:53 +00:00
function-location-expected.txt [debug] retire ScriptWrapper 2018-07-05 21:33:03 +00:00
function-location.js [debug] retire ScriptWrapper 2018-07-05 21:33:03 +00:00
function-scopes-expected.txt Revert "[inspector] RemoteObject.description should be empty for primitive type" 2018-05-31 18:52:08 +00:00
function-scopes.js [inspector] report [[Scopes]] all the time 2017-09-12 21:17:35 +00:00
get-heap-usage-expected.txt [inspector] Add Runtime.getIsolateId & Runtime.getHeapUsage commands 2018-03-20 23:33:53 +00:00
get-heap-usage.js [inspector] Add Runtime.getIsolateId & Runtime.getHeapUsage commands 2018-03-20 23:33:53 +00:00
get-isolate-id-expected.txt [inspector] Add Runtime.getIsolateId & Runtime.getHeapUsage commands 2018-03-20 23:33:53 +00:00
get-isolate-id.js [inspector] Add Runtime.getIsolateId & Runtime.getHeapUsage commands 2018-03-20 23:33:53 +00:00
get-properties-expected.txt [inspector] Add internal property to identify detached ArrayBuffers. 2020-07-24 08:12:21 +00:00
get-properties-on-proxy-expected.txt Revert "inspector: return [[StableObjectId]] as internal property" 2018-12-06 21:47:22 +00:00
get-properties-on-proxy.js [proxy] Set [[ProxyTarget]] to null during revocation 2018-01-10 11:23:54 +00:00
get-properties-preview-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
get-properties-preview.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
get-properties.js [inspector] Add internal property to identify detached ArrayBuffers. 2020-07-24 08:12:21 +00:00
internal-properties-entries-expected.txt Fix preview of set entries 2019-02-03 19:35:11 +00:00
internal-properties-entries.js [Test] Add --stress-flush-bytecode to gc-stress tester. 2018-12-13 18:37:56 +00:00
internal-properties-expected.txt [cleanup] Rename internal fields to match the spec 2020-05-15 13:17:09 +00:00
internal-properties.js Remove always-true --harmony-bigint runtime flag 2018-10-01 11:31:13 +00:00
length-or-size-description-expected.txt inspector: add lengths for binary data descriptions 2017-07-25 00:19:55 +00:00
length-or-size-description.js inspector: add lengths for binary data descriptions 2017-07-25 00:19:55 +00:00
property-on-console-proto-expected.txt Revert "[inspector] RemoteObject.description should be empty for primitive type" 2018-05-31 18:52:08 +00:00
property-on-console-proto.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
protocol-works-with-different-locale-expected.txt Fix console time format error 2020-05-14 07:36:54 +00:00
protocol-works-with-different-locale.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
query-objects-expected.txt [inspector] Fix handling of on-heap TypedArrays in queryObjects() 2020-04-16 13:34:57 +00:00
query-objects.js [inspector] Fix handling of on-heap TypedArrays in queryObjects() 2020-04-16 13:34:57 +00:00
regress-986051-expected.txt [inspector] guard against missing CommandLineAPIScope 2020-04-17 13:36:02 +00:00
regress-986051.js [inspector] guard against missing CommandLineAPIScope 2020-04-17 13:36:02 +00:00
regress-1075763-expected.txt [cleanup] Rename internal fields to match the spec 2020-05-15 13:17:09 +00:00
regress-1075763.js [debugger] fix function in suspended generator 2020-04-28 15:42:43 +00:00
regress-1078205-expected.txt [inspector] fix sourceURL magic comment parsing 2020-05-07 05:04:49 +00:00
regress-1078205.js [inspector] fix sourceURL magic comment parsing 2020-05-07 05:04:49 +00:00
regression-732717-expected.txt [inspector] console.context should be ready for GC 2017-06-13 10:38:15 +00:00
regression-732717.js [inspector] console.context should be ready for GC 2017-06-13 10:38:15 +00:00
regression-736302-expected.txt DevTools: also use default label for console.count 2017-12-01 20:17:20 +00:00
regression-736302.js [inspector] catch exception during object.toString() call for console 2017-07-12 06:01:42 +00:00
regression-1052721-expected.txt Handle REPL 'let' declared variables properly for 'delete' 2020-02-18 06:53:38 +00:00
regression-1052721.js Handle REPL 'let' declared variables properly for 'delete' 2020-02-18 06:53:38 +00:00
regression-1140845-expected.txt Fix crash in JSPromise::Resolve when 'then' getter is terminating 2020-10-27 09:06:52 +00:00
regression-1140845.js Fix crash in JSPromise::Resolve when 'then' getter is terminating 2020-10-27 09:06:52 +00:00
release-object-expected.txt Roll inspector_protocol library to inculude unified (de)serialization support 2020-07-02 14:08:19 +00:00
release-object.js Roll inspector_protocol library to inculude unified (de)serialization support 2020-07-02 14:08:19 +00:00
remote-object-expected.txt [cleanup] Rename internal fields to match the spec 2020-05-15 13:17:09 +00:00
remote-object-get-properties-expected.txt Revert "inspector: return [[StableObjectId]] as internal property" 2018-12-06 21:47:22 +00:00
remote-object-get-properties.js inspector: add couple tests 2018-10-22 16:12:02 +00:00
remote-object.js Client errors without a stack property should try to include the message 2019-08-07 10:49:58 +00:00
run-script-async-expected.txt Ignore returnByValue when serializing caught value in promise rejections. 2019-08-09 00:55:59 +00:00
run-script-async.js [inspector] aligned Runtime.evaluate(awaitPromise: true) with await semantic 2017-08-15 01:35:29 +00:00
runtime-disable-preserve-injected-script-expected.txt Revert "[inspector] RemoteObject.description should be empty for primitive type" 2018-05-31 18:52:08 +00:00
runtime-disable-preserve-injected-script.js [inspector] don't discard injected-script on runtime.disable 2017-08-10 04:33:14 +00:00
runtime-evaluate-null-property-expected.txt [inspector] aligned Runtime.evaluate(returnValue:true) result with json 2017-12-19 20:16:09 +00:00
runtime-evaluate-null-property.js [inspector] aligned Runtime.evaluate(returnValue:true) result with json 2017-12-19 20:16:09 +00:00
runtime-evaluate-with-dirty-context-expected.txt Revert "[inspector] RemoteObject.description should be empty for primitive type" 2018-05-31 18:52:08 +00:00
runtime-evaluate-with-dirty-context.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
runtime-get-properties-and-accessor-expected.txt reland: inspector: move injected script source to native 2018-10-31 17:47:58 +00:00
runtime-get-properties-and-accessor.js [inspector] do not call native accessor in Rumtime.getProperties 2017-11-06 17:45:46 +00:00
runtime-global-lexical-scope-names-expected.txt [inspector] added Runtime.globalLexicalScopeNames method 2017-10-17 01:02:37 +00:00
runtime-global-lexical-scope-names.js [inspector] added Runtime.globalLexicalScopeNames method 2017-10-17 01:02:37 +00:00
runtime-restore-expected.txt inspector: generate custom preview using native code 2018-10-22 21:24:49 +00:00
runtime-restore.js [inspector] added Runtime.globalLexicalScopeNames method 2017-10-17 01:02:37 +00:00
set-max-call-stack-size-expected.txt [inspector] Do not report async stack for console.log messages 2019-03-29 19:37:34 +00:00
set-max-call-stack-size.js [inspector] Do not report async stack for console.log messages 2019-03-29 19:37:34 +00:00
set-or-map-entries-expected.txt Re-land of Use parenthesis in descriptions for array/map/set lengths/sizes 2016-12-02 01:26:45 +00:00
set-or-map-entries.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
terminate-execution-expected.txt Do not run microtasks when there are scheduled exceptions 2019-08-23 16:17:58 +00:00
terminate-execution.js Do not run microtasks when there are scheduled exceptions 2019-08-23 16:17:58 +00:00