src: pass along MaybeLocal<> state from URL::ToObject()

PR-URL: https://github.com/nodejs/node/pull/25141
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Gus Caplan <me@gus.host>
This commit is contained in:
Anna Henningsen 2018-12-19 23:11:35 +01:00
parent a84e0ec0dd
commit 0043c6f548
No known key found for this signature in database
GPG Key ID: 9C63F3A6CD2AD8F9
3 changed files with 6 additions and 8 deletions

View File

@ -708,7 +708,9 @@ void ModuleWrap::Resolve(const FunctionCallbackInfo<Value>& args) {
return node::THROW_ERR_MISSING_MODULE(env, msg.c_str());
}
args.GetReturnValue().Set(result.FromJust().ToObject(env));
MaybeLocal<Value> obj = result.FromJust().ToObject(env);
if (!obj.IsEmpty())
args.GetReturnValue().Set(obj.ToLocalChecked());
}
static MaybeLocal<Promise> ImportModuleDynamically(

View File

@ -2381,7 +2381,7 @@ URL URL::FromFilePath(const std::string& file_path) {
// This function works by calling out to a JS function that creates and
// returns the JS URL object. Be mindful of the JS<->Native boundary
// crossing that is required.
const Local<Value> URL::ToObject(Environment* env) const {
MaybeLocal<Value> URL::ToObject(Environment* env) const {
Isolate* isolate = env->isolate();
Local<Context> context = env->context();
Context::Scope context_scope(context);
@ -2417,7 +2417,7 @@ const Local<Value> URL::ToObject(Environment* env) const {
->Call(env->context(), undef, arraysize(argv), argv);
}
return ret.ToLocalChecked();
return ret;
}
static void SetURLConstructor(const FunctionCallbackInfo<Value>& args) {

View File

@ -11,10 +11,6 @@
namespace node {
namespace url {
using v8::Local;
using v8::Value;
#define PARSESTATES(XX) \
XX(kSchemeStart) \
XX(kScheme) \
@ -171,7 +167,7 @@ class URL {
// Get the file URL from native file system path.
static URL FromFilePath(const std::string& file_path);
const Local<Value> ToObject(Environment* env) const;
v8::MaybeLocal<v8::Value> ToObject(Environment* env) const;
URL(const URL&) = default;
URL& operator=(const URL&) = default;