v8/test/inspector/debugger/value-unavailable-scopes-expected.txt
Simon Zünd e417b339ee [debug] Report variables in TDZ as 'value unavailable'
Consider the function:

function foo() {
  debugger;
  let y = 1;
}

V8 will elide the hole initialization for 'y'. When we pause at the
debugger statement, then 'y' evaluates to 'undefined'.

This CL fixes this in the ScopeIterator. When we encounter local
variables with an `undefined` value we check the static scope
information if we are stopped *before* the variable's initializer.
If yes, then we are in the variable's TDZ and report
"value unavailable".

Drive-by: Mark `GetSourcePosition()` as `const` to make it available
in the visitor method.

R=bmeurer@chromium.org

Bug: chromium:1328681
Change-Id: I8b966eaa2af64a35a58095a744440851760921a0
Fixed: chromium:1303493
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3829539
Commit-Queue: Simon Zünd <szuend@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/main@{#82483}
2022-08-16 09:59:57 +00:00

11 lines
299 B
Plaintext

Test scopes with unavailable values
Running test: testTemporalDeadZone
variable y correctly reported as <value_unavailable>
Running test: testOptimizedOut
variable y correctly reported as <value_unavailable>
Running test: testUnusedValueInTdz
variable y correctly reported as <value_unavailable>