diff options
Diffstat (limited to 'src/api')
-rw-r--r-- | src/api/environment.cc | 36 |
1 files changed, 26 insertions, 10 deletions
diff --git a/src/api/environment.cc b/src/api/environment.cc index 0543e0323d..9a29ad1e5e 100644 --- a/src/api/environment.cc +++ b/src/api/environment.cc @@ -183,17 +183,33 @@ void SetIsolateCreateParamsForNode(Isolate::CreateParams* params) { #endif } +void SetIsolateUpForNode(v8::Isolate* isolate, IsolateSettingCategories cat) { + switch (cat) { + case IsolateSettingCategories::kErrorHandlers: + isolate->AddMessageListenerWithErrorLevel( + OnMessage, + Isolate::MessageErrorLevel::kMessageError | + Isolate::MessageErrorLevel::kMessageWarning); + isolate->SetAbortOnUncaughtExceptionCallback( + ShouldAbortOnUncaughtException); + isolate->SetFatalErrorHandler(OnFatalError); + break; + case IsolateSettingCategories::kMisc: + isolate->SetMicrotasksPolicy(MicrotasksPolicy::kExplicit); + isolate->SetAllowWasmCodeGenerationCallback( + AllowWasmCodeGenerationCallback); + isolate->SetPromiseRejectCallback(task_queue::PromiseRejectCallback); + v8::CpuProfiler::UseDetailedSourcePositionsForProfiling(isolate); + break; + default: + UNREACHABLE(); + break; + } +} + void SetIsolateUpForNode(v8::Isolate* isolate) { - isolate->AddMessageListenerWithErrorLevel( - OnMessage, - Isolate::MessageErrorLevel::kMessageError | - Isolate::MessageErrorLevel::kMessageWarning); - isolate->SetAbortOnUncaughtExceptionCallback(ShouldAbortOnUncaughtException); - isolate->SetMicrotasksPolicy(MicrotasksPolicy::kExplicit); - isolate->SetFatalErrorHandler(OnFatalError); - isolate->SetAllowWasmCodeGenerationCallback(AllowWasmCodeGenerationCallback); - isolate->SetPromiseRejectCallback(task_queue::PromiseRejectCallback); - v8::CpuProfiler::UseDetailedSourcePositionsForProfiling(isolate); + SetIsolateUpForNode(isolate, IsolateSettingCategories::kErrorHandlers); + SetIsolateUpForNode(isolate, IsolateSettingCategories::kMisc); } Isolate* NewIsolate(ArrayBufferAllocator* allocator, uv_loop_t* event_loop) { |