v8/test/cctest
Caitlin Potter bf463c4dc0 [async-iteration] implement AsyncGenerator
- Introduce new struct AsyncGeneratorRequest, which holds
  information pertinent to resuming execution of an
  AsyncGenerator, such as the Promise associated with the async
  generator request. It is intended to be used as a singly
  linked list, and holds a pointer to the next item in te queue.

- Introduce JSAsyncGeneratorObject (subclass of
  JSGeneratorObject), which includes several new internal fields
  (`queue` which contains a singly linked list of
  AsyncGeneratorRequest objects, and `await_input` which
  contains the sent value from an Await expression (This is
  necessary to prevent function.sent (used by yield*) from
  having the sent value observably overwritten during
  execution).

- Modify SuspendGenerator to accept a set of Flags, which
  indicate whether the suspend is for a Yield or Await, and
  whether it takes place on an async generator or ES6
  generator.

- Introduce interpreter intrinsics and TF intrinsic lowering for
  accessing the await input of an async generator

- Modify the JSGeneratorStore operator to understand whether or
  not it's suspending for a normal yield, or an AsyncGenerator
  Await. This ensures appropriate registers are stored.

- Add versions of ResumeGeneratorTrampoline which store the
  input value in a different field depending on wether it's an
  AsyncGenerator Await resume, or an ordinary resume. Also modifies
  whether debug code will assert that the generator object is a
  JSGeneratorObject or a JSAsyncGeneratorObject depending on the
  resume type.

BUG=v8:5855
R=bmeurer@chromium.org, rmcilroy@chromium.org, jgruber@chromium.org,
littledan@chromium.org, neis@chromium.org
TBR=marja@chromium.org

Change-Id: I9d58df1d344465fc937fe7eed322424204497187
Reviewed-on: https://chromium-review.googlesource.com/446961
Commit-Queue: Caitlin Potter <caitp@igalia.com>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44240}
2017-03-29 17:33:12 +00:00
..
asmjs Do NOT get isolate from ParseInfo in compiler.cc 2017-03-28 08:12:48 +00:00
compiler Make isolate explicit param of parsing:: functions 2017-03-28 08:20:56 +00:00
ffi [iwyu] Pre-work for removing unallowed include macro-assembler.h -> assembler-inl.h 2017-02-23 12:10:21 +00:00
heap [api] deprecate unused context size estimate. 2017-03-29 09:56:22 +00:00
interpreter [async-iteration] implement AsyncGenerator 2017-03-29 17:33:12 +00:00
libplatform [Tracing] Support multi-categories group list. 2016-12-08 00:28:18 +00:00
libsampler Include only stuff you need, part 6: Fix cctest.h. 2016-09-01 12:02:16 +00:00
parsing [parser] Introduce 'contextual keyword tokens'. 2017-03-28 12:43:23 +00:00
wasm [wasm] Make Opcode names consistent across architectures, implementations 2017-03-29 17:02:17 +00:00
ast-types-fuzz.h Remove SIMD.js from V8. 2017-02-14 06:57:25 +00:00
BUILD.gn Remove experimental fast accessor builder API 2017-03-14 08:14:48 +00:00
cctest_exe.isolate [Swarming] Isolate perf tests. 2016-02-15 11:17:18 +00:00
cctest.cc [wasm] Initial signal handler 2017-03-13 22:12:23 +00:00
cctest.gyp Remove experimental fast accessor builder API 2017-03-14 08:14:48 +00:00
cctest.h [debugger,api] deprecate everything in v8-debug.h 2017-03-10 07:06:25 +00:00
cctest.isolate [Interpreter] Refactor bytecode generator test suite. 2016-02-25 12:07:19 +00:00
cctest.status [asm.js] Widen test coverage to message tests. 2017-03-29 08:42:32 +00:00
DEPS Add DEPS files and run checkdeps in presubmit check 2014-06-03 13:39:42 +00:00
expression-type-collector-macros.h Make typing-asm match spec more closely around load/store, add more tests. 2015-11-30 21:11:47 +00:00
gay-fixed.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
gay-fixed.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
gay-precision.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
gay-precision.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
gay-shortest.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
gay-shortest.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
log-eq-of-logging-and-traversal.js Fix test-log/EquivalenceOfLoggingAndTraversal 2013-08-26 14:56:23 +00:00
OWNERS [wasm] Drop old typing-asm and its tests. 2016-07-14 00:06:34 +00:00
print-extension.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
print-extension.h Remove deprecated functions the smaller half of the remaing tests 2015-11-17 12:42:44 +00:00
profiler-extension.cc Introduce v8::CpuProfiler::New and v8::CpuProfiler::Dispose API. 2016-07-08 15:01:10 +00:00
profiler-extension.h Introduce v8::CpuProfiler::New and v8::CpuProfiler::Dispose API. 2016-07-08 15:01:10 +00:00
scope-test-helper.h [parser] Skipping inner funcs: collect data needed for allocation, not the allocation result. 2017-03-07 14:23:14 +00:00
test-access-checks.cc Fix receiver checks for v8::Function on a remote context receiver. 2017-02-22 10:13:24 +00:00
test-accessor-assembler.cc [ic] Cleanup accessor handling, fix cached property on global, remove cache-on-prototype support 2017-03-15 16:42:51 +00:00
test-accessors.cc [test] Make CHECK_EQ calls in cctest consistent. 2017-02-07 14:20:02 +00:00
test-api-accessors.cc Remove experimental fast accessor builder API 2017-03-14 08:14:48 +00:00
test-api-interceptors.cc Drop UniqueId from include/v8.h 2017-03-06 10:58:01 +00:00
test-api.cc [api] deprecate unused context size estimate. 2017-03-29 09:56:22 +00:00
test-api.h Include only stuff you need, part 6: Fix cctest.h. 2016-09-01 12:02:16 +00:00
test-array-list.cc Rename TypeFeedbackVector to FeedbackVector. 2017-02-07 14:46:36 +00:00
test-assembler-arm64.cc [iwyu|arm64] Pre-work for removing the illegal include macro-assembler.h -> assembler-inl.h 2017-03-15 12:08:50 +00:00
test-assembler-arm.cc [ARM] Implement widening and narrowing integer moves, vmovl, vqmovn. 2017-03-27 18:23:42 +00:00
test-assembler-ia32.cc [test] Make CHECK_EQ calls in cctest consistent. 2017-02-07 14:20:02 +00:00
test-assembler-mips64.cc [test] Make CHECK_EQ calls in cctest consistent. 2017-02-07 14:20:02 +00:00
test-assembler-mips.cc MIPS: Move ldc1/sdc1 to macro-assembler. 2017-03-21 11:35:40 +00:00
test-assembler-ppc.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-assembler-s390.cc s390: use new mul instruction 2017-02-13 18:50:35 +00:00
test-assembler-x64.cc [iwyu] Pre-work for removing unallowed include macro-assembler.h -> assembler-inl.h 2017-02-23 12:10:21 +00:00
test-assembler-x87.cc [test] Make CHECK_EQ calls in cctest consistent. 2017-02-07 14:20:02 +00:00
test-ast-types.cc Rename TypeFeedbackVector to FeedbackVector. 2017-02-07 14:46:36 +00:00
test-ast.cc [Parser] Introduce AstStringConstants to share constants across AstValueFactory 2017-01-17 10:20:47 +00:00
test-atomicops.cc Reland Update implementation of atomics with latest Chromium version but use compiler builtin atomics 2016-10-21 10:05:42 +00:00
test-bignum-dtoa.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-bignum.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-bit-vector.cc Named all zones in the project 2016-10-17 12:12:42 +00:00
test-circular-queue.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-code-cache.cc [ic] Cleanup accessor handling, fix cached property on global, remove cache-on-prototype support 2017-03-15 16:42:51 +00:00
test-code-layout.cc Rename TypeFeedbackVector to FeedbackVector. 2017-02-07 14:46:36 +00:00
test-code-stub-assembler.cc [csa] Support typed arrays in Has(Own)Property 2017-03-24 14:37:29 +00:00
test-code-stubs-arm64.cc [iwyu|arm64] Pre-work for removing the illegal include macro-assembler.h -> assembler-inl.h 2017-03-15 12:08:50 +00:00
test-code-stubs-arm.cc [iwyu|arm] Pre-work for removing unallowed include macro-assembler.h -> assembler-inl.h 2017-02-28 13:31:30 +00:00
test-code-stubs-ia32.cc [RegisterConfiguration] Streamline access to arch defaults, simplify Registers. 2016-06-27 15:31:31 +00:00
test-code-stubs-mips64.cc [RegisterConfiguration] Streamline access to arch defaults, simplify Registers. 2016-06-27 15:31:31 +00:00
test-code-stubs-mips.cc MIPS: Move ldc1/sdc1 to macro-assembler. 2017-03-21 11:35:40 +00:00
test-code-stubs-x64.cc [iwyu] Pre-work for removing unallowed include macro-assembler.h -> assembler-inl.h 2017-02-23 12:10:21 +00:00
test-code-stubs-x87.cc [RegisterConfiguration] Streamline access to arch defaults, simplify Registers. 2016-06-27 15:31:31 +00:00
test-code-stubs.cc [iwyu] Pre-work for removing unallowed include macro-assembler.h -> assembler-inl.h 2017-02-23 12:10:21 +00:00
test-code-stubs.h Introduce x87 port 2014-05-23 16:37:27 +00:00
test-compiler.cc [Compiler] Remove CompileBaseline and three tier pipeline. 2017-03-27 11:15:43 +00:00
test-constantpool.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-conversions.cc Rename TypeFeedbackVector to FeedbackVector. 2017-02-07 14:46:36 +00:00
test-cpu-profiler.cc [iwyu] Pre-work for removing unallowed include macro-assembler.h -> assembler-inl.h 2017-02-23 12:10:21 +00:00
test-date.cc Include only stuff you need, part 6: Fix cctest.h. 2016-09-01 12:02:16 +00:00
test-debug.cc [debug] introduce precise binary code coverage. 2017-03-23 17:23:17 +00:00
test-decls.cc [runtime] Intercept function declarations. 2016-09-15 15:48:34 +00:00
test-deoptimization.cc [iwyu] Pre-work for removing unallowed include macro-assembler.h -> assembler-inl.h 2017-02-23 12:10:21 +00:00
test-dictionary.cc [iwyu] Pre-work for removing unallowed include macro-assembler.h -> assembler-inl.h 2017-02-23 12:10:21 +00:00
test-disasm-arm64.cc [arm64] Use acquire/release memory accesses for atomics 2017-03-28 10:06:58 +00:00
test-disasm-arm.cc [ARM] Implement widening and narrowing integer moves, vmovl, vqmovn. 2017-03-27 18:23:42 +00:00
test-disasm-ia32.cc [ia32] Add minps/maxps and AVX v_ps/v_pd for add/sub/mul/div/min/max 2017-03-15 02:01:05 +00:00
test-disasm-mips64.cc MIPS[64]: Support for MSA instructions 2017-03-27 13:20:35 +00:00
test-disasm-mips.cc MIPS[64]: Support for MSA instructions 2017-03-27 13:20:35 +00:00
test-disasm-ppc.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-disasm-s390.cc S390: Initial test changes and files checkin. 2016-03-15 18:09:36 +00:00
test-disasm-x64.cc Add pshufw instruction, fix inconsistencies with pextrw instruction. 2017-03-22 20:49:27 +00:00
test-disasm-x87.cc [ic] Split LoadIC into LoadGlobalIC and LoadIC. 2016-06-14 13:21:28 +00:00
test-diy-fp.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-double.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-dtoa.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-elements-kind.cc [iwyu] Pre-work for removing unallowed include macro-assembler.h -> assembler-inl.h 2017-02-23 12:10:21 +00:00
test-experimental-extra.js Add experimental, non-snapshotted V8 extras 2015-08-20 00:01:14 +00:00
test-extra.js [promises] Remove unneeded PromiseCreate function from promise.js 2017-01-12 18:57:48 +00:00
test-fast-dtoa.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-feedback-vector.cc [ic] Split StoreIC into StoreGlobalIC and StoreIC. 2017-03-24 07:45:14 +00:00
test-feedback-vector.h Link type feedback vectors to the shared function info. 2017-02-08 08:33:33 +00:00
test-field-type-tracking.cc [runtime] Prototype const-to-mutable field migrations without deprecating maps. 2017-03-09 12:26:12 +00:00
test-fixed-dtoa.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-flags.cc [test] Make CHECK_EQ calls in cctest consistent. 2017-02-07 14:20:02 +00:00
test-func-name-inference.cc [iwyu] Remove include debug.h -> arguments.h 2017-02-09 09:19:23 +00:00
test-fuzz-arm64.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-global-handles.cc Drop UniqueId from include/v8.h 2017-03-06 10:58:01 +00:00
test-global-object.cc include fixing: api.h shouldn't include objects-inl.h 2017-01-09 13:43:28 +00:00
test-hashing.cc [iwyu|arm64] Pre-work for removing the illegal include macro-assembler.h -> assembler-inl.h 2017-03-15 12:08:50 +00:00
test-hashmap.cc Instead of having a hashmap with a function pointer defining its 2016-09-30 16:17:06 +00:00
test-heap-profiler.cc Remove unused Box type 2017-02-17 10:06:22 +00:00
test-hydrogen-types.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-identity-map.cc [IdentityMap] Remove ability to delete entries during iteration. 2017-03-06 21:15:20 +00:00
test-inobject-slack-tracking.cc [runtime] Feed back normalization to constructors (behind flag) 2017-02-27 13:56:14 +00:00
test-javascript-arm64.cc include fixing: api.h shouldn't include objects-inl.h 2017-01-09 13:43:28 +00:00
test-js-arm64-variables.cc include fixing: api.h shouldn't include objects-inl.h 2017-01-09 13:43:28 +00:00
test-list.cc Include only stuff you need, part 6: Fix cctest.h. 2016-09-01 12:02:16 +00:00
test-liveedit.cc include fixing: api.h shouldn't include objects-inl.h 2017-01-09 13:43:28 +00:00
test-lockers.cc include fixing: api.h shouldn't include objects-inl.h 2017-01-09 13:43:28 +00:00
test-log-stack-tracer.cc [iwyu] Pre-work for removing unallowed include macro-assembler.h -> assembler-inl.h 2017-02-23 12:10:21 +00:00
test-log.cc [profiler] Web UI: add summary of opts/deopts. 2017-03-22 16:02:25 +00:00
test-macro-assembler-arm.cc Implement remaining Boolean SIMD operations on ARM. 2017-03-02 19:50:33 +00:00
test-macro-assembler-ia32.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-macro-assembler-mips64.cc [test] Make CHECK_EQ calls in cctest consistent. 2017-02-07 14:20:02 +00:00
test-macro-assembler-mips.cc MIPS: Move ldc1/sdc1 to macro-assembler. 2017-03-21 11:35:40 +00:00
test-macro-assembler-x64.cc [iwyu] Pre-work for removing unallowed include macro-assembler.h -> assembler-inl.h 2017-02-23 12:10:21 +00:00
test-macro-assembler-x87.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-managed.cc [wasm] Managed<T> ensures T's lifetime does not leak past Isolate's 2017-02-21 17:23:38 +00:00
test-mementos.cc Rename TypeFeedbackVector to FeedbackVector. 2017-02-07 14:46:36 +00:00
test-modules.cc Fix completion value of class declarations. 2017-02-28 19:36:45 +00:00
test-object.cc Remove SIMD.js from V8. 2017-02-14 06:57:25 +00:00
test-parsing.cc [parser] Introduce 'contextual keyword tokens'. 2017-03-28 12:43:23 +00:00
test-platform-linux.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-platform-win32.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-platform.cc S390:Update inline asm constraint in test-platform 2016-07-16 15:36:45 +00:00
test-profile-generator.cc [debugger] remove debugger statement support from FCG/CS. 2017-02-22 08:45:09 +00:00
test-random-number-generator.cc Include only stuff you need, part 6: Fix cctest.h. 2016-09-01 12:02:16 +00:00
test-regexp.cc [regexp] Fold repeated assertions 2017-03-22 09:28:28 +00:00
test-representation.cc [turbofan] put src/types.[h/cc] into src/compiler/types.[h/cc] 2016-09-05 15:58:45 +00:00
test-run-wasm-relocation-arm64.cc Disentangle assembler from isolate. 2017-03-17 11:18:06 +00:00
test-run-wasm-relocation-arm.cc Disentangle assembler from isolate. 2017-03-17 11:18:06 +00:00
test-run-wasm-relocation-ia32.cc Disentangle assembler from isolate. 2017-03-17 11:18:06 +00:00
test-run-wasm-relocation-x64.cc Disentangle assembler from isolate. 2017-03-17 11:18:06 +00:00
test-run-wasm-relocation-x87.cc [wasm] Fix code specialization for empty memory buffer 2017-03-06 13:39:54 +00:00
test-sampler-api.cc Include only stuff you need, part 6: Fix cctest.h. 2016-09-01 12:02:16 +00:00
test-serialize.cc [rename] Rename internal field to embedder field. 2017-03-17 13:26:05 +00:00
test-simulator-arm64.cc [iwyu|arm64] Pre-work for removing the illegal include macro-assembler.h -> assembler-inl.h 2017-03-15 12:08:50 +00:00
test-simulator-arm.cc Revert "Revert of [Atomics] Implement ldaxr/stlxr instructions in ARM64 simulator (patchset #8 id:140001 of https://codereview.chromium.org/2711473002/ )" 2017-02-28 03:31:39 +00:00
test-strings.cc Remove Factory::NewStringFromASCII method. 2017-03-17 17:52:50 +00:00
test-strtod.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-symbols.cc Rename TypeFeedbackVector to FeedbackVector. 2017-02-07 14:46:36 +00:00
test-thread-termination.cc Assert that context creation doesn't throw 2017-01-17 13:01:03 +00:00
test-threads.cc Include only stuff you need, part 6: Fix cctest.h. 2016-09-01 12:02:16 +00:00
test-trace-event.cc [tracing] Avoid Gcc compilation fail by declaring AddTraceEvent function in Class derived from Platform Class. 2016-09-28 08:47:33 +00:00
test-traced-value.cc [tracing] Use locale independent writer for FP values. 2017-01-12 08:08:57 +00:00
test-transitions.cc [runtime][ic] Constant field tracking support. 2017-02-10 08:05:25 +00:00
test-typedarrays.cc include fixing: api.h shouldn't include objects-inl.h 2017-01-09 13:43:28 +00:00
test-types.cc Rename TypeFeedbackVector to FeedbackVector. 2017-02-07 14:46:36 +00:00
test-unbound-queue.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-unboxed-doubles.cc [heap] Enforce explicit MarkingState 2017-03-24 18:54:04 +00:00
test-unique.cc Rename TypeFeedbackVector to FeedbackVector. 2017-02-07 14:46:36 +00:00
test-unscopables-hidden-prototype.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-usecounters.cc [counters] Add UseCounters for 'f() = 0' syntax 2016-12-27 17:48:40 +00:00
test-utils-arm64.cc [iwyu|arm64] Pre-work for removing the illegal include macro-assembler.h -> assembler-inl.h 2017-03-15 12:08:50 +00:00
test-utils-arm64.h [build] Fix header-hygiene warnings for arm64 2016-07-25 18:16:26 +00:00
test-utils.cc Allow C++11 in unittests. 2017-03-10 06:35:51 +00:00
test-version.cc Revert of [build] Introduce an embedder version string (patchset #3 id:40001 of https://codereview.chromium.org/2619213002/ ) 2017-01-21 22:36:54 +00:00
test-weakmaps.cc Rename TypeFeedbackVector to FeedbackVector. 2017-02-07 14:46:36 +00:00
test-weaksets.cc Rename TypeFeedbackVector to FeedbackVector. 2017-02-07 14:46:36 +00:00
testcfg.py [test] Fix deterministic test shards. 2016-03-31 07:38:22 +00:00
trace-extension.cc Expose TickSample and its APIs in v8-profiler.h 2016-07-06 18:40:31 +00:00
trace-extension.h Expose TickSample and its APIs in v8-profiler.h 2016-07-06 18:40:31 +00:00
types-fuzz.h [turbofan] HeapConstant types should compare by handle address 2016-10-08 16:51:53 +00:00
unicode-helpers.h [parser/test] Move cctest/PreParserScopeAnalysis into a new file. 2017-02-07 10:11:01 +00:00