From bd1f355fc5805c8307da85a16d1a385e5c48813a Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Sat, 19 May 2018 00:25:07 +0200 Subject: lib,src: replace all C++ promises with JS promises C++ promises can not be properly optimized by V8. They also behave a tiny bit different than "regular" promises. PR-URL: https://github.com/nodejs/node/pull/20830 Reviewed-By: Anna Henningsen Reviewed-By: Gus Caplan Reviewed-By: Tiancheng "Timothy" Gu Reviewed-By: Benedikt Meurer Reviewed-By: Benjamin Gruenbaum --- src/node_util.cc | 35 ----------------------------------- 1 file changed, 35 deletions(-) (limited to 'src/node_util.cc') diff --git a/src/node_util.cc b/src/node_util.cc index ef7dc8a818..9f31786b32 100644 --- a/src/node_util.cc +++ b/src/node_util.cc @@ -9,7 +9,6 @@ using v8::Context; using v8::FunctionCallbackInfo; using v8::Integer; using v8::Local; -using v8::Maybe; using v8::Object; using v8::Private; using v8::Promise; @@ -127,36 +126,6 @@ void WatchdogHasPendingSigint(const FunctionCallbackInfo& args) { args.GetReturnValue().Set(ret); } - -void CreatePromise(const FunctionCallbackInfo& args) { - Local context = args.GetIsolate()->GetCurrentContext(); - auto maybe_resolver = Promise::Resolver::New(context); - if (!maybe_resolver.IsEmpty()) - args.GetReturnValue().Set(maybe_resolver.ToLocalChecked()); -} - - -void PromiseResolve(const FunctionCallbackInfo& args) { - Local context = args.GetIsolate()->GetCurrentContext(); - Local promise = args[0]; - CHECK(promise->IsPromise()); - if (promise.As()->State() != Promise::kPending) return; - Local resolver = promise.As(); // sic - Maybe ret = resolver->Resolve(context, args[1]); - args.GetReturnValue().Set(ret.FromMaybe(false)); -} - - -void PromiseReject(const FunctionCallbackInfo& args) { - Local context = args.GetIsolate()->GetCurrentContext(); - Local promise = args[0]; - CHECK(promise->IsPromise()); - if (promise.As()->State() != Promise::kPending) return; - Local resolver = promise.As(); // sic - Maybe ret = resolver->Reject(context, args[1]); - args.GetReturnValue().Set(ret.FromMaybe(false)); -} - void SafeGetenv(const FunctionCallbackInfo& args) { CHECK(args[0]->IsString()); Utf8Value strenvtag(args.GetIsolate(), args[0]); @@ -211,10 +180,6 @@ void Initialize(Local target, env->SetMethodNoSideEffect(target, "watchdogHasPendingSigint", WatchdogHasPendingSigint); - env->SetMethodNoSideEffect(target, "createPromise", CreatePromise); - env->SetMethod(target, "promiseResolve", PromiseResolve); - env->SetMethod(target, "promiseReject", PromiseReject); - env->SetMethod(target, "safeGetenv", SafeGetenv); } -- cgit v1.2.3