diff --git a/src/env-inl.h b/src/env-inl.h index 34d0531a1e4b61..a3f4a797adaeae 100644 --- a/src/env-inl.h +++ b/src/env-inl.h @@ -478,7 +478,10 @@ inline void Environment::SetMethod(v8::Local that, v8::FunctionCallback callback) { v8::Local function = NewFunctionTemplate(callback)->GetFunction(); - v8::Local name_string = v8::String::NewFromUtf8(isolate(), name); + // kInternalized strings are created in the old space. + const v8::NewStringType type = v8::NewStringType::kInternalized; + v8::Local name_string = + v8::String::NewFromUtf8(isolate(), name, type).ToLocalChecked(); that->Set(name_string, function); function->SetName(name_string); // NODE_SET_METHOD() compatibility. } @@ -489,7 +492,10 @@ inline void Environment::SetProtoMethod(v8::Local that, v8::Local signature = v8::Signature::New(isolate(), that); v8::Local function = NewFunctionTemplate(callback, signature)->GetFunction(); - v8::Local name_string = v8::String::NewFromUtf8(isolate(), name); + // kInternalized strings are created in the old space. + const v8::NewStringType type = v8::NewStringType::kInternalized; + v8::Local name_string = + v8::String::NewFromUtf8(isolate(), name, type).ToLocalChecked(); that->PrototypeTemplate()->Set(name_string, function); function->SetName(name_string); // NODE_SET_PROTOTYPE_METHOD() compatibility. } @@ -499,7 +505,10 @@ inline void Environment::SetTemplateMethod(v8::Local that, v8::FunctionCallback callback) { v8::Local function = NewFunctionTemplate(callback)->GetFunction(); - v8::Local name_string = v8::String::NewFromUtf8(isolate(), name); + // kInternalized strings are created in the old space. + const v8::NewStringType type = v8::NewStringType::kInternalized; + v8::Local name_string = + v8::String::NewFromUtf8(isolate(), name, type).ToLocalChecked(); that->Set(name_string, function); function->SetName(name_string); // NODE_SET_METHOD() compatibility. }