aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/builtins/cpp
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-06-27 05:31:58 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-06-27 05:31:58 -0700
commit6544b2b57ee8b6ae8f805f975aa3bc3895c46881 (patch)
tree578bca52db65a54c4a353a35c7050aa34b60bd4f /src/bun.js/builtins/cpp
parent3943ce5ac52e00a02ce9c5644cf715845d5275b0 (diff)
downloadbun-6544b2b57ee8b6ae8f805f975aa3bc3895c46881.tar.gz
bun-6544b2b57ee8b6ae8f805f975aa3bc3895c46881.tar.zst
bun-6544b2b57ee8b6ae8f805f975aa3bc3895c46881.zip
Faster web streams
Diffstat (limited to 'src/bun.js/builtins/cpp')
-rw-r--r--src/bun.js/builtins/cpp/ReadableStreamBuiltins.cpp56
-rw-r--r--src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.cpp213
-rw-r--r--src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.h24
-rw-r--r--src/bun.js/builtins/cpp/WebCoreJSBuiltinInternals.h96
4 files changed, 247 insertions, 142 deletions
diff --git a/src/bun.js/builtins/cpp/ReadableStreamBuiltins.cpp b/src/bun.js/builtins/cpp/ReadableStreamBuiltins.cpp
index 2af23348e..d60f09e7b 100644
--- a/src/bun.js/builtins/cpp/ReadableStreamBuiltins.cpp
+++ b/src/bun.js/builtins/cpp/ReadableStreamBuiltins.cpp
@@ -170,42 +170,80 @@ const char* const s_readableStreamReadableStreamToArrayCode =
const JSC::ConstructAbility s_readableStreamReadableStreamToTextCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
const JSC::ConstructorKind s_readableStreamReadableStreamToTextCodeConstructorKind = JSC::ConstructorKind::None;
-const int s_readableStreamReadableStreamToTextCodeLength = 215;
+const int s_readableStreamReadableStreamToTextCodeLength = 1080;
static const JSC::Intrinsic s_readableStreamReadableStreamToTextCodeIntrinsic = JSC::NoIntrinsic;
const char* const s_readableStreamReadableStreamToTextCode =
"(function (stream) {\n" \
" \"use strict\";\n" \
"\n" \
" //\n" \
- " return globalThis.Bun.readableStreamToArrayBuffer(stream).@then(function(arrayBuffer) {\n" \
- " return new globalThis.TextDecoder().decode(arrayBuffer);\n" \
- " });\n" \
+ " var underlyingSource = @getByIdDirectPrivate(stream, \"underlyingSource\");\n" \
+ " if (underlyingSource !== @undefined) {\n" \
+ " \n" \
+ " const promise = @initializeTextStream.@call(stream, underlyingSource, @undefined);\n" \
+ " var reader = stream.getReader();\n" \
+ " return (async function() {\n" \
+ " while (@getByIdDirectPrivate(stream, \"state\") === @streamReadable) {\n" \
+ " var thisResult = await reader.read();\n" \
+ " if (thisResult.done) {\n" \
+ " break;\n" \
+ " }\n" \
+ " }\n" \
+ "\n" \
+ " try {\n" \
+ " reader.releaseLock();\n" \
+ " } catch(e) {\n" \
+ " }\n" \
+ " \n" \
+ " return await promise;\n" \
+ " })();\n" \
+ " }\n" \
+ "\n" \
+ " //\n" \
+ " var toArrayBuffer = globalThis.Bun.readableStreamToArrayBuffer(stream);\n" \
+ " if (toArrayBuffer && @isPromise(toArrayBuffer)) {\n" \
+ " return toArrayBuffer.@then(function(arrayBuffer) {\n" \
+ " return new globalThis.TextDecoder().decode(arrayBuffer);\n" \
+ " });\n" \
+ " }\n" \
+ "\n" \
+ " return new globalThis.TextDecoder().decode(arrayBuffer);\n" \
"})\n" \
;
const JSC::ConstructAbility s_readableStreamReadableStreamToJSONCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
const JSC::ConstructorKind s_readableStreamReadableStreamToJSONCodeConstructorKind = JSC::ConstructorKind::None;
-const int s_readableStreamReadableStreamToJSONCodeLength = 238;
+const int s_readableStreamReadableStreamToJSONCodeLength = 121;
static const JSC::Intrinsic s_readableStreamReadableStreamToJSONCodeIntrinsic = JSC::NoIntrinsic;
const char* const s_readableStreamReadableStreamToJSONCode =
"(function (stream) {\n" \
" \"use strict\";\n" \
"\n" \
" //\n" \
- " return globalThis.Bun.readableStreamToArrayBuffer(stream).@then(function(arrayBuffer) {\n" \
- " return globalThis.JSON.parse(new globalThis.TextDecoder().decode(arrayBuffer));\n" \
- " });\n" \
+ " return @readableStreamToText(stream).@then(globalThis.JSON.parse);\n" \
"})\n" \
;
const JSC::ConstructAbility s_readableStreamReadableStreamToBlobCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
const JSC::ConstructorKind s_readableStreamReadableStreamToBlobCodeConstructorKind = JSC::ConstructorKind::None;
-const int s_readableStreamReadableStreamToBlobCodeLength = 367;
+const int s_readableStreamReadableStreamToBlobCodeLength = 834;
static const JSC::Intrinsic s_readableStreamReadableStreamToBlobCodeIntrinsic = JSC::NoIntrinsic;
const char* const s_readableStreamReadableStreamToBlobCode =
"(function (stream) {\n" \
" \"use strict\";\n" \
"\n" \
+ " var underlyingSource = @getByIdDirectPrivate(stream, \"underlyingSource\");\n" \
+ " if (underlyingSource != @undefined) {\n" \
+ " var toArrayBuffer = globalThis.Bun.readableStreamToArrayBuffer(stream);\n" \
+ " if (toArrayBuffer && @isPromise(toArrayBuffer)) {\n" \
+ " return toArrayBuffer.@then(function(arrayBuffer) {\n" \
+ " return new globalThis.Blob([arrayBuffer]);\n" \
+ " });\n" \
+ " }\n" \
+ "\n" \
+ " return new globalThis.Blob([toArrayBuffer]);\n" \
+ " }\n" \
+ "\n" \
" \n" \
" const array = @readableStreamToArray(stream);\n" \
" if (array === null) {\n" \
diff --git a/src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.cpp b/src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.cpp
index ca82613a7..982c9567d 100644
--- a/src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.cpp
+++ b/src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.cpp
@@ -764,7 +764,7 @@ const char* const s_readableStreamInternalsIsReadableStreamDefaultControllerCode
const JSC::ConstructAbility s_readableStreamInternalsAssignToStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
const JSC::ConstructorKind s_readableStreamInternalsAssignToStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const int s_readableStreamInternalsAssignToStreamCodeLength = 2534;
+const int s_readableStreamInternalsAssignToStreamCodeLength = 2607;
static const JSC::Intrinsic s_readableStreamInternalsAssignToStreamCodeIntrinsic = JSC::NoIntrinsic;
const char* const s_readableStreamInternalsAssignToStreamCode =
"(function (stream, sink) {\n" \
@@ -786,12 +786,6 @@ const char* const s_readableStreamInternalsAssignToStreamCode =
" \n" \
" }\n" \
" var pull = underlyingSource.pull;\n" \
- " \n" \
- " @putByIdDirectPrivate(stream, \"readableStreamController\", sink);\n" \
- " @putByIdDirectPrivate(stream, \"start\", @undefined);\n" \
- " @putByIdDirectPrivate(stream, \"underlyingSource\", @undefined);\n" \
- "\n" \
- " @startDirectStream.@call(sink, stream, pull, close);\n" \
"\n" \
" if (!pull) {\n" \
" close();\n" \
@@ -803,6 +797,12 @@ const char* const s_readableStreamInternalsAssignToStreamCode =
" @throwTypeError(\"pull is not a function\");\n" \
" return;\n" \
" }\n" \
+ " \n" \
+ " @putByIdDirectPrivate(stream, \"readableStreamController\", sink);\n" \
+ " @putByIdDirectPrivate(stream, \"start\", @undefined);\n" \
+ " @putByIdDirectPrivate(stream, \"underlyingSource\", @undefined);\n" \
+ "\n" \
+ " @startDirectStream.@call(sink, stream, pull, close);\n" \
"\n" \
" //\n" \
" reader = stream.getReader();\n" \
@@ -816,45 +816,41 @@ const char* const s_readableStreamInternalsAssignToStreamCode =
" \"use strict\";\n" \
"\n" \
" var didClose = false;\n" \
- "\n" \
- "\n" \
" try {\n" \
" var reader = stream.getReader();\n" \
- " reader.closed.then(() => {\n" \
- " if (!didClose && sink) {\n" \
- " didClose = true;\n" \
- " sink.end();\n" \
- " }\n" \
- " }, (e) => {\n" \
- " if (!didClose && sink) {\n" \
- " didClose = true;\n" \
- " sink.close(e);\n" \
- " }\n" \
- " });\n" \
"\n" \
" var many = reader.readMany();\n" \
" if (many && @isPromise(many)) {\n" \
" many = await many;\n" \
" }\n" \
- "\n" \
" if (many.done) {\n" \
" didClose = true;\n" \
" sink.end();\n" \
" return;\n" \
" }\n" \
"\n" \
- " sink.start();\n" \
+ " \n" \
" var wroteCount = many.value.length;\n" \
+ " sink.start();\n" \
" for (var i = 0, values = many.value, length = many.value.length; i < length; i++) {\n" \
" sink.write(values[i]);\n" \
" }\n" \
"\n" \
+ " var streamState = @getByIdDirectPrivate(stream, \"state\");\n" \
+ "\n" \
+ "\n" \
+ " if (streamState === @streamClosed) {\n" \
+ " didClose = true;\n" \
+ " return sink.end();\n" \
+ " }\n" \
+ "\n" \
" if (wroteCount > 0) {\n" \
" sink.drain();\n" \
" }\n" \
" \n" \
" while (true) {\n" \
" var result = await reader.read();\n" \
+ "\n" \
" if (result.done) {\n" \
" didClose = true;\n" \
" return sink.end();\n" \
@@ -863,8 +859,16 @@ const char* const s_readableStreamInternalsAssignToStreamCode =
" sink.write(result.value);\n" \
" }\n" \
" } catch (e) {\n" \
- " globalThis.console.error(e);\n" \
+ " if (sink && !didClose) {\n" \
+ " didClose = true;\n" \
+ " try {\n" \
+ " sink.close();\n" \
+ " } catch(j) {\n" \
+ " throw j;\n" \
+ " }\n" \
+ " }\n" \
"\n" \
+ " throw e;\n" \
" }\n" \
" })();\n" \
"})\n" \
@@ -919,11 +923,11 @@ const char* const s_readableStreamInternalsHandleDirectStreamErrorRejectCode =
"})\n" \
;
-const JSC::ConstructAbility s_readableStreamInternalsOnPullArrayBufferSinkCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsOnPullArrayBufferSinkCodeConstructorKind = JSC::ConstructorKind::None;
-const int s_readableStreamInternalsOnPullArrayBufferSinkCodeLength = 1701;
-static const JSC::Intrinsic s_readableStreamInternalsOnPullArrayBufferSinkCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsOnPullArrayBufferSinkCode =
+const JSC::ConstructAbility s_readableStreamInternalsOnPullDirectStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
+const JSC::ConstructorKind s_readableStreamInternalsOnPullDirectStreamCodeConstructorKind = JSC::ConstructorKind::None;
+const int s_readableStreamInternalsOnPullDirectStreamCodeLength = 1701;
+static const JSC::Intrinsic s_readableStreamInternalsOnPullDirectStreamCodeIntrinsic = JSC::NoIntrinsic;
+const char* const s_readableStreamInternalsOnPullDirectStreamCode =
"(function (controller)\n" \
"{\n" \
" \n" \
@@ -1143,9 +1147,158 @@ const char* const s_readableStreamInternalsOnDrainDirectStreamCode =
"})\n" \
;
+const JSC::ConstructAbility s_readableStreamInternalsInitializeTextStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
+const JSC::ConstructorKind s_readableStreamInternalsInitializeTextStreamCodeConstructorKind = JSC::ConstructorKind::None;
+const int s_readableStreamInternalsInitializeTextStreamCodeLength = 3832;
+static const JSC::Intrinsic s_readableStreamInternalsInitializeTextStreamCodeIntrinsic = JSC::NoIntrinsic;
+const char* const s_readableStreamInternalsInitializeTextStreamCode =
+ "(function (underlyingSource, highWaterMark)\n" \
+ "{\n" \
+ " \"use strict\";\n" \
+ "\n" \
+ " var sink;\n" \
+ " var fifo = @createFIFO();\n" \
+ " var hasString = false;\n" \
+ " var hasBuffer = false;\n" \
+ " var rope = '';\n" \
+ " var estimatedLength = 0;\n" \
+ " var closingPromise = @newPromise();\n" \
+ " var calledDone = false;\n" \
+ " var sink = {\n" \
+ " start() {\n" \
+ "\n" \
+ " },\n" \
+ " write(chunk) {\n" \
+ " if (typeof chunk === 'string') {\n" \
+ " if (chunk.length > 0) {\n" \
+ " rope += chunk;\n" \
+ " hasString = true;\n" \
+ " estimatedLength += chunk.length;\n" \
+ " //\n" \
+ " }\n" \
+ "\n" \
+ " return chunk.length;\n" \
+ " }\n" \
+ "\n" \
+ " if (!chunk || !@isObject(chunk) || !(@ArrayBuffer.@isView(chunk) || chunk instanceof @ArrayBuffer)) {\n" \
+ " @throwTypeError(\"Expected text, ArrayBuffer or ArrayBufferView\");\n" \
+ " }\n" \
+ "\n" \
+ " const byteLength = chunk.byteLength;\n" \
+ " if (byteLength > 0) {\n" \
+ " hasBuffer = true;\n" \
+ " if (rope.length > 0) {\n" \
+ " fifo.push(rope);\n" \
+ " rope = '';\n" \
+ " }\n" \
+ " fifo.push(chunk);\n" \
+ " }\n" \
+ " estimatedLength += byteLength;\n" \
+ " return byteLength;\n" \
+ "\n" \
+ " },\n" \
+ "\n" \
+ " drain() {\n" \
+ " return 0;\n" \
+ " },\n" \
+ "\n" \
+ " end() {\n" \
+ " if (calledDone) {\n" \
+ " return \"\";\n" \
+ " }\n" \
+ " return sink.fulfill();\n" \
+ " },\n" \
+ "\n" \
+ " fulfill() {\n" \
+ " calledDone = true;\n" \
+ " const result = sink.finishInternal();\n" \
+ " @fulfillPromise(closingPromise, result);\n" \
+ " return result;\n" \
+ " },\n" \
+ "\n" \
+ " finishInternal() {\n" \
+ " if (!hasString && !hasBuffer) {\n" \
+ " return \"\";\n" \
+ " }\n" \
+ "\n" \
+ " if (hasString && !hasBuffer) {\n" \
+ " return rope;\n" \
+ " }\n" \
+ "\n" \
+ " if (hasBuffer && !hasString) {\n" \
+ " return new globalThis.TextDecoder().decode(\n" \
+ " globalThis.Bun.concatArrayBuffers(fifo.toArray(false)));\n" \
+ " }\n" \
+ "\n" \
+ " //\n" \
+ " var array = fifo.toArray(false);\n" \
+ " \n" \
+ " var arrayBufferSink = new globalThis.Bun.ArrayBufferSink();\n" \
+ " arrayBufferSink.start({\n" \
+ " highWaterMark: estimatedLength,\n" \
+ " asUint8Array: true,\n" \
+ " });\n" \
+ " for (let item of array) {\n" \
+ " arrayBufferSink.write(\n" \
+ " item\n" \
+ " );\n" \
+ " }\n" \
+ " if (rope.length > 0) {\n" \
+ " arrayBufferSink.write(rope);\n" \
+ " }\n" \
+ "\n" \
+ " return new globalThis.TextDecoder().decode(\n" \
+ " arrayBufferSink.end()\n" \
+ " );\n" \
+ " },\n" \
+ "\n" \
+ " close() {\n" \
+ " try {\n" \
+ " if (!calledDone) {\n" \
+ " calledDone = true;\n" \
+ " sink.fulfill();\n" \
+ " }\n" \
+ " } catch(e) {\n" \
+ "\n" \
+ " } finally {\n" \
+ " fifo.clear();\n" \
+ " rope = '';\n" \
+ " hasString = false;\n" \
+ " hasBuffer = false;\n" \
+ " estimatedLength = 0;\n" \
+ " }\n" \
+ " }\n" \
+ " };\n" \
+ "\n" \
+ " var controller = {\n" \
+ " @underlyingSource: underlyingSource,\n" \
+ " @pull: @onPullDirectStream,\n" \
+ " @controlledReadableStream: this,\n" \
+ " @sink: sink,\n" \
+ " close: @onCloseDirectStream,\n" \
+ " write: sink.write,\n" \
+ " error: @handleDirectStreamError,\n" \
+ " end: @onCloseDirectStream,\n" \
+ " @close: @onCloseDirectStream,\n" \
+ " drain: @onDrainDirectStream,\n" \
+ " _pendingRead: @undefined,\n" \
+ " _deferClose: 0,\n" \
+ " _deferDrain: 0,\n" \
+ " _deferCloseReason: @undefined,\n" \
+ " _handleError: @undefined,\n" \
+ " };\n" \
+ " \n" \
+ " \n" \
+ " @putByIdDirectPrivate(this, \"readableStreamController\", controller);\n" \
+ " @putByIdDirectPrivate(this, \"underlyingSource\", @undefined);\n" \
+ " @putByIdDirectPrivate(this, \"start\", @undefined);\n" \
+ " return closingPromise;\n" \
+ "})\n" \
+;
+
const JSC::ConstructAbility s_readableStreamInternalsInitializeArrayBufferStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
const JSC::ConstructorKind s_readableStreamInternalsInitializeArrayBufferStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const int s_readableStreamInternalsInitializeArrayBufferStreamCodeLength = 933;
+const int s_readableStreamInternalsInitializeArrayBufferStreamCodeLength = 930;
static const JSC::Intrinsic s_readableStreamInternalsInitializeArrayBufferStreamCodeIntrinsic = JSC::NoIntrinsic;
const char* const s_readableStreamInternalsInitializeArrayBufferStreamCode =
"(function (underlyingSource, highWaterMark)\n" \
@@ -1162,7 +1315,7 @@ const char* const s_readableStreamInternalsInitializeArrayBufferStreamCode =
"\n" \
" var controller = {\n" \
" @underlyingSource: underlyingSource,\n" \
- " @pull: @onPullArrayBufferSink,\n" \
+ " @pull: @onPullDirectStream,\n" \
" @controlledReadableStream: this,\n" \
" @sink: sink,\n" \
" close: @onCloseDirectStream,\n" \
diff --git a/src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.h b/src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.h
index 7332fc125..aeb20ff86 100644
--- a/src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.h
+++ b/src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.h
@@ -159,10 +159,10 @@ extern const char* const s_readableStreamInternalsHandleDirectStreamErrorRejectC
extern const int s_readableStreamInternalsHandleDirectStreamErrorRejectCodeLength;
extern const JSC::ConstructAbility s_readableStreamInternalsHandleDirectStreamErrorRejectCodeConstructAbility;
extern const JSC::ConstructorKind s_readableStreamInternalsHandleDirectStreamErrorRejectCodeConstructorKind;
-extern const char* const s_readableStreamInternalsOnPullArrayBufferSinkCode;
-extern const int s_readableStreamInternalsOnPullArrayBufferSinkCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsOnPullArrayBufferSinkCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsOnPullArrayBufferSinkCodeConstructorKind;
+extern const char* const s_readableStreamInternalsOnPullDirectStreamCode;
+extern const int s_readableStreamInternalsOnPullDirectStreamCodeLength;
+extern const JSC::ConstructAbility s_readableStreamInternalsOnPullDirectStreamCodeConstructAbility;
+extern const JSC::ConstructorKind s_readableStreamInternalsOnPullDirectStreamCodeConstructorKind;
extern const char* const s_readableStreamInternalsNoopDoneFunctionCode;
extern const int s_readableStreamInternalsNoopDoneFunctionCodeLength;
extern const JSC::ConstructAbility s_readableStreamInternalsNoopDoneFunctionCodeConstructAbility;
@@ -179,6 +179,10 @@ extern const char* const s_readableStreamInternalsOnDrainDirectStreamCode;
extern const int s_readableStreamInternalsOnDrainDirectStreamCodeLength;
extern const JSC::ConstructAbility s_readableStreamInternalsOnDrainDirectStreamCodeConstructAbility;
extern const JSC::ConstructorKind s_readableStreamInternalsOnDrainDirectStreamCodeConstructorKind;
+extern const char* const s_readableStreamInternalsInitializeTextStreamCode;
+extern const int s_readableStreamInternalsInitializeTextStreamCodeLength;
+extern const JSC::ConstructAbility s_readableStreamInternalsInitializeTextStreamCodeConstructAbility;
+extern const JSC::ConstructorKind s_readableStreamInternalsInitializeTextStreamCodeConstructorKind;
extern const char* const s_readableStreamInternalsInitializeArrayBufferStreamCode;
extern const int s_readableStreamInternalsInitializeArrayBufferStreamCodeLength;
extern const JSC::ConstructAbility s_readableStreamInternalsInitializeArrayBufferStreamCodeConstructAbility;
@@ -289,11 +293,12 @@ extern const JSC::ConstructorKind s_readableStreamInternalsLazyLoadStreamCodeCon
macro(assignToStream, readableStreamInternalsAssignToStream, 2) \
macro(handleDirectStreamError, readableStreamInternalsHandleDirectStreamError, 1) \
macro(handleDirectStreamErrorReject, readableStreamInternalsHandleDirectStreamErrorReject, 1) \
- macro(onPullArrayBufferSink, readableStreamInternalsOnPullArrayBufferSink, 1) \
+ macro(onPullDirectStream, readableStreamInternalsOnPullDirectStream, 1) \
macro(noopDoneFunction, readableStreamInternalsNoopDoneFunction, 0) \
macro(onReadableStreamDirectControllerClosed, readableStreamInternalsOnReadableStreamDirectControllerClosed, 1) \
macro(onCloseDirectStream, readableStreamInternalsOnCloseDirectStream, 1) \
macro(onDrainDirectStream, readableStreamInternalsOnDrainDirectStream, 0) \
+ macro(initializeTextStream, readableStreamInternalsInitializeTextStream, 2) \
macro(initializeArrayBufferStream, readableStreamInternalsInitializeArrayBufferStream, 2) \
macro(readableStreamError, readableStreamInternalsReadableStreamError, 2) \
macro(readableStreamDefaultControllerShouldCallPull, readableStreamInternalsReadableStreamDefaultControllerShouldCallPull, 1) \
@@ -343,11 +348,12 @@ extern const JSC::ConstructorKind s_readableStreamInternalsLazyLoadStreamCodeCon
#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ASSIGNTOSTREAM 1
#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_HANDLEDIRECTSTREAMERROR 1
#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_HANDLEDIRECTSTREAMERRORREJECT 1
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ONPULLARRAYBUFFERSINK 1
+#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ONPULLDIRECTSTREAM 1
#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_NOOPDONEFUNCTION 1
#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ONREADABLESTREAMDIRECTCONTROLLERCLOSED 1
#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ONCLOSEDIRECTSTREAM 1
#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ONDRAINDIRECTSTREAM 1
+#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_INITIALIZETEXTSTREAM 1
#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_INITIALIZEARRAYBUFFERSTREAM 1
#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMERROR 1
#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMDEFAULTCONTROLLERSHOULDCALLPULL 1
@@ -398,11 +404,12 @@ extern const JSC::ConstructorKind s_readableStreamInternalsLazyLoadStreamCodeCon
macro(readableStreamInternalsAssignToStreamCode, assignToStream, ASCIILiteral(), s_readableStreamInternalsAssignToStreamCodeLength) \
macro(readableStreamInternalsHandleDirectStreamErrorCode, handleDirectStreamError, ASCIILiteral(), s_readableStreamInternalsHandleDirectStreamErrorCodeLength) \
macro(readableStreamInternalsHandleDirectStreamErrorRejectCode, handleDirectStreamErrorReject, ASCIILiteral(), s_readableStreamInternalsHandleDirectStreamErrorRejectCodeLength) \
- macro(readableStreamInternalsOnPullArrayBufferSinkCode, onPullArrayBufferSink, ASCIILiteral(), s_readableStreamInternalsOnPullArrayBufferSinkCodeLength) \
+ macro(readableStreamInternalsOnPullDirectStreamCode, onPullDirectStream, ASCIILiteral(), s_readableStreamInternalsOnPullDirectStreamCodeLength) \
macro(readableStreamInternalsNoopDoneFunctionCode, noopDoneFunction, ASCIILiteral(), s_readableStreamInternalsNoopDoneFunctionCodeLength) \
macro(readableStreamInternalsOnReadableStreamDirectControllerClosedCode, onReadableStreamDirectControllerClosed, ASCIILiteral(), s_readableStreamInternalsOnReadableStreamDirectControllerClosedCodeLength) \
macro(readableStreamInternalsOnCloseDirectStreamCode, onCloseDirectStream, ASCIILiteral(), s_readableStreamInternalsOnCloseDirectStreamCodeLength) \
macro(readableStreamInternalsOnDrainDirectStreamCode, onDrainDirectStream, ASCIILiteral(), s_readableStreamInternalsOnDrainDirectStreamCodeLength) \
+ macro(readableStreamInternalsInitializeTextStreamCode, initializeTextStream, ASCIILiteral(), s_readableStreamInternalsInitializeTextStreamCodeLength) \
macro(readableStreamInternalsInitializeArrayBufferStreamCode, initializeArrayBufferStream, ASCIILiteral(), s_readableStreamInternalsInitializeArrayBufferStreamCodeLength) \
macro(readableStreamInternalsReadableStreamErrorCode, readableStreamError, ASCIILiteral(), s_readableStreamInternalsReadableStreamErrorCodeLength) \
macro(readableStreamInternalsReadableStreamDefaultControllerShouldCallPullCode, readableStreamDefaultControllerShouldCallPull, ASCIILiteral(), s_readableStreamInternalsReadableStreamDefaultControllerShouldCallPullCodeLength) \
@@ -431,6 +438,7 @@ extern const JSC::ConstructorKind s_readableStreamInternalsLazyLoadStreamCodeCon
macro(handleDirectStreamError) \
macro(handleDirectStreamErrorReject) \
macro(initializeArrayBufferStream) \
+ macro(initializeTextStream) \
macro(isReadableStream) \
macro(isReadableStreamDefaultController) \
macro(isReadableStreamDefaultReader) \
@@ -440,7 +448,7 @@ extern const JSC::ConstructorKind s_readableStreamInternalsLazyLoadStreamCodeCon
macro(noopDoneFunction) \
macro(onCloseDirectStream) \
macro(onDrainDirectStream) \
- macro(onPullArrayBufferSink) \
+ macro(onPullDirectStream) \
macro(onReadableStreamDirectControllerClosed) \
macro(pipeToClosingMustBePropagatedBackward) \
macro(pipeToClosingMustBePropagatedForward) \
diff --git a/src/bun.js/builtins/cpp/WebCoreJSBuiltinInternals.h b/src/bun.js/builtins/cpp/WebCoreJSBuiltinInternals.h
index 57b4f2936..f4fca9b94 100644
--- a/src/bun.js/builtins/cpp/WebCoreJSBuiltinInternals.h
+++ b/src/bun.js/builtins/cpp/WebCoreJSBuiltinInternals.h
@@ -1,98 +1,4 @@
-//clang-format off
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
-namespace Zig { class GlobalObject; }
+// clang-format off
namespace Zig { class GlobalObject; }
/*
* Copyright (c) 2015 Igalia