| Index: src/JsEngine.cpp | 
| =================================================================== | 
| --- a/src/JsEngine.cpp | 
| +++ b/src/JsEngine.cpp | 
| @@ -24,21 +24,26 @@ | 
| #include <AdblockPlus/Platform.h> | 
|  | 
| namespace | 
| { | 
| v8::MaybeLocal<v8::Script> CompileScript(v8::Isolate* isolate, | 
| const std::string& source, const std::string& filename) | 
| { | 
| using AdblockPlus::Utils::ToV8String; | 
| -    const v8::Local<v8::String> v8Source = ToV8String(isolate, source); | 
| +    auto maybeV8Source = ToV8String(isolate, source); | 
| +    if (maybeV8Source.IsEmpty()) | 
| +      return v8::MaybeLocal<v8::Script>(); | 
| +    const v8::Local<v8::String> v8Source = maybeV8Source.ToLocalChecked(); | 
| if (filename.length()) | 
| { | 
| -      const v8::Local<v8::String> v8Filename = ToV8String(isolate, filename); | 
| -      v8::ScriptOrigin scriptOrigin(v8Filename); | 
| +      auto maybeV8Filename = ToV8String(isolate, filename); | 
| +      if (maybeV8Filename.IsEmpty()) | 
| +        return v8::MaybeLocal<v8::Script>(); | 
| +      v8::ScriptOrigin scriptOrigin(maybeV8Filename.ToLocalChecked()); | 
| return v8::Script::Compile(isolate->GetCurrentContext(), v8Source, &scriptOrigin); | 
| } | 
| else | 
| return v8::Script::Compile(isolate->GetCurrentContext(), v8Source); | 
| } | 
|  | 
| class V8Initializer | 
| { | 
| @@ -181,19 +186,19 @@ | 
| } | 
|  | 
| AdblockPlus::JsValue AdblockPlus::JsEngine::Evaluate(const std::string& source, | 
| const std::string& filename) | 
| { | 
| const JsContext context(*this); | 
| auto isolate = GetIsolate(); | 
| const v8::TryCatch tryCatch(isolate); | 
| -  auto script = CHECKED_TO_LOCAL( | 
| +  auto script = CHECKED_TO_LOCAL_WITH_TRY_CATCH( | 
| isolate, CompileScript(isolate, source, filename), tryCatch); | 
| -  auto result = CHECKED_TO_LOCAL( | 
| +  auto result = CHECKED_TO_LOCAL_WITH_TRY_CATCH( | 
| isolate, script->Run(isolate->GetCurrentContext()), tryCatch); | 
| return JsValue(shared_from_this(), result); | 
| } | 
|  | 
| void AdblockPlus::JsEngine::SetEventCallback(const std::string& eventName, | 
| const AdblockPlus::JsEngine::EventCallback& callback) | 
| { | 
| if (!callback) | 
| @@ -227,17 +232,19 @@ | 
| void AdblockPlus::JsEngine::Gc() | 
| { | 
| while (!GetIsolate()->IdleNotificationDeadline(1000)); | 
| } | 
|  | 
| AdblockPlus::JsValue AdblockPlus::JsEngine::NewValue(const std::string& val) | 
| { | 
| const JsContext context(*this); | 
| -  return JsValue(shared_from_this(), Utils::ToV8String(GetIsolate(), val)); | 
| +  auto isolate = GetIsolate(); | 
| +  return JsValue(shared_from_this(), | 
| +    CHECKED_TO_LOCAL(isolate, Utils::ToV8String(isolate, val))); | 
| } | 
|  | 
| AdblockPlus::JsValue AdblockPlus::JsEngine::NewValue(int64_t val) | 
| { | 
| const JsContext context(*this); | 
| return JsValue(shared_from_this(), v8::Number::New(GetIsolate(), val)); | 
| } | 
|  | 
|  |