Index: src/api.cc |
diff --git a/src/api.cc b/src/api.cc |
index 07b967f2b8cf3bf37e093d1e3724b142d50663ad..1188bda43a976bb4f9b75ddba8fdeb0d96d8b8ff 100644 |
--- a/src/api.cc |
+++ b/src/api.cc |
@@ -6723,11 +6723,15 @@ MaybeLocal<String> v8::String::NewExternalTwoByte( |
i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); |
ENTER_V8_NO_SCRIPT_NO_EXCEPTION(i_isolate); |
LOG_API(i_isolate, String, NewExternalTwoByte); |
- i::Handle<i::String> string = i_isolate->factory() |
- ->NewExternalStringFromTwoByte(resource) |
- .ToHandleChecked(); |
- i_isolate->heap()->RegisterExternalString(*string); |
- return Utils::ToLocal(string); |
+ if (resource->length() > 0) { |
+ i::Handle<i::String> string = i_isolate->factory() |
+ ->NewExternalStringFromTwoByte(resource) |
+ .ToHandleChecked(); |
+ i_isolate->heap()->RegisterExternalString(*string); |
+ return Utils::ToLocal(string); |
+ } else { |
+ return Utils::ToLocal(i_isolate->factory()->empty_string()); |
+ } |
} |
@@ -6747,11 +6751,15 @@ MaybeLocal<String> v8::String::NewExternalOneByte( |
i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); |
ENTER_V8_NO_SCRIPT_NO_EXCEPTION(i_isolate); |
LOG_API(i_isolate, String, NewExternalOneByte); |
- i::Handle<i::String> string = i_isolate->factory() |
- ->NewExternalStringFromOneByte(resource) |
- .ToHandleChecked(); |
- i_isolate->heap()->RegisterExternalString(*string); |
- return Utils::ToLocal(string); |
+ if (resource->length() > 0) { |
+ i::Handle<i::String> string = i_isolate->factory() |
+ ->NewExternalStringFromOneByte(resource) |
+ .ToHandleChecked(); |
+ i_isolate->heap()->RegisterExternalString(*string); |
+ return Utils::ToLocal(string); |
+ } else { |
+ return Utils::ToLocal(i_isolate->factory()->empty_string()); |
+ } |
} |