Fix v8 ToLocalChecked() failure in CJS_Runtime.
BUG=chromium:894938
Change-Id: I3d1ca33eec4cd2b01bfa4dfce7da3642dd5ad31b
Reviewed-on: https://pdfium-review.googlesource.com/c/43983
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/fxjs/cjs_runtime.cpp b/fxjs/cjs_runtime.cpp
index 7d3808a..539594c 100644
--- a/fxjs/cjs_runtime.cpp
+++ b/fxjs/cjs_runtime.cpp
@@ -201,8 +201,13 @@
v8::String::NewFromUtf8(GetIsolate(), utf8Name.unterminated_c_str(),
v8::NewStringType::kNormal, utf8Name.GetLength())
.ToLocalChecked();
- v8::Local<v8::Value> propvalue =
- context->Global()->Get(context, str).ToLocalChecked();
+ v8::MaybeLocal<v8::Value> maybe_propvalue =
+ context->Global()->Get(context, str);
+ if (maybe_propvalue.IsEmpty()) {
+ pValue->SetUndefined();
+ return false;
+ }
+ v8::Local<v8::Value> propvalue = maybe_propvalue.ToLocalChecked();
if (propvalue.IsEmpty()) {
pValue->SetUndefined();
return false;