summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/API/JSStringRef.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/API/JSStringRef.cpp')
-rw-r--r--Source/JavaScriptCore/API/JSStringRef.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/Source/JavaScriptCore/API/JSStringRef.cpp b/Source/JavaScriptCore/API/JSStringRef.cpp
index ea31da66b..da1a3057a 100644
--- a/Source/JavaScriptCore/API/JSStringRef.cpp
+++ b/Source/JavaScriptCore/API/JSStringRef.cpp
@@ -46,8 +46,12 @@ JSStringRef JSStringCreateWithUTF8CString(const char* string)
size_t length = strlen(string);
Vector<UChar, 1024> buffer(length);
UChar* p = buffer.data();
- if (conversionOK == convertUTF8ToUTF16(&string, string + length, &p, p + length))
+ bool sourceIsAllASCII;
+ if (conversionOK == convertUTF8ToUTF16(&string, string + length, &p, p + length, &sourceIsAllASCII)) {
+ if (sourceIsAllASCII)
+ return OpaqueJSString::create(reinterpret_cast<const LChar*>(string), length).leakRef();
return OpaqueJSString::create(buffer.data(), p - buffer.data()).leakRef();
+ }
}
// Null string.