aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bun.js/bindings/JSBuffer.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/bun.js/bindings/JSBuffer.cpp b/src/bun.js/bindings/JSBuffer.cpp
index b3e5f0b4e..29774f3c5 100644
--- a/src/bun.js/bindings/JSBuffer.cpp
+++ b/src/bun.js/bindings/JSBuffer.cpp
@@ -1151,12 +1151,17 @@ static inline JSC::EncodedJSValue jsBufferPrototypeFunction_toStringBody(JSC::JS
case WebCore::BufferEncodingType::ucs2:
case WebCore::BufferEncodingType::utf16le: {
UChar* data = nullptr;
- size_t u16length = length > 1 ? length / 2 : 1;
- auto str = String::createUninitialized(u16length, data);
- // always zero out the last byte of the string incase the buffer is not a multiple of 2
- data[u16length - 1] = 0;
- memcpy(data, reinterpret_cast<const char*>(castedThis->typedVector() + offset), length);
- ret = JSC::JSValue::encode(JSC::jsString(vm, WTFMove(str)));
+ size_t u16length = length / 2;
+ if (u16length == 0) {
+ ret = JSC::JSValue::encode(JSC::jsEmptyString(vm));
+ } else {
+ auto str = String::createUninitialized(u16length, data);
+ // always zero out the last byte of the string incase the buffer is not a multiple of 2
+ data[u16length - 1] = 0;
+ memcpy(data, reinterpret_cast<const char*>(castedThis->typedVector() + offset), length);
+ ret = JSC::JSValue::encode(JSC::jsString(vm, WTFMove(str)));
+ }
+
break;
}
256b7ad42d93268c34362b251330c2&follow=1'>:scissors:Gravatar Jarred Sumner 5-626/+7 2022-11-29Remove some dead bindings codeGravatar Jarred Sumner 7-1401/+69 2022-11-29import everything from "bun" where possibleGravatar Jarred Sumner 161-739/+621 2022-11-28Make .toInt64 fasterGravatar Jarred Sumner 1-0/+8 2022-11-28Handle when the process already exited immediatelyGravatar Jarred Sumner 3-38/+47 2022-11-28toHaveProperty and tests (#1558)Gravatar Dylan Conway 8-118/+532 2022-11-28Fix failing spawn() and spawnSync() testsGravatar Jarred Sumner 7-143/+317 2022-11-28Update README.mdGravatar Jarred Sumner 1-1/+26 2022-11-28Update README.mdGravatar Jarred Sumner 1-5/+5 2022-11-28Add small section about profiling bunGravatar Jarred Sumner 1-0/+171 2022-11-28Fix hanging in FIFO streamsGravatar Jarred Sumner 1-1/+2 2022-11-28[internal] Add debug timerGravatar Jarred Sumner 2-2/+33 2022-11-28Ensure we report errors in controller.closeGravatar Jarred Sumner 1-1/+9 2022-11-28Update JSEnvironmentVariableMap.cppGravatar Jarred Sumner 1-1/+1 2022-11-28Allow overriding node:fsGravatar Jarred Sumner 1-0/+9 2022-11-28Add test for processGravatar Jarred Sumner 1-3/+14 2022-11-28Fix process.env and Bun.env object spreadGravatar Jarred Sumner 8-204/+127 2022-11-27Fix `console.log(process.env)`Gravatar Jarred Sumner 2-20/+27