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__) |
sergei
2018/08/06 12:18:30
I wonder whether we should use all macro arguments
hub
2018/08/06 13:25:48
I'll do that. It is safer.
|
+ |
+#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); |