diff --git a/src/api/environment.cc b/src/api/environment.cc index 401eaea044fc49..766b603a313a3c 100644 --- a/src/api/environment.cc +++ b/src/api/environment.cc @@ -304,6 +304,10 @@ Isolate* NewIsolate(Isolate::CreateParams* params, MultiIsolatePlatform* platform, const SnapshotData* snapshot_data, const IsolateSettings& settings) { + if (params->cpp_heap == nullptr) { + params->cpp_heap = + v8::CppHeap::Create(platform, v8::CppHeapCreateParams{{}}).release(); + } Isolate* isolate = Isolate::Allocate(); if (isolate == nullptr) return nullptr; diff --git a/test/cctest/test_environment.cc b/test/cctest/test_environment.cc index 1bfb2810eb652d..1d2898bb3fd964 100644 --- a/test/cctest/test_environment.cc +++ b/test/cctest/test_environment.cc @@ -624,6 +624,9 @@ TEST_F(NodeZeroIsolateTestFixture, CtrlCWithOnlySafeTerminationTest) { // Allocate and initialize Isolate. v8::Isolate::CreateParams create_params; create_params.array_buffer_allocator = allocator.get(); + create_params.cpp_heap = + v8::CppHeap::Create(platform.get(), v8::CppHeapCreateParams{{}}) + .release(); v8::Isolate* isolate = v8::Isolate::Allocate(); CHECK_NOT_NULL(isolate); platform->RegisterIsolate(isolate, ¤t_loop);