diff options
-rw-r--r-- | src/bun.js/bindings/JSBuffer.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/bun.js/bindings/JSBuffer.cpp b/src/bun.js/bindings/JSBuffer.cpp index 10f9aab5a..87e1d4048 100644 --- a/src/bun.js/bindings/JSBuffer.cpp +++ b/src/bun.js/bindings/JSBuffer.cpp @@ -1476,13 +1476,19 @@ static inline JSC::EncodedJSValue jsBufferPrototypeFunction_toStringBody(JSC::JS offset = static_cast<uint32_t>(istart); length = (length > offset) ? (length - offset) : 0; } else { - int32_t ioffset = arg1.toInt32(lexicalGlobalObject); - RETURN_IF_EXCEPTION(scope, JSC::JSValue::encode(jsUndefined())); + + int32_t ioffset = 0; + + if (!arg1.isUndefined()) { + ioffset = arg1.toInt32(lexicalGlobalObject); + RETURN_IF_EXCEPTION(scope, JSC::JSValue::encode(jsUndefined())); + } if (ioffset < 0) { throwTypeError(lexicalGlobalObject, scope, "Offset must be a positive integer"_s); return JSC::JSValue::encode(jsUndefined()); } + offset = static_cast<uint32_t>(ioffset); length = (length > offset) ? (length - offset) : 0; |