diff options
author | Shelley Vohr <shelley.vohr@gmail.com> | 2020-07-15 18:45:10 -0700 |
---|---|---|
committer | Myles Borins <mylesborins@github.com> | 2020-07-27 18:08:27 -0400 |
commit | bd9ab00acd9d97d99b181010b619da1de06ccd94 (patch) | |
tree | 7482a43d45bb46652dd759526d7b83a7684c1c59 | |
parent | 4b4eb5f1308781beb3dcdd3469298f26ca9f868d (diff) | |
download | node-new-bd9ab00acd9d97d99b181010b619da1de06ccd94.tar.gz |
src: allow preventing SetPromiseRejectCallback
PR-URL: https://github.com/nodejs/node/pull/34387
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
-rw-r--r-- | src/api/environment.cc | 8 | ||||
-rw-r--r-- | src/node.h | 3 |
2 files changed, 7 insertions, 4 deletions
diff --git a/src/api/environment.cc b/src/api/environment.cc index fdfd257aec..a18c21fa79 100644 --- a/src/api/environment.cc +++ b/src/api/environment.cc @@ -239,9 +239,11 @@ void SetIsolateMiscHandlers(v8::Isolate* isolate, const IsolateSettings& s) { s.allow_wasm_code_generation_callback : AllowWasmCodeGenerationCallback; isolate->SetAllowWasmCodeGenerationCallback(allow_wasm_codegen_cb); - auto* promise_reject_cb = s.promise_reject_callback ? - s.promise_reject_callback : task_queue::PromiseRejectCallback; - isolate->SetPromiseRejectCallback(promise_reject_cb); + if ((s.flags & SHOULD_NOT_SET_PROMISE_REJECTION_CALLBACK) == 0) { + auto* promise_reject_cb = s.promise_reject_callback ? + s.promise_reject_callback : task_queue::PromiseRejectCallback; + isolate->SetPromiseRejectCallback(promise_reject_cb); + } if (s.flags & DETAILED_SOURCE_POSITIONS_FOR_PROFILING) v8::CpuProfiler::UseDetailedSourcePositionsForProfiling(isolate); diff --git a/src/node.h b/src/node.h index 25f9f9b873..71273d6db9 100644 --- a/src/node.h +++ b/src/node.h @@ -333,7 +333,8 @@ class NODE_EXTERN MultiIsolatePlatform : public v8::Platform { enum IsolateSettingsFlags { MESSAGE_LISTENER_WITH_ERROR_LEVEL = 1 << 0, - DETAILED_SOURCE_POSITIONS_FOR_PROFILING = 1 << 1 + DETAILED_SOURCE_POSITIONS_FOR_PROFILING = 1 << 1, + SHOULD_NOT_SET_PROMISE_REJECTION_CALLBACK = 1 << 2 }; struct IsolateSettings { |