diff options
23 files changed, 58 insertions, 27 deletions
diff --git a/src/bun.js/builtins/cpp/ByteLengthQueuingStrategyBuiltins.cpp b/src/bun.js/builtins/cpp/ByteLengthQueuingStrategyBuiltins.cpp index d4216d3cc..3bec31ac7 100644 --- a/src/bun.js/builtins/cpp/ByteLengthQueuingStrategyBuiltins.cpp +++ b/src/bun.js/builtins/cpp/ByteLengthQueuingStrategyBuiltins.cpp @@ -39,6 +39,7 @@ #include "WebCoreJSClientData.h" #include <JavaScriptCore/HeapInlines.h> #include <JavaScriptCore/IdentifierInlines.h> +#include <JavaScriptCore/ImplementationVisibility.h> #include <JavaScriptCore/Intrinsic.h> #include <JavaScriptCore/JSCJSValueInlines.h> #include <JavaScriptCore/JSCellInlines.h> diff --git a/src/bun.js/builtins/cpp/CountQueuingStrategyBuiltins.cpp b/src/bun.js/builtins/cpp/CountQueuingStrategyBuiltins.cpp index c10835906..ed428601a 100644 --- a/src/bun.js/builtins/cpp/CountQueuingStrategyBuiltins.cpp +++ b/src/bun.js/builtins/cpp/CountQueuingStrategyBuiltins.cpp @@ -39,6 +39,7 @@ #include "WebCoreJSClientData.h" #include <JavaScriptCore/HeapInlines.h> #include <JavaScriptCore/IdentifierInlines.h> +#include <JavaScriptCore/ImplementationVisibility.h> #include <JavaScriptCore/Intrinsic.h> #include <JavaScriptCore/JSCJSValueInlines.h> #include <JavaScriptCore/JSCellInlines.h> diff --git a/src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.cpp b/src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.cpp index 29a23ba0b..73d3cd9ab 100644 --- a/src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.cpp +++ b/src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.cpp @@ -39,6 +39,7 @@ #include "WebCoreJSClientData.h" #include <JavaScriptCore/HeapInlines.h> #include <JavaScriptCore/IdentifierInlines.h> +#include <JavaScriptCore/ImplementationVisibility.h> #include <JavaScriptCore/Intrinsic.h> #include <JavaScriptCore/JSCJSValueInlines.h> #include <JavaScriptCore/JSCellInlines.h> diff --git a/src/bun.js/builtins/cpp/JSBufferConstructorBuiltins.cpp b/src/bun.js/builtins/cpp/JSBufferConstructorBuiltins.cpp index 097ff91fb..d1ca6c416 100644 --- a/src/bun.js/builtins/cpp/JSBufferConstructorBuiltins.cpp +++ b/src/bun.js/builtins/cpp/JSBufferConstructorBuiltins.cpp @@ -39,6 +39,7 @@ #include "WebCoreJSClientData.h" #include <JavaScriptCore/HeapInlines.h> #include <JavaScriptCore/IdentifierInlines.h> +#include <JavaScriptCore/ImplementationVisibility.h> #include <JavaScriptCore/Intrinsic.h> #include <JavaScriptCore/JSCJSValueInlines.h> #include <JavaScriptCore/JSCellInlines.h> diff --git a/src/bun.js/builtins/cpp/JSBufferPrototypeBuiltins.cpp b/src/bun.js/builtins/cpp/JSBufferPrototypeBuiltins.cpp index 9906075fc..67a829d74 100644 --- a/src/bun.js/builtins/cpp/JSBufferPrototypeBuiltins.cpp +++ b/src/bun.js/builtins/cpp/JSBufferPrototypeBuiltins.cpp @@ -39,6 +39,7 @@ #include "WebCoreJSClientData.h" #include <JavaScriptCore/HeapInlines.h> #include <JavaScriptCore/IdentifierInlines.h> +#include <JavaScriptCore/ImplementationVisibility.h> #include <JavaScriptCore/Intrinsic.h> #include <JavaScriptCore/JSCJSValueInlines.h> #include <JavaScriptCore/JSCellInlines.h> @@ -509,24 +510,6 @@ const char* const s_jsBufferPrototypeWriteBigUInt64BECode = "})\n" \ ; -const JSC::ConstructAbility s_jsBufferPrototypeSliceCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; -const JSC::ConstructorKind s_jsBufferPrototypeSliceCodeConstructorKind = JSC::ConstructorKind::None; -const JSC::ImplementationVisibility s_jsBufferPrototypeSliceCodeImplementationVisibility = JSC::ImplementationVisibility::Public; -const int s_jsBufferPrototypeSliceCodeLength = 262; -static const JSC::Intrinsic s_jsBufferPrototypeSliceCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferPrototypeSliceCode = - "(function (start, end) {\n" \ - " \"use strict\";\n" \ - " if (start === undefined && end === undefined) {\n" \ - " return this;\n" \ - " }\n" \ - "\n" \ - " Buffer[Symbol.species] ||= Buffer;\n" \ - "\n" \ - " return new Buffer(this.buffer, this.byteOffset + (start || 0), (end || this.byteLength) - (start || 0));\n" \ - "})\n" \ -; - const JSC::ConstructAbility s_jsBufferPrototypeUtf8WriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; const JSC::ConstructorKind s_jsBufferPrototypeUtf8WriteCodeConstructorKind = JSC::ConstructorKind::None; const JSC::ImplementationVisibility s_jsBufferPrototypeUtf8WriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public; @@ -747,6 +730,29 @@ const char* const s_jsBufferPrototypeSubarrayCode = "})\n" \ ; +const JSC::ConstructAbility s_jsBufferPrototypeSliceCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; +const JSC::ConstructorKind s_jsBufferPrototypeSliceCodeConstructorKind = JSC::ConstructorKind::None; +const JSC::ImplementationVisibility s_jsBufferPrototypeSliceCodeImplementationVisibility = JSC::ImplementationVisibility::Public; +const int s_jsBufferPrototypeSliceCodeLength = 308; +static const JSC::Intrinsic s_jsBufferPrototypeSliceCodeIntrinsic = JSC::NoIntrinsic; +const char* const s_jsBufferPrototypeSliceCode = + "(function (start, end) {\n" \ + " \"use strict\";\n" \ + " if (start === undefined && end === undefined) {\n" \ + " return this;\n" \ + " }\n" \ + "\n" \ + " Buffer[Symbol.species] ||= Buffer;\n" \ + "\n" \ + " start = start || 0;\n" \ + " if (end !== 0) {\n" \ + " end = end || this.byteLength;\n" \ + " }\n" \ + "\n" \ + " return new Buffer(this.buffer, this.byteOffset + start, end - start);\n" \ + "})\n" \ +; + const JSC::ConstructAbility s_jsBufferPrototypeInitializeBunBufferCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; const JSC::ConstructorKind s_jsBufferPrototypeInitializeBunBufferCodeConstructorKind = JSC::ConstructorKind::None; const JSC::ImplementationVisibility s_jsBufferPrototypeInitializeBunBufferCodeImplementationVisibility = JSC::ImplementationVisibility::Public; diff --git a/src/bun.js/builtins/cpp/JSBufferPrototypeBuiltins.h b/src/bun.js/builtins/cpp/JSBufferPrototypeBuiltins.h index 956e57c7e..8b85e9f23 100644 --- a/src/bun.js/builtins/cpp/JSBufferPrototypeBuiltins.h +++ b/src/bun.js/builtins/cpp/JSBufferPrototypeBuiltins.h @@ -232,11 +232,6 @@ extern const int s_jsBufferPrototypeWriteBigUInt64BECodeLength; extern const JSC::ConstructAbility s_jsBufferPrototypeWriteBigUInt64BECodeConstructAbility; extern const JSC::ConstructorKind s_jsBufferPrototypeWriteBigUInt64BECodeConstructorKind; extern const JSC::ImplementationVisibility s_jsBufferPrototypeWriteBigUInt64BECodeImplementationVisibility; -extern const char* const s_jsBufferPrototypeSliceCode; -extern const int s_jsBufferPrototypeSliceCodeLength; -extern const JSC::ConstructAbility s_jsBufferPrototypeSliceCodeConstructAbility; -extern const JSC::ConstructorKind s_jsBufferPrototypeSliceCodeConstructorKind; -extern const JSC::ImplementationVisibility s_jsBufferPrototypeSliceCodeImplementationVisibility; extern const char* const s_jsBufferPrototypeUtf8WriteCode; extern const int s_jsBufferPrototypeUtf8WriteCodeLength; extern const JSC::ConstructAbility s_jsBufferPrototypeUtf8WriteCodeConstructAbility; @@ -327,6 +322,11 @@ extern const int s_jsBufferPrototypeSubarrayCodeLength; extern const JSC::ConstructAbility s_jsBufferPrototypeSubarrayCodeConstructAbility; extern const JSC::ConstructorKind s_jsBufferPrototypeSubarrayCodeConstructorKind; extern const JSC::ImplementationVisibility s_jsBufferPrototypeSubarrayCodeImplementationVisibility; +extern const char* const s_jsBufferPrototypeSliceCode; +extern const int s_jsBufferPrototypeSliceCodeLength; +extern const JSC::ConstructAbility s_jsBufferPrototypeSliceCodeConstructAbility; +extern const JSC::ConstructorKind s_jsBufferPrototypeSliceCodeConstructorKind; +extern const JSC::ImplementationVisibility s_jsBufferPrototypeSliceCodeImplementationVisibility; extern const char* const s_jsBufferPrototypeInitializeBunBufferCode; extern const int s_jsBufferPrototypeInitializeBunBufferCodeLength; extern const JSC::ConstructAbility s_jsBufferPrototypeInitializeBunBufferCodeConstructAbility; @@ -371,7 +371,6 @@ extern const JSC::ImplementationVisibility s_jsBufferPrototypeInitializeBunBuffe macro(writeBigInt64BE, jsBufferPrototypeWriteBigInt64BE, 2) \ macro(writeBigUInt64LE, jsBufferPrototypeWriteBigUInt64LE, 2) \ macro(writeBigUInt64BE, jsBufferPrototypeWriteBigUInt64BE, 2) \ - macro(slice, jsBufferPrototypeSlice, 2) \ macro(utf8Write, jsBufferPrototypeUtf8Write, 3) \ macro(ucs2Write, jsBufferPrototypeUcs2Write, 3) \ macro(utf16leWrite, jsBufferPrototypeUtf16leWrite, 3) \ @@ -390,6 +389,7 @@ extern const JSC::ImplementationVisibility s_jsBufferPrototypeInitializeBunBuffe macro(hexSlice, jsBufferPrototypeHexSlice, 2) \ macro(toJSON, jsBufferPrototypeToJSON, 0) \ macro(subarray, jsBufferPrototypeSubarray, 2) \ + macro(slice, jsBufferPrototypeSlice, 2) \ macro(initializeBunBuffer, jsBufferPrototypeInitializeBunBuffer, 1) \ #define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_SETBIGUINT64 1 @@ -429,7 +429,6 @@ extern const JSC::ImplementationVisibility s_jsBufferPrototypeInitializeBunBuffe #define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEBIGINT64BE 1 #define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEBIGUINT64LE 1 #define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEBIGUINT64BE 1 -#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_SLICE 1 #define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_UTF8WRITE 1 #define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_UCS2WRITE 1 #define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_UTF16LEWRITE 1 @@ -448,6 +447,7 @@ extern const JSC::ImplementationVisibility s_jsBufferPrototypeInitializeBunBuffe #define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_HEXSLICE 1 #define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_TOJSON 1 #define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_SUBARRAY 1 +#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_SLICE 1 #define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_INITIALIZEBUNBUFFER 1 #define WEBCORE_FOREACH_JSBUFFERPROTOTYPE_BUILTIN_CODE(macro) \ @@ -488,7 +488,6 @@ extern const JSC::ImplementationVisibility s_jsBufferPrototypeInitializeBunBuffe macro(jsBufferPrototypeWriteBigInt64BECode, writeBigInt64BE, ASCIILiteral(), s_jsBufferPrototypeWriteBigInt64BECodeLength) \ macro(jsBufferPrototypeWriteBigUInt64LECode, writeBigUInt64LE, ASCIILiteral(), s_jsBufferPrototypeWriteBigUInt64LECodeLength) \ macro(jsBufferPrototypeWriteBigUInt64BECode, writeBigUInt64BE, ASCIILiteral(), s_jsBufferPrototypeWriteBigUInt64BECodeLength) \ - macro(jsBufferPrototypeSliceCode, slice, ASCIILiteral(), s_jsBufferPrototypeSliceCodeLength) \ macro(jsBufferPrototypeUtf8WriteCode, utf8Write, ASCIILiteral(), s_jsBufferPrototypeUtf8WriteCodeLength) \ macro(jsBufferPrototypeUcs2WriteCode, ucs2Write, ASCIILiteral(), s_jsBufferPrototypeUcs2WriteCodeLength) \ macro(jsBufferPrototypeUtf16leWriteCode, utf16leWrite, ASCIILiteral(), s_jsBufferPrototypeUtf16leWriteCodeLength) \ @@ -507,6 +506,7 @@ extern const JSC::ImplementationVisibility s_jsBufferPrototypeInitializeBunBuffe macro(jsBufferPrototypeHexSliceCode, hexSlice, ASCIILiteral(), s_jsBufferPrototypeHexSliceCodeLength) \ macro(jsBufferPrototypeToJSONCode, toJSON, ASCIILiteral(), s_jsBufferPrototypeToJSONCodeLength) \ macro(jsBufferPrototypeSubarrayCode, subarray, ASCIILiteral(), s_jsBufferPrototypeSubarrayCodeLength) \ + macro(jsBufferPrototypeSliceCode, slice, ASCIILiteral(), s_jsBufferPrototypeSliceCodeLength) \ macro(jsBufferPrototypeInitializeBunBufferCode, initializeBunBuffer, ASCIILiteral(), s_jsBufferPrototypeInitializeBunBufferCodeLength) \ #define WEBCORE_FOREACH_JSBUFFERPROTOTYPE_BUILTIN_FUNCTION_NAME(macro) \ diff --git a/src/bun.js/builtins/cpp/ReadableByteStreamControllerBuiltins.cpp b/src/bun.js/builtins/cpp/ReadableByteStreamControllerBuiltins.cpp index 1e0266fb2..3b38a593b 100644 --- a/src/bun.js/builtins/cpp/ReadableByteStreamControllerBuiltins.cpp +++ b/src/bun.js/builtins/cpp/ReadableByteStreamControllerBuiltins.cpp @@ -39,6 +39,7 @@ #include "WebCoreJSClientData.h" #include <JavaScriptCore/HeapInlines.h> #include <JavaScriptCore/IdentifierInlines.h> +#include <JavaScriptCore/ImplementationVisibility.h> #include <JavaScriptCore/Intrinsic.h> #include <JavaScriptCore/JSCJSValueInlines.h> #include <JavaScriptCore/JSCellInlines.h> diff --git a/src/bun.js/builtins/cpp/ReadableByteStreamInternalsBuiltins.cpp b/src/bun.js/builtins/cpp/ReadableByteStreamInternalsBuiltins.cpp index 1995f5d98..f1732e48e 100644 --- a/src/bun.js/builtins/cpp/ReadableByteStreamInternalsBuiltins.cpp +++ b/src/bun.js/builtins/cpp/ReadableByteStreamInternalsBuiltins.cpp @@ -39,6 +39,7 @@ #include "WebCoreJSClientData.h" #include <JavaScriptCore/HeapInlines.h> #include <JavaScriptCore/IdentifierInlines.h> +#include <JavaScriptCore/ImplementationVisibility.h> #include <JavaScriptCore/Intrinsic.h> #include <JavaScriptCore/JSCJSValueInlines.h> #include <JavaScriptCore/JSCellInlines.h> diff --git a/src/bun.js/builtins/cpp/ReadableStreamBYOBReaderBuiltins.cpp b/src/bun.js/builtins/cpp/ReadableStreamBYOBReaderBuiltins.cpp index e88fc8cf0..46dcf7f4e 100644 --- a/src/bun.js/builtins/cpp/ReadableStreamBYOBReaderBuiltins.cpp +++ b/src/bun.js/builtins/cpp/ReadableStreamBYOBReaderBuiltins.cpp @@ -39,6 +39,7 @@ #include "WebCoreJSClientData.h" #include <JavaScriptCore/HeapInlines.h> #include <JavaScriptCore/IdentifierInlines.h> +#include <JavaScriptCore/ImplementationVisibility.h> #include <JavaScriptCore/Intrinsic.h> #include <JavaScriptCore/JSCJSValueInlines.h> #include <JavaScriptCore/JSCellInlines.h> diff --git a/src/bun.js/builtins/cpp/ReadableStreamBYOBRequestBuiltins.cpp b/src/bun.js/builtins/cpp/ReadableStreamBYOBRequestBuiltins.cpp index f335694d7..5e0cf16d4 100644 --- a/src/bun.js/builtins/cpp/ReadableStreamBYOBRequestBuiltins.cpp +++ b/src/bun.js/builtins/cpp/ReadableStreamBYOBRequestBuiltins.cpp @@ -39,6 +39,7 @@ #include "WebCoreJSClientData.h" #include <JavaScriptCore/HeapInlines.h> #include <JavaScriptCore/IdentifierInlines.h> +#include <JavaScriptCore/ImplementationVisibility.h> #include <JavaScriptCore/Intrinsic.h> #include <JavaScriptCore/JSCJSValueInlines.h> #include <JavaScriptCore/JSCellInlines.h> diff --git a/src/bun.js/builtins/cpp/ReadableStreamBuiltins.cpp b/src/bun.js/builtins/cpp/ReadableStreamBuiltins.cpp index 541ac3df2..7db8c5f91 100644 --- a/src/bun.js/builtins/cpp/ReadableStreamBuiltins.cpp +++ b/src/bun.js/builtins/cpp/ReadableStreamBuiltins.cpp @@ -39,6 +39,7 @@ #include "WebCoreJSClientData.h" #include <JavaScriptCore/HeapInlines.h> #include <JavaScriptCore/IdentifierInlines.h> +#include <JavaScriptCore/ImplementationVisibility.h> #include <JavaScriptCore/Intrinsic.h> #include <JavaScriptCore/JSCJSValueInlines.h> #include <JavaScriptCore/JSCellInlines.h> diff --git a/src/bun.js/builtins/cpp/ReadableStreamDefaultControllerBuiltins.cpp b/src/bun.js/builtins/cpp/ReadableStreamDefaultControllerBuiltins.cpp index e72bb4c06..185d6cdee 100644 --- a/src/bun.js/builtins/cpp/ReadableStreamDefaultControllerBuiltins.cpp +++ b/src/bun.js/builtins/cpp/ReadableStreamDefaultControllerBuiltins.cpp @@ -39,6 +39,7 @@ #include "WebCoreJSClientData.h" #include <JavaScriptCore/HeapInlines.h> #include <JavaScriptCore/IdentifierInlines.h> +#include <JavaScriptCore/ImplementationVisibility.h> #include <JavaScriptCore/Intrinsic.h> #include <JavaScriptCore/JSCJSValueInlines.h> #include <JavaScriptCore/JSCellInlines.h> diff --git a/src/bun.js/builtins/cpp/ReadableStreamDefaultReaderBuiltins.cpp b/src/bun.js/builtins/cpp/ReadableStreamDefaultReaderBuiltins.cpp index 09f7d7e19..436de27e0 100644 --- a/src/bun.js/builtins/cpp/ReadableStreamDefaultReaderBuiltins.cpp +++ b/src/bun.js/builtins/cpp/ReadableStreamDefaultReaderBuiltins.cpp @@ -39,6 +39,7 @@ #include "WebCoreJSClientData.h" #include <JavaScriptCore/HeapInlines.h> #include <JavaScriptCore/IdentifierInlines.h> +#include <JavaScriptCore/ImplementationVisibility.h> #include <JavaScriptCore/Intrinsic.h> #include <JavaScriptCore/JSCJSValueInlines.h> #include <JavaScriptCore/JSCellInlines.h> diff --git a/src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.cpp b/src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.cpp index e2614c7e3..e39802ee5 100644 --- a/src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.cpp +++ b/src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.cpp @@ -39,6 +39,7 @@ #include "WebCoreJSClientData.h" #include <JavaScriptCore/HeapInlines.h> #include <JavaScriptCore/IdentifierInlines.h> +#include <JavaScriptCore/ImplementationVisibility.h> #include <JavaScriptCore/Intrinsic.h> #include <JavaScriptCore/JSCJSValueInlines.h> #include <JavaScriptCore/JSCellInlines.h> diff --git a/src/bun.js/builtins/cpp/StreamInternalsBuiltins.cpp b/src/bun.js/builtins/cpp/StreamInternalsBuiltins.cpp index abc7ee822..0a1a8143e 100644 --- a/src/bun.js/builtins/cpp/StreamInternalsBuiltins.cpp +++ b/src/bun.js/builtins/cpp/StreamInternalsBuiltins.cpp @@ -39,6 +39,7 @@ #include "WebCoreJSClientData.h" #include <JavaScriptCore/HeapInlines.h> #include <JavaScriptCore/IdentifierInlines.h> +#include <JavaScriptCore/ImplementationVisibility.h> #include <JavaScriptCore/Intrinsic.h> #include <JavaScriptCore/JSCJSValueInlines.h> #include <JavaScriptCore/JSCellInlines.h> diff --git a/src/bun.js/builtins/cpp/TransformStreamBuiltins.cpp b/src/bun.js/builtins/cpp/TransformStreamBuiltins.cpp index 84f7e1ac4..82319d8b9 100644 --- a/src/bun.js/builtins/cpp/TransformStreamBuiltins.cpp +++ b/src/bun.js/builtins/cpp/TransformStreamBuiltins.cpp @@ -39,6 +39,7 @@ #include "WebCoreJSClientData.h" #include <JavaScriptCore/HeapInlines.h> #include <JavaScriptCore/IdentifierInlines.h> +#include <JavaScriptCore/ImplementationVisibility.h> #include <JavaScriptCore/Intrinsic.h> #include <JavaScriptCore/JSCJSValueInlines.h> #include <JavaScriptCore/JSCellInlines.h> diff --git a/src/bun.js/builtins/cpp/TransformStreamDefaultControllerBuiltins.cpp b/src/bun.js/builtins/cpp/TransformStreamDefaultControllerBuiltins.cpp index e7dbb840f..aae09e51d 100644 --- a/src/bun.js/builtins/cpp/TransformStreamDefaultControllerBuiltins.cpp +++ b/src/bun.js/builtins/cpp/TransformStreamDefaultControllerBuiltins.cpp @@ -39,6 +39,7 @@ #include "WebCoreJSClientData.h" #include <JavaScriptCore/HeapInlines.h> #include <JavaScriptCore/IdentifierInlines.h> +#include <JavaScriptCore/ImplementationVisibility.h> #include <JavaScriptCore/Intrinsic.h> #include <JavaScriptCore/JSCJSValueInlines.h> #include <JavaScriptCore/JSCellInlines.h> diff --git a/src/bun.js/builtins/cpp/TransformStreamInternalsBuiltins.cpp b/src/bun.js/builtins/cpp/TransformStreamInternalsBuiltins.cpp index 8a86e78dc..2a0c48fa3 100644 --- a/src/bun.js/builtins/cpp/TransformStreamInternalsBuiltins.cpp +++ b/src/bun.js/builtins/cpp/TransformStreamInternalsBuiltins.cpp @@ -39,6 +39,7 @@ #include "WebCoreJSClientData.h" #include <JavaScriptCore/HeapInlines.h> #include <JavaScriptCore/IdentifierInlines.h> +#include <JavaScriptCore/ImplementationVisibility.h> #include <JavaScriptCore/Intrinsic.h> #include <JavaScriptCore/JSCJSValueInlines.h> #include <JavaScriptCore/JSCellInlines.h> diff --git a/src/bun.js/builtins/cpp/WritableStreamDefaultControllerBuiltins.cpp b/src/bun.js/builtins/cpp/WritableStreamDefaultControllerBuiltins.cpp index 2f8708b13..fed47de16 100644 --- a/src/bun.js/builtins/cpp/WritableStreamDefaultControllerBuiltins.cpp +++ b/src/bun.js/builtins/cpp/WritableStreamDefaultControllerBuiltins.cpp @@ -39,6 +39,7 @@ #include "WebCoreJSClientData.h" #include <JavaScriptCore/HeapInlines.h> #include <JavaScriptCore/IdentifierInlines.h> +#include <JavaScriptCore/ImplementationVisibility.h> #include <JavaScriptCore/Intrinsic.h> #include <JavaScriptCore/JSCJSValueInlines.h> #include <JavaScriptCore/JSCellInlines.h> diff --git a/src/bun.js/builtins/cpp/WritableStreamDefaultWriterBuiltins.cpp b/src/bun.js/builtins/cpp/WritableStreamDefaultWriterBuiltins.cpp index 195e88fa8..4a2088728 100644 --- a/src/bun.js/builtins/cpp/WritableStreamDefaultWriterBuiltins.cpp +++ b/src/bun.js/builtins/cpp/WritableStreamDefaultWriterBuiltins.cpp @@ -39,6 +39,7 @@ #include "WebCoreJSClientData.h" #include <JavaScriptCore/HeapInlines.h> #include <JavaScriptCore/IdentifierInlines.h> +#include <JavaScriptCore/ImplementationVisibility.h> #include <JavaScriptCore/Intrinsic.h> #include <JavaScriptCore/JSCJSValueInlines.h> #include <JavaScriptCore/JSCellInlines.h> diff --git a/src/bun.js/builtins/cpp/WritableStreamInternalsBuiltins.cpp b/src/bun.js/builtins/cpp/WritableStreamInternalsBuiltins.cpp index 784489030..afbac0742 100644 --- a/src/bun.js/builtins/cpp/WritableStreamInternalsBuiltins.cpp +++ b/src/bun.js/builtins/cpp/WritableStreamInternalsBuiltins.cpp @@ -39,6 +39,7 @@ #include "WebCoreJSClientData.h" #include <JavaScriptCore/HeapInlines.h> #include <JavaScriptCore/IdentifierInlines.h> +#include <JavaScriptCore/ImplementationVisibility.h> #include <JavaScriptCore/Intrinsic.h> #include <JavaScriptCore/JSCJSValueInlines.h> #include <JavaScriptCore/JSCellInlines.h> diff --git a/src/bun.js/builtins/js/JSBufferPrototype.js b/src/bun.js/builtins/js/JSBufferPrototype.js index 310870540..a81634f69 100644 --- a/src/bun.js/builtins/js/JSBufferPrototype.js +++ b/src/bun.js/builtins/js/JSBufferPrototype.js @@ -292,7 +292,12 @@ function slice(start, end) { Buffer[Symbol.species] ||= Buffer; - return new Buffer(this.buffer, this.byteOffset + (start || 0), (end || this.byteLength) - (start || 0)); + start = start || 0; + if (end !== 0) { + end = end || this.byteLength; + } + + return new Buffer(this.buffer, this.byteOffset + start, end - start); } diff --git a/test/bun.js/buffer.test.js b/test/bun.js/buffer.test.js index a7fa539c0..fa086d744 100644 --- a/test/bun.js/buffer.test.js +++ b/test/bun.js/buffer.test.js @@ -32,6 +32,7 @@ it("buffer", () => { gc(); expect(buf.slice(0, 1) instanceof Buffer).toBe(true); gc(); + expect(buf.slice(0, 0).length).toBe(0); }); it("Buffer", () => { |