summaryrefslogtreecommitdiff
path: root/src/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/api')
-rw-r--r--src/api/environment.cc36
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) {