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

Unified Diff: src/Utils.cpp

Issue 29812649: Issue 6526 - *ToV8String() return MaybeLocal<> and check Call() return value (Closed) Base URL: https://hg.adblockplus.org/libadblockplus/
Patch Set: Introduce CHECKED_TO_LOCAL_NOTHROW and use it. Created June 22, 2018, 3:49 p.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
« src/Utils.h ('K') | « src/Utils.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/Utils.cpp
===================================================================
--- a/src/Utils.cpp
+++ b/src/Utils.cpp
@@ -45,32 +45,39 @@
{
v8::String::Utf8Value stringValue(isolate, value);
if (stringValue.length())
return IFileSystem::IOBuffer(*stringValue, *stringValue + stringValue.length());
else
return IFileSystem::IOBuffer();
}
-v8::Local<v8::String> Utils::ToV8String(v8::Isolate* isolate, const std::string& str)
+v8::MaybeLocal<v8::String> Utils::ToV8String(v8::Isolate* isolate, const std::string& str)
{
return v8::String::NewFromUtf8(isolate, str.c_str(),
- v8::String::NewStringType::kNormalString, str.length());
+ v8::NewStringType::kNormal, str.length());
}
-v8::Local<v8::String> Utils::StringBufferToV8String(v8::Isolate* isolate, const StringBuffer& str)
+v8::MaybeLocal<v8::String> Utils::StringBufferToV8String(v8::Isolate* isolate, const StringBuffer& str)
{
return v8::String::NewFromUtf8(isolate,
reinterpret_cast<const char*>(str.data()),
- v8::String::NewStringType::kNormalString, str.size());
+ v8::NewStringType::kNormal, str.size());
}
void Utils::ThrowExceptionInJS(v8::Isolate* isolate, const std::string& str)
{
- isolate->ThrowException(Utils::ToV8String(isolate, str));
+ auto maybe = Utils::ToV8String(isolate, str);
+ if (maybe.IsEmpty())
+ {
+ isolate->ThrowException(
+ Utils::ToV8String(isolate, "Unknown Exception").ToLocalChecked());
+ }
+ else
+ isolate->ThrowException(maybe.ToLocalChecked());
}
#ifdef _WIN32
std::wstring Utils::ToUtf16String(const std::string& str)
{
size_t length = str.size();
if (length == 0)
return std::wstring();
« src/Utils.h ('K') | « src/Utils.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld