• jkummerow's avatar
    [prototype user tracking] Don't skip JSGlobalProxies · b4583c04
    jkummerow authored
    For a prototype chain foo -> global_proxy -> global_object, we used to
    register a dependency from foo -> global_object. This is incorrect when
    the global_proxy/global_object pairing is modified, e.g. when navigating
    in iframes. With this patch, we properly register foo -> global_proxy and
    global_proxy -> global_object dependencies.
    Additionally, when a prototype's prototype changes from null to something
    else, this new usage relation must be registered if there are other users
    further down on the prototype chain that might expect a complete chain of
    registrations to exist (which was the case before, and must be preserved).
    
    BUG=chromium:571517
    LOG=n
    R=verwaest@chromium.org
    
    Review URL: https://codereview.chromium.org/1559323002
    
    Cr-Commit-Position: refs/heads/master@{#33119}
    b4583c04
objects.cc 697 KB