-
Simon Zünd authored
This CL changes how variables are resolved during debug evaluate. We now re-parse the whole script when creating a ScopeIterator. This gives us accurate scope information for all parent scopes of the closure in which we stopped. Using this information, we build blacklists of stack-allocated variables. Each context on the chain in between the closure context up to the original native context is wrapped in a debug-evaluate context with such a blacklist attached. Variable lookup for debug-evalute contexts then works as follows: 1) Look up in the materialized stack variables (stayed the same). 2) Check the blacklist to find out whether to abort further lookup. 3) Look up in the original context. Steps 1-3 is repeated for each debug-evaluate context, since they mirror the original context chain. R=ulan@chromium.org, yangguo@chromium.org Change-Id: Ied8e5786772c70566da9627ee3b7eff066fba2b4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1795354Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#63666}
2e11dff7