Index: src/api.cc |
diff --git a/src/api.cc b/src/api.cc |
index f1d81ddd5fefa38f3704d11a6c1c7478f97e46c5..6acf0e84072be81279dbe9cc0d46a8fd901fb32d 100644 |
--- a/src/api.cc |
+++ b/src/api.cc |
@@ -5483,21 +5483,15 @@ Local<String> v8::String::Concat(Handle<String> left, Handle<String> right) { |
} |
-static i::Handle<i::String> NewExternalStringHandle( |
- i::Isolate* isolate, |
- v8::String::ExternalStringResource* resource) { |
- // We do not expect this to fail. Change this if it does. |
- return isolate->factory()->NewExternalStringFromTwoByte( |
- resource).ToHandleChecked(); |
+static i::MaybeHandle<i::String> NewExternalStringHandle( |
+ i::Isolate* isolate, v8::String::ExternalStringResource* resource) { |
+ return isolate->factory()->NewExternalStringFromTwoByte(resource); |
} |
-static i::Handle<i::String> NewExternalOneByteStringHandle( |
+static i::MaybeHandle<i::String> NewExternalOneByteStringHandle( |
i::Isolate* isolate, v8::String::ExternalOneByteStringResource* resource) { |
- // We do not expect this to fail. Change this if it does. |
- return isolate->factory() |
- ->NewExternalStringFromOneByte(resource) |
- .ToHandleChecked(); |
+ return isolate->factory()->NewExternalStringFromOneByte(resource); |
} |
@@ -5508,9 +5502,12 @@ Local<String> v8::String::NewExternal( |
LOG_API(i_isolate, "String::NewExternal"); |
ENTER_V8(i_isolate); |
CHECK(resource && resource->data()); |
- i::Handle<i::String> result = NewExternalStringHandle(i_isolate, resource); |
- i_isolate->heap()->external_string_table()->AddString(*result); |
- return Utils::ToLocal(result); |
+ i::MaybeHandle<i::String> maybe_string = |
+ NewExternalStringHandle(i_isolate, resource); |
+ i::Handle<i::String> string; |
+ if (maybe_string.ToHandle(&string)) |
Yang
2014/09/26 09:29:59
At this point we have a pending exception. It need
|
+ i_isolate->heap()->external_string_table()->AddString(*string); |
+ return Utils::ToLocal(string); |
} |
@@ -5546,10 +5543,12 @@ Local<String> v8::String::NewExternal( |
LOG_API(i_isolate, "String::NewExternal"); |
ENTER_V8(i_isolate); |
CHECK(resource && resource->data()); |
- i::Handle<i::String> result = |
+ i::MaybeHandle<i::String> maybe_string = |
NewExternalOneByteStringHandle(i_isolate, resource); |
- i_isolate->heap()->external_string_table()->AddString(*result); |
- return Utils::ToLocal(result); |
+ i::Handle<i::String> string; |
+ if (maybe_string.ToHandle(&string)) |
+ i_isolate->heap()->external_string_table()->AddString(*string); |
+ return Utils::ToLocal(string); |
Yang
2014/09/26 09:29:59
Ditto.
|
} |