• Adam Klein's avatar
    [parser] RewritableExpressions should keep track of their Scope directly · 082009fc
    Adam Klein authored
    Previously, the Parser stored a Scope alongside a RewritableExpression
    for each potential destructuring assignment. This Scope was later used
    during rewriting to set the correct context for the rewriting. But this
    approach failed if a new Scope was inserted into the Scope chain between
    the time the assignment was parsed and when it was rewritten.
    
    By storing the Scope directly in RewritableExpression,
    ReparentExpressionScopes() is able to appropriately re-scope such
    expressions prior to their rewriting.
    
    Bug: chromium:779457
    Change-Id: Ieb429a3da841f76d5798610af59da4fccb000652
    Reviewed-on: https://chromium-review.googlesource.com/767666
    Commit-Queue: Adam Klein <adamk@chromium.org>
    Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#49368}
    082009fc
expression-scope-reparenter.cc 3.78 KB