| 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(); |