• Jakob Kummerow's avatar
    Refactor TransitionArray access · e567dd3a
    Jakob Kummerow authored
    in preparation for caching StoreIC-Transition handlers in there.
    This CL should not change behavior or performance.
    
    The TransitionArray class no longer serves a dual purpose; it is now
    simply the data structure serving that role. Further, it now supports
    storing transitioning handlers in its "target" slot, which in turn have
    a WeakCell pointing to the transition target (but this functionality
    is not being used yet).
    
    The interface for accessing a map's transitions, previously implemented
    as a set of static functions, is now handled by the TransitionsAccessor
    class. It distinguishes the following internal states:
    - kPrototypeInfo: map is a prototype map, will never cache any transitions.
    - kUninitialized: map can cache transitions, but doesn't have any.
    - kWeakCell: map caches a single transition, stored inline. Formerly known
                 as "IsSimpleTransition".
    - kFullTransitionArray: map uses a TransitionArray to store transitions.
    - kTuple3Handler, kFixedArrayHandler: to be used in the future for caching
                                          transitioning handlers.
    
    Change-Id: If2aa68390981f96f317b958445a6e0b935c2a14e
    Reviewed-on: https://chromium-review.googlesource.com/550118Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
    Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
    Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
    Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#46981}
    e567dd3a
map.h 37.8 KB