aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/JSBuffer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bun.js/bindings/JSBuffer.cpp')
-rw-r--r--src/bun.js/bindings/JSBuffer.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/bun.js/bindings/JSBuffer.cpp b/src/bun.js/bindings/JSBuffer.cpp
index daca67676..5b41949c4 100644
--- a/src/bun.js/bindings/JSBuffer.cpp
+++ b/src/bun.js/bindings/JSBuffer.cpp
@@ -28,6 +28,7 @@
#include "wtf/GetPtr.h"
#include "wtf/PointerPreparations.h"
#include "wtf/URL.h"
+#include "wtf/text/WTFString.h"
#include "JavaScriptCore/BuiltinNames.h"
#include "JSBufferEncodingType.h"
@@ -270,7 +271,6 @@ static inline JSC::EncodedJSValue constructBufferFromStringAndEncoding(JSC::JSGl
break;
}
- case WebCore::BufferEncodingType::latin1:
case WebCore::BufferEncodingType::ascii: {
if (view.is8Bit()) {
result = Bun__encoding__constructFromLatin1AsASCII(lexicalGlobalObject, view.characters8(), view.length());
@@ -279,6 +279,14 @@ static inline JSC::EncodedJSValue constructBufferFromStringAndEncoding(JSC::JSGl
}
break;
}
+ case WebCore::BufferEncodingType::latin1: {
+ if (view.is8Bit()) {
+ result = Bun__encoding__constructFromLatin1AsASCII(lexicalGlobalObject, view.characters8(), view.length());
+ } else {
+ result = Bun__encoding__constructFromUTF16AsASCII(lexicalGlobalObject, view.characters16(), view.length());
+ }
+ break;
+ }
case WebCore::BufferEncodingType::ucs2:
case WebCore::BufferEncodingType::utf16le: {
if (view.is8Bit()) {
@@ -1094,12 +1102,16 @@ static inline JSC::EncodedJSValue jsBufferPrototypeFunction_toStringBody(JSC::JS
break;
}
- case WebCore::BufferEncodingType::latin1:
case WebCore::BufferEncodingType::ascii: {
ret = Bun__encoding__toStringASCII(castedThis->typedVector() + offset, length, lexicalGlobalObject);
break;
}
+ case WebCore::BufferEncodingType::latin1: {
+ ret = JSC::JSValue::encode(JSC::jsString(vm, WTF::StringImpl::create(reinterpret_cast<const UChar*>(castedThis->typedVector() + offset), length)));
+ break;
+ }
+
case WebCore::BufferEncodingType::ucs2:
case WebCore::BufferEncodingType::utf16le: {
ret = Bun__encoding__toStringUTF16(castedThis->typedVector() + offset, length, lexicalGlobalObject);