v8/src/js
Benedikt Meurer 3b84cbfeb0 [builtins] Port Map and Set iterators to CodeStubAssembler.
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: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46497}
2017-07-10 07:57:02 +00:00
..
array.js [runtime] Cleanup native methods creation in js/array.js. 2017-06-28 11:42:43 +00:00
collection.js [runtime] Remove Runtime::kFunctionSetInstanceClassName. 2017-06-30 13:01:49 +00:00
intl.js Remove icu_case_mapping flag 2017-06-29 03:47:27 +00:00
macros.py [builtins] Port Map and Set iterators to CodeStubAssembler. 2017-07-10 07:57:02 +00:00
max-min.js Reland "[runtime] Make all built-in functions strict." 2017-06-27 15:26:10 +00:00
messages.js [runtime] Remove Runtime::kFunctionSetInstanceClassName. 2017-06-30 13:01:49 +00:00
OWNERS Add COMPONENT tags to OWNERS files where appropriate 2017-05-22 10:15:28 +00:00
prologue.js [runtime] Cleanup js/prologue.js. 2017-06-30 07:24:14 +00:00
proxy.js [runtime] Cleanup native methods creation in js/proxy.js. 2017-06-28 17:59:16 +00:00
spread.js Reland "[runtime] Make all built-in functions strict." 2017-06-27 15:26:10 +00:00
string.js [runtime] Cleanup native methods creation in js/string.js. 2017-06-28 17:57:06 +00:00
templates.js [builtins] Migrate a bunch of Object builtins to C++. 2016-01-04 08:11:07 +00:00
typedarray.js [runtime] Cleanup native methods creation in js/typedarray.js. 2017-06-28 17:58:11 +00:00
v8natives.js [runtime] Cleanup native methods creation in js/v8natives.js. 2017-06-28 12:09:16 +00:00
weak-collection.js [runtime] Cleanup native methods creation in js/weak-collection.js. 2017-06-30 06:46:04 +00:00