• Leszek Swirski's avatar
    [parser] Fix caching dynamic vars on wrong scope · 304e97d3
    Leszek Swirski authored
    When looking up a variable in a deserialized WITH scope, we were
    unconditionally passing in the cache scope to the lookup, even if the
    with was inside the cache scope. This would lead to and outer scope of
    the with holding the generated dynamic variable. If the cache scope was
    the SCRIPT scope, the dynamic variable would be interpreted as a global
    object property.
    
    Now, we only store the WITH scope dynamic variables in the cache scope
    if it is an inner scope of the WITH scope, same as we do for 'normal'
    scope lookups.
    
    Fixed: chromium:1041210
    Change-Id: I4e8eb25bbb8ea58311355d13a9c7c97bf2fa3ec7
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1997135Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
    Commit-Queue: Toon Verwaest <verwaest@chromium.org>
    Auto-Submit: Leszek Swirski <leszeks@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#65732}
    304e97d3
scopes.cc 102 KB