Chromium Code Reviews| 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.
|
| } |