v8/test/cctest
Caitlin Potter 2d889aa9a4 Reland "[esnext] load iterator.next only once at beginning of iteration"
https://github.com/tc39/ecma262/pull/988 gained concensus during the
september 2017 TC39 meetings. This moves the load of the "next" method
to the very beginning of the iteration protocol, rather than during
each iteration step.

This impacts:

- yield*
- for-of loops
- spread arguments
- array spreads

In the v8 implementation, this also affects async iteration versions of
these things (the sole exception being the Async-From-Sync iterator,
which requires a few more changes to work with this, likely done in a
followup patch).

This change introduces a new AST node, ResolvedProperty, which can be used
as a callee by Call nodes to produce the same bytecode as Property calls,
without observably re-loading the property. This is used in several
AST-desugarings involving the iteration protocol.

BUG=v8:6861, v8:5699
R=rmcilroy@chromium.org
TBR=neis@chromium.org, adamk@chromium.org

Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I9685db6e85315ba8a2df87a4537c2bf491e1e35b
Reviewed-on: https://chromium-review.googlesource.com/857593
Commit-Queue: Caitlin Potter <caitp@igalia.com>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50518}
2018-01-11 20:27:13 +00:00
..
compiler Replace CALL_GENERATED_CODE by GeneratedCode wrapper 2018-01-09 10:33:36 +00:00
heap Reland "[arm64] Switch jssp to csp" 2018-01-11 18:42:13 +00:00
interpreter Reland "[esnext] load iterator.next only once at beginning of iteration" 2018-01-11 20:27:13 +00:00
libplatform [tracing] allow embedders to provide own tracing timestamps 2018-01-10 19:36:23 +00:00
libsampler
parsing [class] Split out static fields into a separate flag 2017-12-22 13:04:51 +00:00
wasm [wasm] Move (almost all) constants to wasm-constants.h 2018-01-11 12:25:54 +00:00
assembler-helper-arm.cc Replace CALL_GENERATED_CODE by GeneratedCode wrapper 2018-01-09 10:33:36 +00:00
assembler-helper-arm.h Replace CALL_GENERATED_CODE by GeneratedCode wrapper 2018-01-09 10:33:36 +00:00
BUILD.gn Reland "[arm64] Preparation for padding of arguments" 2017-12-20 13:50:36 +00:00
cctest_exe.isolate
cctest.cc [wasm] First step of refactoring trap handling to be per module. 2017-12-07 01:00:55 +00:00
cctest.gyp Reland "[arm64] Preparation for padding of arguments" 2017-12-20 13:50:36 +00:00
cctest.h Fix [Memory] Add OnCriticalMemoryPressure overload to v8::Platform. 2017-12-26 10:55:07 +00:00
cctest.isolate
cctest.status [snapshot] support attaching arbitrary v8::Data. 2018-01-09 12:06:40 +00:00
DEPS
expression-type-collector-macros.h [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
gay-fixed.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
gay-fixed.h
gay-precision.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
gay-precision.h
gay-shortest.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
gay-shortest.h
log-eq-of-logging-and-traversal.js Reland "[logging] Use OFStream for log events" 2017-10-20 22:47:01 +00:00
OWNERS MIPS: Update OWNERS 2017-11-10 14:33:48 +00:00
print-extension.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
print-extension.h
profiler-extension.cc Replace CHECK(false) by UNREACHABLE() 2017-12-19 18:58:07 +00:00
profiler-extension.h
scope-test-helper.h [reland] [parser] Skipping inner funcs: Use less memory for variables. 2017-10-25 08:49:37 +00:00
setup-isolate-for-tests.cc [heap] remove heap init from shipping binary. 2017-09-07 05:24:49 +00:00
setup-isolate-for-tests.h [heap] remove heap init from shipping binary. 2017-09-07 05:24:49 +00:00
test-access-checks.cc Replace CHECK(false) by UNREACHABLE() 2017-12-19 18:58:07 +00:00
test-accessor-assembler.cc Remove ComputeFlags, simply pass in Code::Kind instead of Code::Flags 2017-09-29 15:37:27 +00:00
test-accessors.cc [ic] Introduce proper StoreGlobalIC dispatcher. 2017-12-13 16:23:54 +00:00
test-allocation.cc Fix [Memory] Add OnCriticalMemoryPressure overload to v8::Platform. 2017-12-26 10:55:07 +00:00
test-api-accessors.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-api-interceptors.cc Revert "[api] Prefer Descriptor interceptor over Getter in GetPropertyAttributes" 2018-01-04 15:12:20 +00:00
test-api.cc [proxy] Set [[ProxyTarget]] to null during revocation 2018-01-10 11:23:54 +00:00
test-api.h Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-array-list.cc [iwyu] Remove stale TODOs about objects-inl.h inclusion. 2017-10-09 11:14:59 +00:00
test-assembler-arm64.cc [Memory] Create memory management API in v8::internal. 2017-12-15 18:49:47 +00:00
test-assembler-arm.cc Replace CALL_GENERATED_CODE by GeneratedCode wrapper 2018-01-09 10:33:36 +00:00
test-assembler-ia32.cc Implement haddps for ia32/x64 2017-12-11 21:43:53 +00:00
test-assembler-mips64.cc Replace CALL_GENERATED_CODE by GeneratedCode wrapper 2018-01-09 10:33:36 +00:00
test-assembler-mips.cc Replace CALL_GENERATED_CODE by GeneratedCode wrapper 2018-01-09 10:33:36 +00:00
test-assembler-ppc.cc PPC: Replace CALL_GENERATED_CODE by GeneratedCode wrapper 2018-01-10 20:40:13 +00:00
test-assembler-s390.cc Replace CALL_GENERATED_CODE by GeneratedCode wrapper 2018-01-09 10:33:36 +00:00
test-assembler-x64.cc Implement haddps for ia32/x64 2017-12-11 21:43:53 +00:00
test-atomicops.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-bignum-dtoa.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-bignum.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-bit-vector.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-circular-queue.cc
test-code-layout.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-code-stub-assembler.cc [CSA]: Fix ElementOffsetFromIndex for dynamic SMIs 2018-01-11 14:38:25 +00:00
test-code-stubs-arm64.cc [simulator] Make Call variadic 2018-01-08 16:53:45 +00:00
test-code-stubs-arm.cc Replace CALL_GENERATED_CODE by GeneratedCode wrapper 2018-01-09 10:33:36 +00:00
test-code-stubs-ia32.cc Refactor bailout reasons 2018-01-04 19:08:45 +00:00
test-code-stubs-mips64.cc Refactor bailout reasons 2018-01-04 19:08:45 +00:00
test-code-stubs-mips.cc Refactor bailout reasons 2018-01-04 19:08:45 +00:00
test-code-stubs-x64.cc Refactor bailout reasons 2018-01-04 19:08:45 +00:00
test-code-stubs.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-code-stubs.h [cctest] Avoid disallowed "using namespace" directive. 2017-09-01 08:28:36 +00:00
test-compiler.cc Support Function::SetName() with --harmony-function-tostring 2018-01-09 18:13:09 +00:00
test-constantpool.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-conversions.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-cpu-profiler.cc [cpu-profiler] Fix script name when recording inlining info 2018-01-03 11:48:04 +00:00
test-date.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-debug.cc [parser] provide way to imply that a script is wrapped in a function. 2017-12-18 09:20:23 +00:00
test-decls.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-deoptimization.cc Pass Isolate pointer to String::Utf8Value/Value constructors 2017-08-28 18:17:08 +00:00
test-dictionary.cc [runtime] Make GetHash and GetOrCreateHash member functions 2017-08-22 00:35:31 +00:00
test-disasm-arm64.cc [arm64] Enforce restriction on stlxr instructions 2017-11-29 13:19:28 +00:00
test-disasm-arm.cc [arm] Restrict usage of pc-relative LDR. 2018-01-10 11:22:49 +00:00
test-disasm-ia32.cc Implement haddps for ia32/x64 2017-12-11 21:43:53 +00:00
test-disasm-mips64.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-disasm-mips.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-disasm-ppc.cc [cctest] Avoid disallowed "using namespace" directive. 2017-09-01 08:28:36 +00:00
test-disasm-s390.cc [cctest] Avoid disallowed "using namespace" directive. 2017-09-01 08:28:36 +00:00
test-disasm-x64.cc [x64] Implement movdqu in the disassembler 2017-12-18 18:17:10 +00:00
test-diy-fp.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-double.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-dtoa.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-elements-kind.cc [factory] Simplify JSFunction creation 2017-11-08 13:52:13 +00:00
test-experimental-extra.js
test-extra.js
test-fast-dtoa.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-feedback-vector.cc Add speculation mode to Call node 2017-12-08 14:51:10 +00:00
test-feedback-vector.h [objects] Make feedback vector a first-class object 2017-07-27 13:31:55 +00:00
test-field-type-tracking.cc [cleanup] Replace V8_UINT64_C macro by proper C++11 syntax 2017-12-01 13:13:37 +00:00
test-fixed-dtoa.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-flags.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-func-name-inference.cc [cctest] Add FuncNameInferrer coverage for arrow functions 2017-12-14 21:34:39 +00:00
test-fuzz-arm64.cc [cctest] Avoid disallowed "using namespace" directive. 2017-09-01 08:28:36 +00:00
test-global-handles.cc Global handles: More test coverage 2017-11-20 14:48:04 +00:00
test-global-object.cc Pass Isolate pointer to String::Utf8Value/Value constructors 2017-08-28 18:17:08 +00:00
test-hashcode.cc [runtime] Make GetHash and GetOrCreateHash member functions 2017-08-22 00:35:31 +00:00
test-hashmap.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-heap-profiler.cc Replace CHECK(false) by UNREACHABLE() 2017-12-19 18:58:07 +00:00
test-identity-map.cc [iwyu] Remove stale TODOs about objects-inl.h inclusion. 2017-10-09 11:14:59 +00:00
test-inobject-slack-tracking.cc [runtime] Stop using Map::unused_property_fields() byte. 2017-11-21 14:07:04 +00:00
test-intl.cc
test-javascript-arm64.cc [jumbo] arm64 cctest fixes 2017-09-30 17:17:23 +00:00
test-js-arm64-variables.cc [jumbo] arm64 cctest fixes 2017-09-30 17:17:23 +00:00
test-liveedit.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-lockers.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-log-stack-tracer.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-log.cc Refactor FATAL macro 2017-12-19 07:57:12 +00:00
test-macro-assembler-arm.cc Replace CALL_GENERATED_CODE by GeneratedCode wrapper 2018-01-09 10:33:36 +00:00
test-macro-assembler-mips64.cc Replace CALL_GENERATED_CODE by GeneratedCode wrapper 2018-01-09 10:33:36 +00:00
test-macro-assembler-mips.cc Replace CALL_GENERATED_CODE by GeneratedCode wrapper 2018-01-09 10:33:36 +00:00
test-macro-assembler-x64.cc [test] Switch cctest to be W^X compliant as well. 2017-12-07 13:04:23 +00:00
test-managed.cc Refactor Managed construction 2017-09-04 11:37:42 +00:00
test-mementos.cc [iwyu] Remove stale TODOs about objects-inl.h inclusion. 2017-10-09 11:14:59 +00:00
test-modules.cc [api,modules] Allow GetModuleNamespace on unevaluated modules. 2018-01-08 09:01:25 +00:00
test-object.cc [bigint] Encapsulate internals in MutableBigInt 2017-11-17 23:06:52 +00:00
test-orderedhashtable.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-parsing.cc [ESNext] Implement optional catch binding 2018-01-08 18:09:34 +00:00
test-platform.cc [Memory] Create memory management API in v8::internal. 2017-12-15 18:49:47 +00:00
test-profile-generator.cc Refactor FATAL macro 2017-12-19 07:57:12 +00:00
test-random-number-generator.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-regexp.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-representation.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-run-wasm-relocation-arm64.cc [wasm] Annotate some more {Code} mutation sites. 2017-11-07 11:51:50 +00:00
test-run-wasm-relocation-arm.cc [wasm] Annotate some more {Code} mutation sites. 2017-11-07 11:51:50 +00:00
test-run-wasm-relocation-ia32.cc [wasm] Annotate some more {Code} mutation sites. 2017-11-07 11:51:50 +00:00
test-run-wasm-relocation-x64.cc [wasm] Annotate some more {Code} mutation sites. 2017-11-07 11:51:50 +00:00
test-sampler-api.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-serialize.cc [snapshot] support attaching arbitrary v8::Data. 2018-01-09 12:06:40 +00:00
test-strings.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-strtod.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-symbols.cc [iwyu] Remove stale TODOs about objects-inl.h inclusion. 2017-10-09 11:14:59 +00:00
test-sync-primitives-arm64.cc [simulator] Make Call variadic 2018-01-08 16:53:45 +00:00
test-sync-primitives-arm.cc Replace CALL_GENERATED_CODE by GeneratedCode wrapper 2018-01-09 10:33:36 +00:00
test-thread-termination.cc Replace CHECK(false) by UNREACHABLE() 2017-12-19 18:58:07 +00:00
test-threads.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-trace-event.cc [cleanup] Replace List with std::vector in cctests and d8. 2017-08-29 13:29:26 +00:00
test-traced-value.cc Avoid octal escape sequences 2017-12-01 15:08:14 +00:00
test-transitions.cc [iwyu] Remove stale TODOs about objects-inl.h inclusion. 2017-10-09 11:14:59 +00:00
test-transitions.h Refactor TransitionArray access 2017-07-28 19:41:21 +00:00
test-typedarrays.cc Revert "Optimize TypedArraySpeciesCreate using SpeciesProtector of Array" 2018-01-10 07:46:29 +00:00
test-types.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-unbound-queue.cc
test-unboxed-doubles.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-unscopables-hidden-prototype.cc
test-usecounters.cc [parser] Remove incorrect UseCounter code for LabeledExpressionStatement 2018-01-06 00:17:43 +00:00
test-utils-arm64.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-utils-arm64.h Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-utils.cc Replace CHECK(false) by UNREACHABLE() 2017-12-19 18:58:07 +00:00
test-version.cc [build] Introduce an embedder version string 2017-10-05 07:17:45 +00:00
test-weakmaps.cc [heap] Increase test coverage for embedder tracing 2017-12-07 14:11:51 +00:00
test-weaksets.cc [factory] Simplify JSFunction creation 2017-11-08 13:52:13 +00:00
testcfg.py [test] Fixed target_name in json progress indicator 2017-12-19 15:23:54 +00:00
trace-extension.cc Replace CHECK(false) by UNREACHABLE() 2017-12-19 18:58:07 +00:00
trace-extension.h
types-fuzz.h
unicode-helpers.h Implement DFA Unicode Decoder 2017-12-11 21:36:13 +00:00