Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: src/Utils.h

Issue 29812649: Issue 6526 - *ToV8String() return MaybeLocal<> and check Call() return value (Closed) Base URL: https://hg.adblockplus.org/libadblockplus/
Patch Set: Added tests. Renamed CHECKED_TO_LOCAL. Created July 11, 2018, 2:10 a.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/JsValue.cpp ('k') | src/Utils.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « src/JsValue.cpp ('k') | src/Utils.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld