summaryrefslogtreecommitdiff
path: root/deps/v8/src/extensions/externalize-string-extension.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/extensions/externalize-string-extension.cc')
-rw-r--r--deps/v8/src/extensions/externalize-string-extension.cc13
1 files changed, 7 insertions, 6 deletions
diff --git a/deps/v8/src/extensions/externalize-string-extension.cc b/deps/v8/src/extensions/externalize-string-extension.cc
index 363c0c593d..de1530ba27 100644
--- a/deps/v8/src/extensions/externalize-string-extension.cc
+++ b/deps/v8/src/extensions/externalize-string-extension.cc
@@ -4,7 +4,7 @@
#include "src/extensions/externalize-string-extension.h"
-#include "src/api.h"
+#include "src/api-inl.h"
#include "src/handles.h"
#include "src/isolate.h"
#include "src/objects-inl.h"
@@ -85,11 +85,12 @@ void ExternalizeStringExtension::Externalize(
}
bool result = false;
Handle<String> string = Utils::OpenHandle(*args[0].As<v8::String>());
- if (string->IsExternalString()) {
+ if (!string->SupportsExternalization()) {
args.GetIsolate()->ThrowException(
v8::String::NewFromUtf8(args.GetIsolate(),
- "externalizeString() can't externalize twice.",
- NewStringType::kNormal).ToLocalChecked());
+ "string does not support externalization.",
+ NewStringType::kNormal)
+ .ToLocalChecked());
return;
}
if (string->IsOneByteRepresentation() && !force_two_byte) {
@@ -97,14 +98,14 @@ void ExternalizeStringExtension::Externalize(
String::WriteToFlat(*string, data, 0, string->length());
SimpleOneByteStringResource* resource = new SimpleOneByteStringResource(
reinterpret_cast<char*>(data), string->length());
- result = string->MakeExternal(resource);
+ result = Utils::ToLocal(string)->MakeExternal(resource);
if (!result) delete resource;
} else {
uc16* data = new uc16[string->length()];
String::WriteToFlat(*string, data, 0, string->length());
SimpleTwoByteStringResource* resource = new SimpleTwoByteStringResource(
data, string->length());
- result = string->MakeExternal(resource);
+ result = Utils::ToLocal(string)->MakeExternal(resource);
if (!result) delete resource;
}
if (!result) {