• Jaroslav Sevcik's avatar
    Reland "Fix accessor update of non-extensible maps." · 0a069d94
    Jaroslav Sevcik authored
    This is a reland of 1a3a2bc3,
    fixed an infinite loop in Map::TryUpdateSlow and added
    a relevant test.
    
    Original change's description:
    > Fix accessor update of non-extensible maps.
    >
    > When installing getter/setter of non-extensible map with existing
    > setter/getter of the same name, we introduce a new transition
    > (so we have two transitions with the same name!). This triggers
    > an assertion in map updater.
    >
    > This fix carefully checks that on the back-pointer path from
    > non-extensible map to the extensible map there are only
    > integrity level transitions. Otherwise, we just bail out.
    >
    > Bug: chromium:932953
    > Change-Id: I02e91c3b652428a84a9f5c58b6691ea9b1fc44d6
    > Reviewed-on: https://chromium-review.googlesource.com/c/1477067
    > Reviewed-by: Igor Sheludko <ishell@chromium.org>
    > Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#59667}
    
    Bug: chromium:932953
    Change-Id: I015ee3795f816c8eabb5b5c5cb0ee30f365cc972
    Reviewed-on: https://chromium-review.googlesource.com/c/1477675Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
    Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#59715}
    0a069d94
map.cc 102 KB