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