v8/test/cctest
adamk 909500aa1d Reimplement Maps and Sets in JS
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}
2015-04-07 00:12:04 +00:00
..
compiler [turbofan] smash GapInstruction into Instruction 2015-03-31 13:06:43 +00:00
cctest.cc Fix cctest + unittest to work with an external snapshot. 2015-02-10 15:38:09 +00:00
cctest.gyp Reimplement Maps and Sets in JS 2015-04-07 00:12:04 +00:00
cctest.h Make tests pass with weak closure overapproximation enabled 2015-03-18 10:01:36 +00:00
cctest.status [turbofan] Support initial step-in through debugger statement. 2015-03-25 15:02:43 +00:00
DEPS Add DEPS files and run checkdeps in presubmit check 2014-06-03 13:39:42 +00:00
gay-fixed.cc Use full include paths everywhere 2014-06-03 08:12:43 +00:00
gay-fixed.h Dtoa for fixed notation. 2010-05-05 13:51:27 +00:00
gay-precision.cc Use full include paths everywhere 2014-06-03 08:12:43 +00:00
gay-precision.h Added precision mode to fast-dtoa. 2010-09-20 09:18:00 +00:00
gay-shortest.cc Use full include paths everywhere 2014-06-03 08:12:43 +00:00
gay-shortest.h Dtoa for fixed notation. 2010-05-05 13:51:27 +00:00
log-eq-of-logging-and-traversal.js Fix test-log/EquivalenceOfLoggingAndTraversal 2013-08-26 14:56:23 +00:00
OWNERS Update cctest OWNERS file for mips committers. 2014-09-18 17:33:24 +00:00
print-extension.cc Use full include paths everywhere 2014-06-03 08:12:43 +00:00
print-extension.h Use full include paths everywhere 2014-06-03 08:12:43 +00:00
profiler-extension.cc Move platform abstraction to base library 2014-06-30 13:25:46 +00:00
profiler-extension.h Use full include paths everywhere 2014-06-03 08:12:43 +00:00
test-accessors.cc add access checks to receivers on function callbacks 2015-03-26 15:22:08 +00:00
test-alloc.cc Revert "Merge old data and pointer space." 2015-03-19 22:03:32 +00:00
test-api-interceptors.cc Serializer: move to a subfolder and clean up includes. 2015-03-27 15:29:07 +00:00
test-api.cc [V8] Don't ignore sourceURL comment in inline scripts in .stack 2015-03-31 19:36:06 +00:00
test-api.h split interceptor tests off of test-api 2015-02-06 12:08:07 +00:00
test-array-list.cc Retain maps embedded in optimized code for several garbage collections. 2015-03-06 12:36:32 +00:00
test-assembler-arm64.cc [arm64] Assembler support for internal references. 2015-03-19 10:24:54 +00:00
test-assembler-arm.cc [arm] Assembler support for internal references. 2015-02-06 07:21:23 +00:00
test-assembler-ia32.cc Serializer: move to a subfolder and clean up includes. 2015-03-27 15:29:07 +00:00
test-assembler-mips64.cc MIPS: Major fixes and clean-up in asm. for instruction encoding. 2015-04-06 11:54:38 +00:00
test-assembler-mips.cc MIPS: Major fixes and clean-up in asm. for instruction encoding. 2015-04-06 11:54:38 +00:00
test-assembler-ppc.cc Contribution of PowerPC port (continuation of 422063005) 2015-01-16 07:42:15 +00:00
test-assembler-x64.cc [turbofan] Add backend support for float32 operations. 2015-03-30 07:34:04 +00:00
test-assembler-x87.cc Serializer: move to a subfolder and clean up includes. 2015-03-27 15:29:07 +00:00
test-ast.cc Remove the dependency of Zone on Isolate 2015-01-23 15:20:00 +00:00
test-atomicops.cc Move atomic ops and related files to base library 2014-06-05 12:14:47 +00:00
test-bignum-dtoa.cc Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.". 2015-01-30 09:29:41 +00:00
test-bignum.cc Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.". 2015-01-30 09:29:41 +00:00
test-bit-vector.cc Remove the dependency of Zone on Isolate 2015-01-23 15:20:00 +00:00
test-circular-queue.cc Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.". 2015-01-30 09:29:41 +00:00
test-code-stubs-arm64.cc Move platform abstraction to base library 2014-06-30 13:25:46 +00:00
test-code-stubs-arm.cc Move platform abstraction to base library 2014-06-30 13:25:46 +00:00
test-code-stubs-ia32.cc Move platform abstraction to base library 2014-06-30 13:25:46 +00:00
test-code-stubs-mips64.cc MIPS64: Fix ConvertDToI test. 2014-10-01 16:25:01 +00:00
test-code-stubs-mips.cc Move platform abstraction to base library 2014-06-30 13:25:46 +00:00
test-code-stubs-x64.cc Move platform abstraction to base library 2014-06-30 13:25:46 +00:00
test-code-stubs-x87.cc Move platform abstraction to base library 2014-06-30 13:25:46 +00:00
test-code-stubs.cc Fix the test-code-stubs tests. 2015-01-30 13:36:13 +00:00
test-code-stubs.h Introduce x87 port 2014-05-23 16:37:27 +00:00
test-compiler.cc Allow passing sourceMapUrl when compiling scripts 2015-03-05 13:03:57 +00:00
test-constantpool.cc Add missing license headers for some cctests. 2015-04-02 14:45:45 +00:00
test-conversions.cc fix special index parsing 2015-03-30 11:41:15 +00:00
test-cpu-profiler.cc CpuProfiler: push the collected information about deopts to cpu profiler 2015-03-24 12:46:26 +00:00
test-date.cc Serializer: move to a subfolder and clean up includes. 2015-03-27 15:29:07 +00:00
test-debug.cc Set test expectations prior to enabling --turbo-osr. 2015-03-24 19:02:55 +00:00
test-decls.cc Remove --harmony-scoping flag. 2015-03-13 15:15:57 +00:00
test-deoptimization.cc Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.". 2015-01-30 09:29:41 +00:00
test-dictionary.cc Reimplement Maps and Sets in JS 2015-04-07 00:12:04 +00:00
test-disasm-arm64.cc Add FRINTP (round towards positive infinity) instruction. 2014-10-22 11:06:22 +00:00
test-disasm-arm.cc [turbofan] Add backend support for float32 operations. 2015-03-30 07:34:04 +00:00
test-disasm-ia32.cc [turbofan] Add backend support for float32 operations. 2015-03-30 07:34:04 +00:00
test-disasm-mips64.cc MIPS: Major fixes and clean-up in asm. for instruction encoding. 2015-04-06 11:54:38 +00:00
test-disasm-mips.cc MIPS: Major fixes and clean-up in asm. for instruction encoding. 2015-04-06 11:54:38 +00:00
test-disasm-ppc.cc Serializer: move to a subfolder and clean up includes. 2015-03-27 15:29:07 +00:00
test-disasm-x64.cc [turbofan] Add backend support for float32 operations. 2015-03-30 07:34:04 +00:00
test-disasm-x87.cc Serializer: move to a subfolder and clean up includes. 2015-03-27 15:29:07 +00:00
test-diy-fp.cc Move platform abstraction to base library 2014-06-30 13:25:46 +00:00
test-double.cc Remove deprecated v8::base::OS::nan_value(). 2015-01-21 14:38:58 +00:00
test-dtoa.cc Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.". 2015-01-30 09:29:41 +00:00
test-fast-dtoa.cc Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.". 2015-01-30 09:29:41 +00:00
test-feedback-vector.cc v8:3539 - hold constructor feedback in weak cells 2015-04-02 09:39:35 +00:00
test-fixed-dtoa.cc Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.". 2015-01-30 09:29:41 +00:00
test-flags.cc Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.". 2015-01-30 09:29:41 +00:00
test-func-name-inference.cc Refactor BreakLocationIterator. 2015-03-04 13:15:34 +00:00
test-fuzz-arm64.cc Use full include paths everywhere 2014-06-03 08:12:43 +00:00
test-gc-tracer.cc re-land: Track history of events in GCTracer. 2014-07-24 11:16:01 +00:00
test-global-handles.cc Rename ASSERT* to DCHECK*. 2014-08-04 11:34:54 +00:00
test-global-object.cc Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.". 2015-01-30 09:29:41 +00:00
test-hashing.cc Contribution of PowerPC port (continuation of 422063005) 2015-01-16 07:42:15 +00:00
test-hashmap.cc Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.". 2015-01-30 09:29:41 +00:00
test-heap-profiler.cc Serializer: move to a subfolder and clean up includes. 2015-03-27 15:29:07 +00:00
test-heap.cc Support for typed arrays added to Heap::RightTrimFixedArray(). 2015-04-02 11:26:19 +00:00
test-hydrogen-types.cc Use full include paths everywhere 2014-06-03 08:12:43 +00:00
test-javascript-arm64.cc Serializer: move to a subfolder and clean up includes. 2015-03-27 15:29:07 +00:00
test-js-arm64-variables.cc Serializer: move to a subfolder and clean up includes. 2015-03-27 15:29:07 +00:00
test-list.cc Use full include paths everywhere 2014-06-03 08:12:43 +00:00
test-liveedit.cc Remove the dependency of Zone on Isolate 2015-01-23 15:20:00 +00:00
test-lockers.cc Serializer: move to a subfolder and clean up includes. 2015-03-27 15:29:07 +00:00
test-log-stack-tracer.cc Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.". 2015-01-30 09:29:41 +00:00
test-log.cc Serializer: move to a subfolder and clean up includes. 2015-03-27 15:29:07 +00:00
test-macro-assembler-arm.cc Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.". 2015-01-30 09:29:41 +00:00
test-macro-assembler-ia32.cc Serializer: move to a subfolder and clean up includes. 2015-03-27 15:29:07 +00:00
test-macro-assembler-mips64.cc Add mips64 port. 2014-07-09 11:08:26 +00:00
test-macro-assembler-mips.cc MIPS: Use signaling NaN for holes in fixed double arrays. 2015-01-22 06:15:02 +00:00
test-macro-assembler-x64.cc Serializer: move to a subfolder and clean up includes. 2015-03-27 15:29:07 +00:00
test-macro-assembler-x87.cc Serializer: move to a subfolder and clean up includes. 2015-03-27 15:29:07 +00:00
test-mark-compact.cc Serializer: move to a subfolder and clean up includes. 2015-03-27 15:29:07 +00:00
test-mementos.cc Remove dependency on Vector from platform files 2014-06-13 16:43:27 +00:00
test-microtask-delivery.cc Use full include paths everywhere 2014-06-03 08:12:43 +00:00
test-migrations.cc Reland "Fix memory leak caused by field type in descriptor array." 2015-03-23 11:20:50 +00:00
test-object-observe.cc Add a UseCounter for Object.observe 2015-03-31 23:03:19 +00:00
test-parsing.cc Remove --harmony-numeric-literal flag 2015-03-31 14:24:30 +00:00
test-platform-linux.cc Refactor unit tests for the base library to use GTest. 2014-08-06 09:35:21 +00:00
test-platform-win32.cc Refactor unit tests for the base library to use GTest. 2014-08-06 09:35:21 +00:00
test-platform.cc Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.". 2015-01-30 09:29:41 +00:00
test-profile-generator.cc Remove obsolete method ProfileTree::AddPathFromStart and the corresponding test. 2015-02-11 07:27:09 +00:00
test-random-number-generator.cc Reland 24052 - Require V8 to be explicitly initialized before an Isolate is created 2014-09-19 08:01:35 +00:00
test-regexp.cc Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.". 2015-01-30 09:29:41 +00:00
test-reloc-info.cc Remove redundant source position information in RelocInfo 2015-02-12 12:15:31 +00:00
test-representation.cc Check alpha-sorting of includes during presubmit. 2014-06-20 08:40:11 +00:00
test-sampler-api.cc Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.". 2015-01-30 09:29:41 +00:00
test-serialize.cc Serializer: move to a subfolder and clean up includes. 2015-03-27 15:29:07 +00:00
test-spaces.cc Serializer: move to a subfolder and clean up includes. 2015-03-27 15:29:07 +00:00
test-strings.cc PPC: fix allocation issues for PPC64. 2015-03-13 11:18:31 +00:00
test-strtod.cc Revert of Remove obsolete V8_INFINITY macro. (patchset #3 id:40001 of https://codereview.chromium.org/798413003/) 2014-12-20 13:17:35 +00:00
test-symbols.cc Add missing license headers for some cctests. 2015-04-02 14:45:45 +00:00
test-thread-termination.cc Disable some flags on threading tests that will break with --turbo-osr. 2015-03-25 18:06:06 +00:00
test-threads.cc Fix newly discovered presubmit errors. 2014-08-12 13:33:35 +00:00
test-transitions.cc Reland: Simplify and compact transitions storage 2015-03-06 14:08:47 +00:00
test-typedarrays.cc Expose an API on ArrayBufferView to copy out content w/o changing the buffer 2015-04-02 09:36:39 +00:00
test-types.cc [turbofan] Make the representation type component independent of the semantic component. 2015-02-12 15:21:33 +00:00
test-unbound-queue.cc Check alpha-sorting of includes during presubmit. 2014-06-20 08:40:11 +00:00
test-unboxed-doubles.cc Layout descriptor must be trimmed when corresponding descriptors array is trimmed to stay in sync. 2015-03-30 17:03:50 +00:00
test-unique.cc Remove the dependency of Zone on Isolate 2015-01-23 15:20:00 +00:00
test-unscopables-hidden-prototype.cc Enable ES6 unscopables 2014-08-08 11:42:59 +00:00
test-utils-arm64.cc Rename ASSERT* to DCHECK*. 2014-08-04 11:34:54 +00:00
test-utils-arm64.h Rename ASSERT* to DCHECK*. 2014-08-04 11:34:54 +00:00
test-utils.cc Remove deprecated v8::base::OS::nan_value(). 2015-01-21 14:38:58 +00:00
test-version.cc Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.". 2015-01-30 09:29:41 +00:00
test-weakmaps.cc Serializer: move to a subfolder and clean up includes. 2015-03-27 15:29:07 +00:00
test-weaksets.cc Serializer: move to a subfolder and clean up includes. 2015-03-27 15:29:07 +00:00
test-weaktypedarrays.cc Just visit young array buffers during scavenge. Additionally keep the views in new space in a separate global list and move them to the corresponding array buffers when they get promoted. 2015-03-11 10:58:03 +00:00
testcfg.py Fix test serialization path for windows. 2014-03-26 07:40:32 +00:00
trace-extension.cc Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.". 2015-01-30 09:29:41 +00:00
trace-extension.h Use full include paths everywhere 2014-06-03 08:12:43 +00:00
types-fuzz.h [turbofan] Make the representation type component independent of the semantic component. 2015-02-12 15:21:33 +00:00