• Benedikt Meurer's avatar
    [map] Properly share the map for builtin iterator result objects. · d2ea316f
    Benedikt Meurer authored
    Previously we had a special, unshared map on the native context that was
    used for results of builtin iterators, which was different from the map
    that is created from an object literal like `{value, done}`. This not
    only leads to unnecessary polymorphism, but also makes it impossible
    for user defined iterators to take the fast-paths that we have in
    various places (i.e. in collections or promises).
    
    With this change we now properly share the map for `{value, done}` and
    use that for the builtin iterator result objects, as well as the
    fast-paths.
    
    Drive-by-fix: Remove the restrictions on map caching and transition
    caching during bootstrapping. This no longer makes sense.
    
    Bug: v8:9114, v8:9243
    Change-Id: I19eb9071f7ec0ed58f8a6f87eed781bc790174b7
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1609794
    Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
    Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
    Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
    Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#61488}
    d2ea316f
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
custom_deps Loading commit data...
docs Loading commit data...
gni 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...
.clang-tidy Loading commit data...
.editorconfig Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython 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...
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...