| // Copyright 2019 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| @cppObjectLayoutDefinition |
| @abstract |
| extern class Microtask extends Struct { |
| @if(V8_ENABLE_CONTINUATION_PRESERVED_EMBEDDER_DATA) |
| continuation_preserved_embedder_data: Object|Undefined; |
| } |
| |
| @cppObjectLayoutDefinition |
| extern class CallbackTask extends Microtask { |
| callback: Foreign; |
| data: Object; |
| } |
| |
| @cppObjectLayoutDefinition |
| extern class CallableTask extends Microtask { |
| callable: JSReceiver; |
| context: NativeContext; |
| } |
| |
| // Specialized microtask for resuming async generators/functions when the |
| // awaited/yielded value is a non-thenable. Avoids closure allocation and |
| // indirect Call dispatch. The |kind| field selects the resume behaviour. |
| @cppObjectLayoutDefinition |
| extern class AsyncResumeTask extends Microtask { |
| generator: JSGeneratorObject; |
| value: Object; |
| kind: Smi; |
| } |