From 56e0c3ebe017135dcbd046bd6bc8c9ca54518597 Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Sat, 13 Oct 2018 06:38:29 +0000 Subject: 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 Commit-Queue: Lei Zhang --- fxjs/cjs_runtime.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/fxjs/cjs_runtime.cpp b/fxjs/cjs_runtime.cpp index 7d3808a61d..539594cd90 100644 --- a/fxjs/cjs_runtime.cpp +++ b/fxjs/cjs_runtime.cpp @@ -201,8 +201,13 @@ bool CJS_Runtime::GetValueByNameFromGlobalObject(const ByteStringView& utf8Name, v8::String::NewFromUtf8(GetIsolate(), utf8Name.unterminated_c_str(), v8::NewStringType::kNormal, utf8Name.GetLength()) .ToLocalChecked(); - v8::Local propvalue = - context->Global()->Get(context, str).ToLocalChecked(); + v8::MaybeLocal maybe_propvalue = + context->Global()->Get(context, str); + if (maybe_propvalue.IsEmpty()) { + pValue->SetUndefined(); + return false; + } + v8::Local propvalue = maybe_propvalue.ToLocalChecked(); if (propvalue.IsEmpty()) { pValue->SetUndefined(); return false; -- cgit v1.2.3