blob: d9dd27f71c9c230a70df6a1a0a4799c358f3c1a5 [file]
// 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;
}