perf: prefer NewFromUtf8Literal() over NewFromUtf8() for string literals (#44412)

* perf: prefer NewFromUtf8Literal() over NewFromUtf8() for string literals

the string length is known at compile time and no need to call ToLocalChecked()

* perf: string length is known when calling NewFromUtf8(), so use it

* perf: remove unnecessary calls to c_str()

these just force the code being called to have to recalculate the string length
This commit is contained in:
Charles Kerr 2024-10-28 08:12:32 -05:00 committed by GitHub
parent 348801b20e
commit 5d0d15a0b3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 22 additions and 24 deletions

View file

@ -18,8 +18,7 @@ class Archive : public node::ObjectWrap {
static v8::Local<v8::FunctionTemplate> CreateFunctionTemplate(
v8::Isolate* isolate) {
auto tpl = v8::FunctionTemplate::New(isolate, Archive::New);
tpl->SetClassName(
v8::String::NewFromUtf8(isolate, "Archive").ToLocalChecked());
tpl->SetClassName(v8::String::NewFromUtf8Literal(isolate, "Archive"));
tpl->InstanceTemplate()->SetInternalFieldCount(1);
NODE_SET_PROTOTYPE_METHOD(tpl, "getFileInfo", &Archive::GetFileInfo);