• Benedikt Meurer's avatar
    [builtins] Port Map and Set iterators to CodeStubAssembler. · 3b84cbfe
    Benedikt Meurer authored
    This is the next step towards faster Map and Set iteration. It
    introduces the appropriate instance types for Map and Set
    iterators (following the pattern for Array iterators) and migrates
    the following builtins to the CodeStubAssembler:
    
      - Set.prototype.entries
      - Set.prototype.values
      - Map.prototype.entries
      - Map.prototype.keys
      - Map.prototype.values
      - %SetIteratorPrototype%.next
      - %MapIteratorPrototype%.next
    
    This already provides a significant performance boost for regular
    for-of iteration of Sets and Maps, by a factor of 5-10 depending
    on the input. The final step will be to inline some fast-paths
    into TurboFan.
    
    Drive-by-fix: Remove obsolete %IsJSSetIterator and %IsJSMapIterator
    intrinsics and runtime functions.
    
    TBR=jgruber@chromium.org
    
    Bug: v8:6344, v8:6571, chromium:740122
    Change-Id: I3ab0ee49e2afe8d4295707a5ecbd51adda621918
    Reviewed-on: https://chromium-review.googlesource.com/563626
    Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
    Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#46497}
    3b84cbfe
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...
.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...