src: use non-deprecated versions of ->To*()
utils
Squashed from multiple commits: - src: replace ->To*(isolate) with ->To*(context).ToLocalChecked() - test: use .As<Object> on Exception::Error > Exception::Error always returns an object, so e.As<Object>() should also work fine See https://github.com/nodejs/node/pull/17343#discussion_r153232027 - test: use .As<Object> instead of ->ToObject we already checked that its a buffer - src: use FromMaybe instead of ToLocalChecked It fixed this test case: 19a1b2e414 - src: pass context to Get() Dont pass Local<Context> is deprecated soon. So we migrate to maybe version. - src: return if Get or ToObject return an empty before call ToLocalChecked Refs: https://github.com/nodejs/node/issues/17244 PR-URL: https://github.com/nodejs/node/pull/17343 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Yuta Hiroto <hello@about-hiroppy.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
This commit is contained in:
parent
e9e9863ca7
commit
19221d1d6f
27
src/node.cc
27
src/node.cc
@ -589,7 +589,7 @@ Local<Value> ErrnoException(Isolate* isolate,
|
|||||||
}
|
}
|
||||||
e = Exception::Error(cons);
|
e = Exception::Error(cons);
|
||||||
|
|
||||||
Local<Object> obj = e->ToObject(env->isolate());
|
Local<Object> obj = e.As<Object>();
|
||||||
obj->Set(env->errno_string(), Integer::New(env->isolate(), errorno));
|
obj->Set(env->errno_string(), Integer::New(env->isolate(), errorno));
|
||||||
obj->Set(env->code_string(), estring);
|
obj->Set(env->code_string(), estring);
|
||||||
|
|
||||||
@ -751,7 +751,7 @@ Local<Value> WinapiErrnoException(Isolate* isolate,
|
|||||||
e = Exception::Error(message);
|
e = Exception::Error(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
Local<Object> obj = e->ToObject(env->isolate());
|
Local<Object> obj = e.As<Object>();
|
||||||
obj->Set(env->errno_string(), Integer::New(isolate, errorno));
|
obj->Set(env->errno_string(), Integer::New(isolate, errorno));
|
||||||
|
|
||||||
if (path != nullptr) {
|
if (path != nullptr) {
|
||||||
@ -1428,7 +1428,7 @@ static void ReportException(Environment* env,
|
|||||||
if (er->IsUndefined() || er->IsNull()) {
|
if (er->IsUndefined() || er->IsNull()) {
|
||||||
trace_value = Undefined(env->isolate());
|
trace_value = Undefined(env->isolate());
|
||||||
} else {
|
} else {
|
||||||
Local<Object> err_obj = er->ToObject(env->isolate());
|
Local<Object> err_obj = er->ToObject(env->context()).ToLocalChecked();
|
||||||
|
|
||||||
trace_value = err_obj->Get(env->stack_string());
|
trace_value = err_obj->Get(env->stack_string());
|
||||||
arrow =
|
arrow =
|
||||||
@ -2251,7 +2251,8 @@ static void DLOpen(const FunctionCallbackInfo<Value>& args) {
|
|||||||
return env->ThrowTypeError("flag argument must be an integer.");
|
return env->ThrowTypeError("flag argument must be an integer.");
|
||||||
}
|
}
|
||||||
|
|
||||||
Local<Object> module = args[0]->ToObject(env->isolate()); // Cast
|
Local<Object> module =
|
||||||
|
args[0]->ToObject(env->context()).ToLocalChecked(); // Cast
|
||||||
node::Utf8Value filename(env->isolate(), args[1]); // Cast
|
node::Utf8Value filename(env->isolate(), args[1]); // Cast
|
||||||
DLib dlib;
|
DLib dlib;
|
||||||
dlib.filename_ = *filename;
|
dlib.filename_ = *filename;
|
||||||
@ -2269,7 +2270,8 @@ static void DLOpen(const FunctionCallbackInfo<Value>& args) {
|
|||||||
dlib.Close();
|
dlib.Close();
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
// Windows needs to add the filename into the error message
|
// Windows needs to add the filename into the error message
|
||||||
errmsg = String::Concat(errmsg, args[1]->ToString(env->isolate()));
|
errmsg = String::Concat(errmsg,
|
||||||
|
args[1]->ToString(env->context()).ToLocalChecked());
|
||||||
#endif // _WIN32
|
#endif // _WIN32
|
||||||
env->isolate()->ThrowException(Exception::Error(errmsg));
|
env->isolate()->ThrowException(Exception::Error(errmsg));
|
||||||
return;
|
return;
|
||||||
@ -2314,7 +2316,18 @@ static void DLOpen(const FunctionCallbackInfo<Value>& args) {
|
|||||||
modlist_addon = mp;
|
modlist_addon = mp;
|
||||||
|
|
||||||
Local<String> exports_string = env->exports_string();
|
Local<String> exports_string = env->exports_string();
|
||||||
Local<Object> exports = module->Get(exports_string)->ToObject(env->isolate());
|
MaybeLocal<Value> maybe_exports =
|
||||||
|
module->Get(env->context(), exports_string);
|
||||||
|
|
||||||
|
if (maybe_exports.IsEmpty() ||
|
||||||
|
maybe_exports.ToLocalChecked()->ToObject(env->context()).IsEmpty()) {
|
||||||
|
dlib.Close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Local<Object> exports =
|
||||||
|
maybe_exports.ToLocalChecked()->ToObject(env->context())
|
||||||
|
.FromMaybe(Local<Object>());
|
||||||
|
|
||||||
if (mp->nm_context_register_func != nullptr) {
|
if (mp->nm_context_register_func != nullptr) {
|
||||||
mp->nm_context_register_func(exports, module, env->context(), mp->nm_priv);
|
mp->nm_context_register_func(exports, module, env->context(), mp->nm_priv);
|
||||||
@ -4281,7 +4294,7 @@ void EmitBeforeExit(Environment* env) {
|
|||||||
Local<String> exit_code = FIXED_ONE_BYTE_STRING(env->isolate(), "exitCode");
|
Local<String> exit_code = FIXED_ONE_BYTE_STRING(env->isolate(), "exitCode");
|
||||||
Local<Value> args[] = {
|
Local<Value> args[] = {
|
||||||
FIXED_ONE_BYTE_STRING(env->isolate(), "beforeExit"),
|
FIXED_ONE_BYTE_STRING(env->isolate(), "beforeExit"),
|
||||||
process_object->Get(exit_code)->ToInteger(env->isolate())
|
process_object->Get(exit_code)->ToInteger(env->context()).ToLocalChecked()
|
||||||
};
|
};
|
||||||
MakeCallback(env->isolate(),
|
MakeCallback(env->isolate(),
|
||||||
process_object, "emit", arraysize(args), args,
|
process_object, "emit", arraysize(args), args,
|
||||||
|
@ -606,7 +606,7 @@ void Fill(const FunctionCallbackInfo<Value>& args) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
str_obj = args[1]->ToString(env->isolate());
|
str_obj = args[1]->ToString(env->context()).ToLocalChecked();
|
||||||
enc = ParseEncoding(env->isolate(), args[4], UTF8);
|
enc = ParseEncoding(env->isolate(), args[4], UTF8);
|
||||||
str_length =
|
str_length =
|
||||||
enc == UTF8 ? str_obj->Utf8Length() :
|
enc == UTF8 ? str_obj->Utf8Length() :
|
||||||
@ -677,7 +677,7 @@ void StringWrite(const FunctionCallbackInfo<Value>& args) {
|
|||||||
if (!args[0]->IsString())
|
if (!args[0]->IsString())
|
||||||
return env->ThrowTypeError("Argument must be a string");
|
return env->ThrowTypeError("Argument must be a string");
|
||||||
|
|
||||||
Local<String> str = args[0]->ToString(env->isolate());
|
Local<String> str = args[0]->ToString(env->context()).ToLocalChecked();
|
||||||
|
|
||||||
size_t offset;
|
size_t offset;
|
||||||
size_t max_length;
|
size_t max_length;
|
||||||
|
@ -621,7 +621,8 @@ class ContextifyScript : public BaseObject {
|
|||||||
new ContextifyScript(env, args.This());
|
new ContextifyScript(env, args.This());
|
||||||
|
|
||||||
TryCatch try_catch(env->isolate());
|
TryCatch try_catch(env->isolate());
|
||||||
Local<String> code = args[0]->ToString(env->isolate());
|
Local<String> code =
|
||||||
|
args[0]->ToString(env->context()).FromMaybe(Local<String>());
|
||||||
|
|
||||||
Local<Value> options = args[1];
|
Local<Value> options = args[1];
|
||||||
MaybeLocal<String> filename = GetFilenameArg(env, options);
|
MaybeLocal<String> filename = GetFilenameArg(env, options);
|
||||||
|
@ -1219,7 +1219,7 @@ static void Read(const FunctionCallbackInfo<Value>& args) {
|
|||||||
|
|
||||||
char * buf = nullptr;
|
char * buf = nullptr;
|
||||||
|
|
||||||
Local<Object> buffer_obj = args[1]->ToObject(env->isolate());
|
Local<Object> buffer_obj = args[1].As<Object>();
|
||||||
char *buffer_data = Buffer::Data(buffer_obj);
|
char *buffer_data = Buffer::Data(buffer_obj);
|
||||||
size_t buffer_length = Buffer::Length(buffer_obj);
|
size_t buffer_length = Buffer::Length(buffer_obj);
|
||||||
|
|
||||||
|
@ -466,7 +466,7 @@ class Parser : public AsyncWrap {
|
|||||||
enum http_errno err = HTTP_PARSER_ERRNO(&parser->parser_);
|
enum http_errno err = HTTP_PARSER_ERRNO(&parser->parser_);
|
||||||
|
|
||||||
Local<Value> e = Exception::Error(env->parse_error_string());
|
Local<Value> e = Exception::Error(env->parse_error_string());
|
||||||
Local<Object> obj = e->ToObject(env->isolate());
|
Local<Object> obj = e.As<Object>();
|
||||||
obj->Set(env->bytes_parsed_string(), Integer::New(env->isolate(), 0));
|
obj->Set(env->bytes_parsed_string(), Integer::New(env->isolate(), 0));
|
||||||
obj->Set(env->code_string(),
|
obj->Set(env->code_string(),
|
||||||
OneByteString(env->isolate(), http_errno_name(err)));
|
OneByteString(env->isolate(), http_errno_name(err)));
|
||||||
|
@ -178,7 +178,7 @@ class ZCtx : public AsyncWrap {
|
|||||||
} else {
|
} else {
|
||||||
CHECK(Buffer::HasInstance(args[1]));
|
CHECK(Buffer::HasInstance(args[1]));
|
||||||
Local<Object> in_buf;
|
Local<Object> in_buf;
|
||||||
in_buf = args[1]->ToObject(env->isolate());
|
in_buf = args[1]->ToObject(env->context()).ToLocalChecked();
|
||||||
in_off = args[2]->Uint32Value();
|
in_off = args[2]->Uint32Value();
|
||||||
in_len = args[3]->Uint32Value();
|
in_len = args[3]->Uint32Value();
|
||||||
|
|
||||||
@ -187,7 +187,7 @@ class ZCtx : public AsyncWrap {
|
|||||||
}
|
}
|
||||||
|
|
||||||
CHECK(Buffer::HasInstance(args[4]));
|
CHECK(Buffer::HasInstance(args[4]));
|
||||||
Local<Object> out_buf = args[4]->ToObject(env->isolate());
|
Local<Object> out_buf = args[4]->ToObject(env->context()).ToLocalChecked();
|
||||||
out_off = args[5]->Uint32Value();
|
out_off = args[5]->Uint32Value();
|
||||||
out_len = args[6]->Uint32Value();
|
out_len = args[6]->Uint32Value();
|
||||||
CHECK(Buffer::IsWithinBounds(out_off, out_len, Buffer::Length(out_buf)));
|
CHECK(Buffer::IsWithinBounds(out_off, out_len, Buffer::Length(out_buf)));
|
||||||
|
@ -143,7 +143,8 @@ class ProcessWrap : public HandleWrap {
|
|||||||
ProcessWrap* wrap;
|
ProcessWrap* wrap;
|
||||||
ASSIGN_OR_RETURN_UNWRAP(&wrap, args.Holder());
|
ASSIGN_OR_RETURN_UNWRAP(&wrap, args.Holder());
|
||||||
|
|
||||||
Local<Object> js_options = args[0]->ToObject(env->isolate());
|
Local<Object> js_options =
|
||||||
|
args[0]->ToObject(env->context()).ToLocalChecked();
|
||||||
|
|
||||||
uv_process_options_t options;
|
uv_process_options_t options;
|
||||||
memset(&options, 0, sizeof(uv_process_options_t));
|
memset(&options, 0, sizeof(uv_process_options_t));
|
||||||
|
@ -127,7 +127,7 @@ int StreamBase::Writev(const FunctionCallbackInfo<Value>& args) {
|
|||||||
// Buffer chunk, no additional storage required
|
// Buffer chunk, no additional storage required
|
||||||
|
|
||||||
// String chunk
|
// String chunk
|
||||||
Local<String> string = chunk->ToString(env->isolate());
|
Local<String> string = chunk->ToString(env->context()).ToLocalChecked();
|
||||||
enum encoding encoding = ParseEncoding(env->isolate(),
|
enum encoding encoding = ParseEncoding(env->isolate(),
|
||||||
chunks->Get(i * 2 + 1));
|
chunks->Get(i * 2 + 1));
|
||||||
size_t chunk_size;
|
size_t chunk_size;
|
||||||
@ -179,7 +179,7 @@ int StreamBase::Writev(const FunctionCallbackInfo<Value>& args) {
|
|||||||
char* str_storage = req_wrap->Extra(offset);
|
char* str_storage = req_wrap->Extra(offset);
|
||||||
size_t str_size = storage_size - offset;
|
size_t str_size = storage_size - offset;
|
||||||
|
|
||||||
Local<String> string = chunk->ToString(env->isolate());
|
Local<String> string = chunk->ToString(env->context()).ToLocalChecked();
|
||||||
enum encoding encoding = ParseEncoding(env->isolate(),
|
enum encoding encoding = ParseEncoding(env->isolate(),
|
||||||
chunks->Get(i * 2 + 1));
|
chunks->Get(i * 2 + 1));
|
||||||
str_size = StringBytes::Write(env->isolate(),
|
str_size = StringBytes::Write(env->isolate(),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user