• 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
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
gypfiles Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.editorconfig Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...