• adamk's avatar
    Reimplement Maps and Sets in JS · 909500aa
    adamk authored
    Previously, the only optimized code path for Maps and Sets was for String keys.
    This was achieved through an implementation of various complex operations
    in Hydrogen. This approach was neither scalable nor forward-compatible.
    
    This patch adds the necessary intrinsics to implement Maps and Sets almost entirely
    in JS. The added intrinsics are:
    
      %_FixedArrayGet
      %_FixedArraySet
      %_TheHole
      %_JSCollectionGetTable
      %_StringGetRawHashField
    
    With these additions, as well as a few changes to what's exposed as runtime functions,
    most of the C++ code backing Maps and Sets is gone (including both runtime code in
    objects.cc and Crankshaft in hydrogen.cc).
    
    Review URL: https://codereview.chromium.org/947683002
    
    Cr-Commit-Position: refs/heads/master@{#27605}
    909500aa
Name
Last commit
Last update
..
benchmarks Loading commit data...
cctest Loading commit data...
intl Loading commit data...
js-perf-test Loading commit data...
message Loading commit data...
mjsunit Loading commit data...
mozilla Loading commit data...
preparser Loading commit data...
promises-aplus Loading commit data...
test262 Loading commit data...
test262-es6 Loading commit data...
unittests Loading commit data...
webkit Loading commit data...