• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2021 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef INCLUDE_V8_MICROTASK_H_
6 #define INCLUDE_V8_MICROTASK_H_
7 
8 namespace v8 {
9 
10 class Isolate;
11 
12 // --- Microtasks Callbacks ---
13 using MicrotasksCompletedCallbackWithData = void (*)(Isolate*, void*);
14 using MicrotaskCallback = void (*)(void* data);
15 
16 /**
17  * Policy for running microtasks:
18  *   - explicit: microtasks are invoked with the
19  *               Isolate::PerformMicrotaskCheckpoint() method;
20  *   - scoped: microtasks invocation is controlled by MicrotasksScope objects;
21  *   - auto: microtasks are invoked when the script call depth decrements
22  *           to zero.
23  */
24 enum class MicrotasksPolicy { kExplicit, kScoped, kAuto };
25 
26 }  // namespace v8
27 
28 #endif  // INCLUDE_V8_MICROTASK_H_
29