Index: src/Utils.h
===================================================================
--- a/src/Utils.h
+++ b/src/Utils.h
@@ -37,32 +37,36 @@
 
     /*
      * Check for exception and then that a MaybeLocal<> isn't empty,
      * and throw a JsError if it is, otherwise return the Local<>
      * Call using the macro %CHECKED_MAYBE to get the location.
      */
     template<class T>
     v8::Local<T> CheckedToLocal(v8::Isolate* isolate,
-      v8::MaybeLocal<T>&& value, const v8::TryCatch& tryCatch,
+      v8::MaybeLocal<T>&& value, const v8::TryCatch* tryCatch,
       const char* filename, int line)
     {
-      CheckTryCatch(isolate, tryCatch);
+      if (tryCatch)
+        CheckTryCatch(isolate, *tryCatch);
       if (value.IsEmpty())
         throw AdblockPlus::JsError("Empty value at ", filename, line);
       return value.ToLocalChecked();
     }
 
-#define CHECKED_TO_LOCAL(isolate, value, tryCatch)                      \
-    AdblockPlus::Utils::CheckedToLocal(isolate, value, tryCatch, __FILE__, __LINE__)
+#define CHECKED_TO_LOCAL_WITH_TRY_CATCH(isolate, value, tryCatch) \
+    AdblockPlus::Utils::CheckedToLocal((isolate), (value), &(tryCatch), __FILE__, __LINE__)
+
+#define CHECKED_TO_LOCAL(isolate, value) \
+    AdblockPlus::Utils::CheckedToLocal((isolate), (value), nullptr, __FILE__, __LINE__)
 
     std::string FromV8String(v8::Isolate* isolate, const v8::Local<v8::Value>& value);
     StringBuffer StringBufferFromV8String(v8::Isolate* isolate, const v8::Local<v8::Value>& value);
-    v8::Local<v8::String> ToV8String(v8::Isolate* isolate, const std::string& str);
-    v8::Local<v8::String> StringBufferToV8String(v8::Isolate* isolate, const StringBuffer& bytes);
+    v8::MaybeLocal<v8::String> ToV8String(v8::Isolate* isolate, const std::string& str);
+    v8::MaybeLocal<v8::String> StringBufferToV8String(v8::Isolate* isolate, const StringBuffer& bytes);
     void ThrowExceptionInJS(v8::Isolate* isolate, const std::string& str);
 
     // Code for templated function has to be in a header file, can't be in .cpp
     template<class T>
     T TrimString(const T& text)
     {
       // Via http://stackoverflow.com/questions/216823/whats-the-best-way-to-trim-stdstring
       T trimmed(text);
