v8/test/unittests
Caitlin Potter d3ca0d0050 [esnext] implement spec change to TaggedTemplate callsite caching
Implements the change outlined in https://github.com/tc39/ecma262/pull/890,
which has been ratified and pulled into the specification. In particular,
template callsite objects are no longer kept in a global, eternal Map, but
are instead associated with their callsite, which can be collected. This
prevents a memory leak incurred by TaggedTemplate calls.

Changes, summarized:

    - Remove the TemplateMap and TemplateMapShape objects, instead caching
      template objects in the feedback vector.
    - Remove the `hash` member of TemplateObjectDescriptor, and the Equals
      method (used by TemplateMap)
    - Add a new FeedbackSlotKind (kTemplateObject), which behaves similarly
      to FeedbackSlotKind::kLiteral, but prevents eval caching. This ensures
      that a new feedback vector is always created for eval() containing tagged
      templates, even when the CompilationCache is used.
    - GetTemplateObject bytecode now takes a feedback index, and only calls
      into the runtime if the feedback is Smi::kZero (uninitialized).

BUG=v8:3230, v8:2891
R=littledan@chromium.org, yangguo@chromium.org, bmeurer@chromium.org,
rmcilroy@chromium.org

Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I7827bc148d3d93e2b056ebf63dd624da196ad423
Reviewed-on: https://chromium-review.googlesource.com/624564
Commit-Queue: Caitlin Potter <caitp@igalia.com>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51248}
2018-02-12 17:06:18 +00:00
..
api Enable clang's -Wunreachable-code warning. 2017-12-04 13:09:25 +00:00
asmjs Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
base Bring Time(Delta)::Min/Max() and related helpers to V8. 2018-02-02 15:38:55 +00:00
compiler [Ignition] [TurboFan] Generate speculation poison in code generator. 2018-02-12 09:26:58 +00:00
compiler-dispatcher [test] Add TaskRunners to the platform in the compiler dispatcher tests 2017-11-20 15:54:11 +00:00
heap Add V8.GC.ParallelTaskLatencyMicroSeconds metric. 2018-02-06 21:53:49 +00:00
interpreter [esnext] implement spec change to TaggedTemplate callsite caching 2018-02-12 17:06:18 +00:00
libplatform Reland "[platform] Implement TaskRunners in the DefaultPlatform" 2017-11-15 12:35:54 +00:00
parser Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
wasm [wasm] Implement wasm sign extension opcodes 2018-01-25 23:18:08 +00:00
zone [zone containers] Fix iteration of const ZoneChunkList 2018-01-18 12:48:05 +00:00
allocation-unittest.cc [memory] Make sure parameters are properly aligned in AllocatePages. 2018-02-02 13:54:28 +00:00
bigint-unittest.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
BUILD.gn [object-stats] Add unittest for clashing instance types 2018-01-23 11:38:15 +00:00
cancelable-tasks-unittest.cc Make CancelableTask ids unique 2017-08-02 16:10:42 +00:00
char-predicates-unittest.cc Use ICU for ID_START, ID_CONTINUE and WhiteSpace check 2017-06-14 20:32:49 +00:00
code-stub-assembler-unittest.cc Remove ComputeFlags, simply pass in Code::Kind instead of Code::Flags 2017-09-29 15:37:27 +00:00
code-stub-assembler-unittest.h [csa] Add constant folding more universally to CodeAssembler operators 2017-09-12 10:03:10 +00:00
counters-unittest.cc [test] Allow two timing output to be the same 2018-02-12 16:37:46 +00:00
DEPS
detachable-vector-unittest.cc [cleanup] Replace List with std::vector in api. 2017-09-28 09:32:18 +00:00
eh-frame-iterator-unittest.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
eh-frame-writer-unittest.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
locked-queue-unittest.cc Add lock-based unbounded queue 2015-11-18 10:54:13 +00:00
object-unittest.cc Leave spaces between instance types. 2017-12-20 07:34:39 +00:00
register-configuration-unittest.cc [Turbofan] Add concept of FP register aliasing on ARM 32. 2016-10-26 16:04:33 +00:00
run-all-unittests.cc [cleanup] use unique_ptr for the DefaultPlatform 2017-11-14 09:57:18 +00:00
source-position-table-unittest.cc Decouple SourcePositionTableBuilder from Zone 2017-11-21 12:56:13 +00:00
test-helpers.cc [unittests] Add TestWithIsolate::RunJS helper method 2017-11-13 14:27:51 +00:00
test-helpers.h [unittests] Add TestWithIsolate::RunJS helper method 2017-11-13 14:27:51 +00:00
test-utils.cc [RCS] Add explicit tests for function callbacks 2017-11-14 09:48:08 +00:00
test-utils.h [RCS] Add explicit tests for function callbacks 2017-11-14 09:48:08 +00:00
testcfg.py [test] Remove dead code from suites and tests 2018-02-01 14:12:49 +00:00
unicode-unittest.cc Implement DFA Unicode Decoder 2017-12-11 21:36:13 +00:00
unittests.isolate [test] Move GoogleTestSuite to a separate testcfg. 2017-12-11 20:57:07 +00:00
unittests.status Do not block in non-main thread tasks in ItemParallelJobTests. 2018-02-01 09:09:29 +00:00
utils-unittest.cc Reland "MIPS[64] Implementation of MSA instructions on builtin simulator" 2017-11-28 13:43:23 +00:00
value-serializer-unittest.cc De/serializes SharedArrayBuffers. 2018-01-18 19:55:48 +00:00