Index: src/factory.cc |
diff --git a/src/factory.cc b/src/factory.cc |
index e2637ece1e32fd57faf99913c0ca4c5f54746aa1..8ffc7cb2d429dc833b98f53aa9efc37ec76ccbda 100644 |
--- a/src/factory.cc |
+++ b/src/factory.cc |
@@ -915,6 +915,19 @@ Handle<Symbol> Factory::NewPrivateSymbol() { |
return symbol; |
} |
+Handle<JSPromise> Factory::NewJSPromise() { |
+ Handle<JSFunction> constructor( |
+ isolate()->native_context()->promise_function(), isolate()); |
+ DCHECK(constructor->has_initial_map()); |
+ Handle<Map> map(constructor->initial_map(), isolate()); |
+ |
+ DCHECK(!map->is_prototype_map()); |
+ Handle<JSObject> promise_obj = NewJSObjectFromMap(map); |
+ Handle<JSPromise> promise = Handle<JSPromise>::cast(promise_obj); |
+ promise->set_status(v8::Promise::kPending); |
+ promise->set_flags(0); |
+ return promise; |
+} |
Handle<Context> Factory::NewNativeContext() { |
Handle<FixedArray> array = |