• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2016 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 V8_PROMISE_UTILS_H_
6 #define V8_PROMISE_UTILS_H_
7 
8 #include "src/objects.h"
9 
10 namespace v8 {
11 namespace internal {
12 
13 // Helper methods for Promise builtins.
14 class PromiseUtils : public AllStatic {
15  public:
16   // These get and set the slots on the PromiseResolvingContext, which
17   // is used by the resolve/reject promise callbacks.
18   static JSObject* GetPromise(Handle<Context> context);
19   static Object* GetDebugEvent(Handle<Context> context);
20   static bool HasAlreadyVisited(Handle<Context> context);
21   static void SetAlreadyVisited(Handle<Context> context);
22 
23   static void CreateResolvingFunctions(Isolate* isolate,
24                                        Handle<JSObject> promise,
25                                        Handle<Object> debug_event,
26                                        Handle<JSFunction>* resolve,
27                                        Handle<JSFunction>* reject);
28 };
29 }  // namespace internal
30 }  // namespace v8
31 
32 #endif  // V8_PROMISE_UTILS_H_
33