Skip to content

Commit bd9ab00

Browse files
codebytereMylesBorins
authored andcommitted
src: allow preventing SetPromiseRejectCallback
PR-URL: #34387 Reviewed-By: Gus Caplan <[email protected]> Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Tobias Nießen <[email protected]>
1 parent 4b4eb5f commit bd9ab00

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

src/api/environment.cc

+5-3
Original file line numberDiff line numberDiff line change
@@ -239,9 +239,11 @@ void SetIsolateMiscHandlers(v8::Isolate* isolate, const IsolateSettings& s) {
239239
s.allow_wasm_code_generation_callback : AllowWasmCodeGenerationCallback;
240240
isolate->SetAllowWasmCodeGenerationCallback(allow_wasm_codegen_cb);
241241

242-
auto* promise_reject_cb = s.promise_reject_callback ?
243-
s.promise_reject_callback : task_queue::PromiseRejectCallback;
244-
isolate->SetPromiseRejectCallback(promise_reject_cb);
242+
if ((s.flags & SHOULD_NOT_SET_PROMISE_REJECTION_CALLBACK) == 0) {
243+
auto* promise_reject_cb = s.promise_reject_callback ?
244+
s.promise_reject_callback : task_queue::PromiseRejectCallback;
245+
isolate->SetPromiseRejectCallback(promise_reject_cb);
246+
}
245247

246248
if (s.flags & DETAILED_SOURCE_POSITIONS_FOR_PROFILING)
247249
v8::CpuProfiler::UseDetailedSourcePositionsForProfiling(isolate);

src/node.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,8 @@ class NODE_EXTERN MultiIsolatePlatform : public v8::Platform {
333333

334334
enum IsolateSettingsFlags {
335335
MESSAGE_LISTENER_WITH_ERROR_LEVEL = 1 << 0,
336-
DETAILED_SOURCE_POSITIONS_FOR_PROFILING = 1 << 1
336+
DETAILED_SOURCE_POSITIONS_FOR_PROFILING = 1 << 1,
337+
SHOULD_NOT_SET_PROMISE_REJECTION_CALLBACK = 1 << 2
337338
};
338339

339340
struct IsolateSettings {

0 commit comments

Comments
 (0)