Home | History | Annotate | Download | only in src
      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