[parser] Treat var initializers in masking catch as assigning
This changes the existing implementation that creates an unresolved reference for those cases to look at exactly what scopes are relevant so it can correctly handle catch scopes and avoid re-resolving later. Variable through with aren't marked as assigning since this information isn't relevant for the with itself; and if the with is passed through, there's no need to mark the outer variable as assigned since it's either initialized or it isn't. The catch variable is assigned since it is relevant for the catch variable. The CL uses LookupLocal which wouldn't work for deserialized scopes, but this isn't relevant because 1) eval scopes are declaration scopes, and 2) eval causes all outer variables to be maybe_assigned anyway. Bug: chromium:1074737 Change-Id: I3febca479ddd1f3c62eae299190b06c0b4cd3746 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2187272 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#67683}
Showing
Please
register
or
sign in
to comment