-
Notifications
You must be signed in to change notification settings - Fork 29.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
src: remove calls to deprecated v8 functions (NewFromUtf8) #21926
Changes from 9 commits
b729e20
7bf4efe
c2f5a1b
025bffb
76f5004
1264ad8
d4a87e0
c7caef8
5b6232e
560e336
5a0ef1d
f4bc20b
1ab48ad
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -965,7 +965,8 @@ void AppendExceptionLine(Environment* env, | |
arrow[off] = '\n'; | ||
arrow[off + 1] = '\0'; | ||
|
||
Local<String> arrow_str = String::NewFromUtf8(env->isolate(), arrow); | ||
Local<String> arrow_str = String::NewFromUtf8(env->isolate(), arrow, | ||
v8::NewStringType::kNormal).ToLocalChecked(); | ||
|
||
const bool can_set_arrow = !arrow_str.IsEmpty() && !err_obj.IsEmpty(); | ||
// If allocating arrow_str failed, print it out. There's not much else to do. | ||
|
@@ -1742,7 +1743,8 @@ static void GetLinkedBinding(const FunctionCallbackInfo<Value>& args) { | |
|
||
Local<Object> module = Object::New(env->isolate()); | ||
Local<Object> exports = Object::New(env->isolate()); | ||
Local<String> exports_prop = String::NewFromUtf8(env->isolate(), "exports"); | ||
Local<String> exports_prop = String::NewFromUtf8(env->isolate(), "exports", | ||
v8::NewStringType::kNormal).ToLocalChecked(); | ||
module->Set(exports_prop, exports); | ||
|
||
if (mod->nm_context_register_func != nullptr) { | ||
|
@@ -1765,7 +1767,8 @@ static void ProcessTitleGetter(Local<Name> property, | |
const PropertyCallbackInfo<Value>& info) { | ||
char buffer[512]; | ||
uv_get_process_title(buffer, sizeof(buffer)); | ||
info.GetReturnValue().Set(String::NewFromUtf8(info.GetIsolate(), buffer)); | ||
info.GetReturnValue().Set(String::NewFromUtf8(info.GetIsolate(), buffer, | ||
v8::NewStringType::kNormal).ToLocalChecked()); | ||
} | ||
|
||
|
||
|
@@ -1790,7 +1793,8 @@ static void EnvGetter(Local<Name> property, | |
node::Utf8Value key(isolate, property); | ||
const char* val = getenv(*key); | ||
if (val) { | ||
return info.GetReturnValue().Set(String::NewFromUtf8(isolate, val)); | ||
return info.GetReturnValue().Set(String::NewFromUtf8(isolate, val, | ||
v8::NewStringType::kNormal).ToLocalChecked()); | ||
} | ||
#else // _WIN32 | ||
node::TwoByteValue key(isolate, property); | ||
|
@@ -1918,8 +1922,8 @@ static void EnvEnumerator(const PropertyCallbackInfo<Array>& info) { | |
const int length = s ? s - var : strlen(var); | ||
argv[idx] = String::NewFromUtf8(isolate, | ||
var, | ||
String::kNormalString, | ||
length); | ||
v8::NewStringType::kNormal, | ||
length).ToLocalChecked(); | ||
if (++idx >= arraysize(argv)) { | ||
fn->Call(ctx, envarr, idx, argv).ToLocalChecked(); | ||
idx = 0; | ||
|
@@ -2196,14 +2200,16 @@ void SetupProcessObject(Environment* env, | |
// process.argv | ||
Local<Array> arguments = Array::New(env->isolate(), argc); | ||
for (int i = 0; i < argc; ++i) { | ||
arguments->Set(i, String::NewFromUtf8(env->isolate(), argv[i])); | ||
arguments->Set(i, String::NewFromUtf8(env->isolate(), argv[i], | ||
v8::NewStringType::kNormal).ToLocalChecked()); | ||
} | ||
process->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "argv"), arguments); | ||
|
||
// process.execArgv | ||
Local<Array> exec_arguments = Array::New(env->isolate(), exec_argc); | ||
for (int i = 0; i < exec_argc; ++i) { | ||
exec_arguments->Set(i, String::NewFromUtf8(env->isolate(), exec_argv[i])); | ||
exec_arguments->Set(i, String::NewFromUtf8(env->isolate(), exec_argv[i], | ||
v8::NewStringType::kNormal).ToLocalChecked()); | ||
} | ||
process->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "execArgv"), | ||
exec_arguments); | ||
|
@@ -2235,7 +2241,8 @@ void SetupProcessObject(Environment* env, | |
if (eval_string) { | ||
READONLY_PROPERTY(process, | ||
"_eval", | ||
String::NewFromUtf8(env->isolate(), eval_string)); | ||
String::NewFromUtf8(env->isolate(), eval_string, | ||
v8::NewStringType::kNormal).ToLocalChecked()); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Also |
||
} | ||
|
||
// -p, --print | ||
|
@@ -2258,7 +2265,9 @@ void SetupProcessObject(Environment* env, | |
Local<Array> array = Array::New(env->isolate()); | ||
for (unsigned int i = 0; i < preload_modules.size(); ++i) { | ||
Local<String> module = String::NewFromUtf8(env->isolate(), | ||
preload_modules[i].c_str()); | ||
preload_modules[i].c_str(), | ||
v8::NewStringType::kNormal) | ||
.ToLocalChecked(); | ||
array->Set(i, module); | ||
} | ||
READONLY_PROPERTY(process, | ||
|
@@ -2343,10 +2352,11 @@ void SetupProcessObject(Environment* env, | |
if (uv_exepath(exec_path, &exec_path_len) == 0) { | ||
exec_path_value = String::NewFromUtf8(env->isolate(), | ||
exec_path, | ||
String::kNormalString, | ||
exec_path_len); | ||
v8::NewStringType::kNormal, | ||
exec_path_len).ToLocalChecked(); | ||
} else { | ||
exec_path_value = String::NewFromUtf8(env->isolate(), argv[0]); | ||
exec_path_value = String::NewFromUtf8(env->isolate(), argv[0], | ||
v8::NewStringType::kNormal).ToLocalChecked(); | ||
} | ||
process->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "execPath"), | ||
exec_path_value); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Since we expect |
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -303,7 +303,8 @@ NODE_EXTERN struct uv_loop_s* GetCurrentEventLoop(v8::Isolate* isolate); | |
v8::Isolate* isolate = target->GetIsolate(); \ | ||
v8::Local<v8::Context> context = isolate->GetCurrentContext(); \ | ||
v8::Local<v8::String> constant_name = \ | ||
v8::String::NewFromUtf8(isolate, #constant); \ | ||
v8::String::NewFromUtf8(isolate, #constant, \ | ||
v8::NewStringType::kNormal).ToLocalChecked(); \ | ||
v8::Local<v8::Number> constant_value = \ | ||
v8::Number::New(isolate, static_cast<double>(constant)); \ | ||
v8::PropertyAttribute constant_attributes = \ | ||
|
@@ -344,7 +345,8 @@ inline void NODE_SET_METHOD(v8::Local<v8::Template> recv, | |
v8::HandleScope handle_scope(isolate); | ||
v8::Local<v8::FunctionTemplate> t = v8::FunctionTemplate::New(isolate, | ||
callback); | ||
v8::Local<v8::String> fn_name = v8::String::NewFromUtf8(isolate, name); | ||
v8::Local<v8::String> fn_name = v8::String::NewFromUtf8(isolate, name, | ||
v8::NewStringType::kNormal).ToLocalChecked(); | ||
t->SetClassName(fn_name); | ||
recv->Set(fn_name, t); | ||
} | ||
|
@@ -358,7 +360,8 @@ inline void NODE_SET_METHOD(v8::Local<v8::Object> recv, | |
v8::Local<v8::FunctionTemplate> t = v8::FunctionTemplate::New(isolate, | ||
callback); | ||
v8::Local<v8::Function> fn = t->GetFunction(); | ||
v8::Local<v8::String> fn_name = v8::String::NewFromUtf8(isolate, name); | ||
v8::Local<v8::String> fn_name = v8::String::NewFromUtf8(isolate, name, | ||
v8::NewStringType::kNormal).ToLocalChecked(); | ||
fn->SetName(fn_name); | ||
recv->Set(fn_name, fn); | ||
} | ||
|
@@ -374,7 +377,8 @@ inline void NODE_SET_PROTOTYPE_METHOD(v8::Local<v8::FunctionTemplate> recv, | |
v8::Local<v8::Signature> s = v8::Signature::New(isolate, recv); | ||
v8::Local<v8::FunctionTemplate> t = | ||
v8::FunctionTemplate::New(isolate, callback, v8::Local<v8::Value>(), s); | ||
v8::Local<v8::String> fn_name = v8::String::NewFromUtf8(isolate, name); | ||
v8::Local<v8::String> fn_name = v8::String::NewFromUtf8(isolate, name, | ||
v8::NewStringType::kNormal).ToLocalChecked(); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think for everything in this header, |
||
t->SetClassName(fn_name); | ||
recv->PrototypeTemplate()->Set(fn_name, t); | ||
} | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -261,7 +261,8 @@ static void GetInterfaceAddresses(const FunctionCallbackInfo<Value>& args) { | |
// contain non-ASCII characters. On UNIX, it's just a binary string with | ||
// no particular encoding but we treat it as a one-byte Latin-1 string. | ||
#ifdef _WIN32 | ||
name = String::NewFromUtf8(env->isolate(), raw_name); | ||
name = String::NewFromUtf8(env->isolate(), raw_name, | ||
v8::NewStringType::kNormal).ToLocalChecked(); | ||
#else | ||
name = OneByteString(env->isolate(), raw_name); | ||
#endif | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Side note: While it may be true that UNIX systems are somewhat encoding-agnostic here, it’s more than reasonable to assume UTF8 as the default as well. It’s what people will expect if they name the interface from any input that uses UTF-8, which should be the most frequent case by far these days. I’d suggest either merging these directly in this PR, since you’re already touching the code, or leaving a TODO comment about it. |
||
|
@@ -335,8 +336,8 @@ static void GetHomeDirectory(const FunctionCallbackInfo<Value>& args) { | |
|
||
Local<String> home = String::NewFromUtf8(env->isolate(), | ||
buf, | ||
String::kNormalString, | ||
len); | ||
v8::NewStringType::kNormal, | ||
len).ToLocalChecked(); | ||
args.GetReturnValue().Set(home); | ||
} | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -75,14 +75,18 @@ inline void InitObject(const PerformanceEntry& entry, Local<Object> obj) { | |
env->name_string(), | ||
String::NewFromUtf8(isolate, | ||
entry.name().c_str(), | ||
String::kNormalString), | ||
attr).FromJust(); | ||
v8::NewStringType::kNormal) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
.ToLocalChecked(), | ||
attr) | ||
.FromJust(); | ||
obj->DefineOwnProperty(context, | ||
FIXED_ONE_BYTE_STRING(isolate, "entryType"), | ||
String::NewFromUtf8(isolate, | ||
entry.type().c_str(), | ||
String::kNormalString), | ||
attr).FromJust(); | ||
v8::NewStringType::kNormal) | ||
.ToLocalChecked(), | ||
attr) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. and here |
||
.FromJust(); | ||
obj->DefineOwnProperty(context, | ||
FIXED_ONE_BYTE_STRING(isolate, "startTime"), | ||
Number::New(isolate, entry.startTime()), | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -683,7 +683,9 @@ Local<Object> SyncProcessRunner::BuildResultObject() { | |
if (term_signal_ > 0) | ||
js_result->Set(context, env()->signal_string(), | ||
String::NewFromUtf8(env()->isolate(), | ||
signo_string(term_signal_))).FromJust(); | ||
signo_string(term_signal_), v8::NewStringType::kNormal) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Does this hit the 80 char limit? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It does, dunno how autoformatting left this one out. Will do. |
||
.ToLocalChecked()) | ||
.FromJust(); | ||
else | ||
js_result->Set(context, env()->signal_string(), | ||
Null(env()->isolate())).FromJust(); | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You could argue that this should be
kInternalized
.