diff options
Diffstat (limited to 'src/bun.js/builtins/cpp')
5 files changed, 152 insertions, 32 deletions
diff --git a/src/bun.js/builtins/cpp/ReadableStreamBuiltins.cpp b/src/bun.js/builtins/cpp/ReadableStreamBuiltins.cpp index 7ce97e7bb..2af23348e 100644 --- a/src/bun.js/builtins/cpp/ReadableStreamBuiltins.cpp +++ b/src/bun.js/builtins/cpp/ReadableStreamBuiltins.cpp @@ -49,7 +49,7 @@ namespace WebCore { const JSC::ConstructAbility s_readableStreamInitializeReadableStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; const JSC::ConstructorKind s_readableStreamInitializeReadableStreamCodeConstructorKind = JSC::ConstructorKind::None; -const int s_readableStreamInitializeReadableStreamCodeLength = 2501; +const int s_readableStreamInitializeReadableStreamCodeLength = 2783; static const JSC::Intrinsic s_readableStreamInitializeReadableStreamCodeIntrinsic = JSC::NoIntrinsic; const char* const s_readableStreamInitializeReadableStreamCode = "(function (underlyingSource, strategy)\n" \ @@ -90,14 +90,17 @@ const char* const s_readableStreamInitializeReadableStreamCode = " if (@getByIdDirectPrivate(underlyingSource, \"pull\") !== @undefined && !isLazy) {\n" \ " const size = @getByIdDirectPrivate(strategy, \"size\");\n" \ " const highWaterMark = @getByIdDirectPrivate(strategy, \"highWaterMark\");\n" \ + " @putByIdDirectPrivate(this, \"underlyingSource\", @undefined);\n" \ " @setupReadableStreamDefaultController(this, underlyingSource, size, highWaterMark !== @undefined ? highWaterMark : 1, @getByIdDirectPrivate(underlyingSource, \"start\"), @getByIdDirectPrivate(underlyingSource, \"pull\"), @getByIdDirectPrivate(underlyingSource, \"cancel\"));\n" \ " \n" \ " return this;\n" \ " }\n" \ " if (isDirect) {\n" \ + " @putByIdDirectPrivate(this, \"underlyingSource\", underlyingSource);\n" \ " @putByIdDirectPrivate(this, \"start\", () => @createReadableStreamController(this, underlyingSource, strategy));\n" \ " } else if (isLazy) {\n" \ " const autoAllocateChunkSize = underlyingSource.autoAllocateChunkSize;\n" \ + " @putByIdDirectPrivate(this, \"underlyingSource\", @undefined);\n" \ "\n" \ " \n" \ " @putByIdDirectPrivate(this, \"start\", () => {\n" \ @@ -107,6 +110,7 @@ const char* const s_readableStreamInitializeReadableStreamCode = " }\n" \ " });\n" \ " } else {\n" \ + " @putByIdDirectPrivate(this, \"underlyingSource\", @undefined);\n" \ " @putByIdDirectPrivate(this, \"start\", @undefined);\n" \ " @createReadableStreamController(this, underlyingSource, strategy);\n" \ " }\n" \ diff --git a/src/bun.js/builtins/cpp/ReadableStreamDefaultReaderBuiltins.cpp b/src/bun.js/builtins/cpp/ReadableStreamDefaultReaderBuiltins.cpp index b1f8d4791..9a8935324 100644 --- a/src/bun.js/builtins/cpp/ReadableStreamDefaultReaderBuiltins.cpp +++ b/src/bun.js/builtins/cpp/ReadableStreamDefaultReaderBuiltins.cpp @@ -89,7 +89,7 @@ const char* const s_readableStreamDefaultReaderCancelCode = const JSC::ConstructAbility s_readableStreamDefaultReaderReadManyCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; const JSC::ConstructorKind s_readableStreamDefaultReaderReadManyCodeConstructorKind = JSC::ConstructorKind::None; -const int s_readableStreamDefaultReaderReadManyCodeLength = 3414; +const int s_readableStreamDefaultReaderReadManyCodeLength = 3712; static const JSC::Intrinsic s_readableStreamDefaultReaderReadManyCodeIntrinsic = JSC::NoIntrinsic; const char* const s_readableStreamDefaultReaderReadManyCode = "(function ()\n" \ @@ -128,6 +128,11 @@ const char* const s_readableStreamDefaultReaderReadManyCode = " value[i] = new @Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);\n" \ " }\n" \ " }\n" \ + " } else {\n" \ + " values[0] = values[0].value;\n" \ + " for (var i = 1; i < values.length; i++) {\n" \ + " values[i] = values[i].value;\n" \ + " }\n" \ " }\n" \ " \n" \ " @resetQueue(@getByIdDirectPrivate(controller, \"queue\"));\n" \ @@ -158,6 +163,10 @@ const char* const s_readableStreamDefaultReaderReadManyCode = " value[i] = new @Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);\n" \ " }\n" \ " }\n" \ + " } else {\n" \ + " for (var i = 1; i < value.length; i++) {\n" \ + " value[i] = value[i].value;\n" \ + " }\n" \ " }\n" \ " \n" \ " var size = queue.size;\n" \ diff --git a/src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.cpp b/src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.cpp index 09e96a121..ca82613a7 100644 --- a/src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.cpp +++ b/src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.cpp @@ -762,15 +762,111 @@ const char* const s_readableStreamInternalsIsReadableStreamDefaultControllerCode "})\n" \ ; -const JSC::ConstructAbility s_readableStreamInternalsAssignDirectStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; -const JSC::ConstructorKind s_readableStreamInternalsAssignDirectStreamCodeConstructorKind = JSC::ConstructorKind::None; -const int s_readableStreamInternalsAssignDirectStreamCodeLength = 60; -static const JSC::Intrinsic s_readableStreamInternalsAssignDirectStreamCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamInternalsAssignDirectStreamCode = - "(function () {\n" \ +const JSC::ConstructAbility s_readableStreamInternalsAssignToStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; +const JSC::ConstructorKind s_readableStreamInternalsAssignToStreamCodeConstructorKind = JSC::ConstructorKind::None; +const int s_readableStreamInternalsAssignToStreamCodeLength = 2534; +static const JSC::Intrinsic s_readableStreamInternalsAssignToStreamCodeIntrinsic = JSC::NoIntrinsic; +const char* const s_readableStreamInternalsAssignToStreamCode = + "(function (stream, sink) {\n" \ " \"use strict\";\n" \ "\n" \ - " var stream = this;\n" \ + " //\n" \ + " const underlyingSource = @getByIdDirectPrivate(stream, \"underlyingSource\");\n" \ + "\n" \ + " //\n" \ + " if (underlyingSource) {\n" \ + " var originalClose = underlyingSource.close;\n" \ + " var reader;\n" \ + " var close = (reason) => {\n" \ + " originalClose && originalClose(reason);\n" \ + " try {\n" \ + " reader && reader.releaseLock();\n" \ + " } catch (e) {}\n" \ + " @readableStreamClose(stream, reason);\n" \ + " \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" \ + " return;\n" \ + " }\n" \ + "\n" \ + " if (!@isCallable(pull)) {\n" \ + " close();\n" \ + " @throwTypeError(\"pull is not a function\");\n" \ + " return;\n" \ + " }\n" \ + "\n" \ + " //\n" \ + " reader = stream.getReader();\n" \ + "\n" \ + " pull(sink);\n" \ + " return;\n" \ + " }\n" \ + "\n" \ + " \n" \ + " return (async function() {\n" \ + " \"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" \ + " var wroteCount = many.value.length;\n" \ + " for (var i = 0, values = many.value, length = many.value.length; i < length; i++) {\n" \ + " sink.write(values[i]);\n" \ + " }\n" \ + "\n" \ + " if (wroteCount > 0) {\n" \ + " sink.drain();\n" \ + " }\n" \ + " \n" \ + " while (true) {\n" \ + " var result = await reader.read();\n" \ + " if (result.done) {\n" \ + " didClose = true;\n" \ + " return sink.end();\n" \ + " }\n" \ + "\n" \ + " sink.write(result.value);\n" \ + " }\n" \ + " } catch (e) {\n" \ + " globalThis.console.error(e);\n" \ + "\n" \ + " }\n" \ + " })();\n" \ "})\n" \ ; @@ -823,11 +919,11 @@ const char* const s_readableStreamInternalsHandleDirectStreamErrorRejectCode = "})\n" \ ; -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 = +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 = "(function (controller)\n" \ "{\n" \ " \n" \ @@ -1049,7 +1145,7 @@ const char* const s_readableStreamInternalsOnDrainDirectStreamCode = const JSC::ConstructAbility s_readableStreamInternalsInitializeArrayBufferStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; const JSC::ConstructorKind s_readableStreamInternalsInitializeArrayBufferStreamCodeConstructorKind = JSC::ConstructorKind::None; -const int s_readableStreamInternalsInitializeArrayBufferStreamCodeLength = 930; +const int s_readableStreamInternalsInitializeArrayBufferStreamCodeLength = 933; static const JSC::Intrinsic s_readableStreamInternalsInitializeArrayBufferStreamCodeIntrinsic = JSC::NoIntrinsic; const char* const s_readableStreamInternalsInitializeArrayBufferStreamCode = "(function (underlyingSource, highWaterMark)\n" \ @@ -1066,7 +1162,7 @@ const char* const s_readableStreamInternalsInitializeArrayBufferStreamCode = "\n" \ " var controller = {\n" \ " @underlyingSource: underlyingSource,\n" \ - " @pull: @onPullDirectStream,\n" \ + " @pull: @onPullArrayBufferSink,\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 a17ea08bb..7332fc125 100644 --- a/src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.h +++ b/src/bun.js/builtins/cpp/ReadableStreamInternalsBuiltins.h @@ -147,10 +147,10 @@ extern const char* const s_readableStreamInternalsIsReadableStreamDefaultControl extern const int s_readableStreamInternalsIsReadableStreamDefaultControllerCodeLength; extern const JSC::ConstructAbility s_readableStreamInternalsIsReadableStreamDefaultControllerCodeConstructAbility; extern const JSC::ConstructorKind s_readableStreamInternalsIsReadableStreamDefaultControllerCodeConstructorKind; -extern const char* const s_readableStreamInternalsAssignDirectStreamCode; -extern const int s_readableStreamInternalsAssignDirectStreamCodeLength; -extern const JSC::ConstructAbility s_readableStreamInternalsAssignDirectStreamCodeConstructAbility; -extern const JSC::ConstructorKind s_readableStreamInternalsAssignDirectStreamCodeConstructorKind; +extern const char* const s_readableStreamInternalsAssignToStreamCode; +extern const int s_readableStreamInternalsAssignToStreamCodeLength; +extern const JSC::ConstructAbility s_readableStreamInternalsAssignToStreamCodeConstructAbility; +extern const JSC::ConstructorKind s_readableStreamInternalsAssignToStreamCodeConstructorKind; extern const char* const s_readableStreamInternalsHandleDirectStreamErrorCode; extern const int s_readableStreamInternalsHandleDirectStreamErrorCodeLength; extern const JSC::ConstructAbility s_readableStreamInternalsHandleDirectStreamErrorCodeConstructAbility; @@ -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_readableStreamInternalsOnPullDirectStreamCode; -extern const int s_readableStreamInternalsOnPullDirectStreamCodeLength; -extern const JSC::ConstructAbility s_readableStreamInternalsOnPullDirectStreamCodeConstructAbility; -extern const JSC::ConstructorKind s_readableStreamInternalsOnPullDirectStreamCodeConstructorKind; +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_readableStreamInternalsNoopDoneFunctionCode; extern const int s_readableStreamInternalsNoopDoneFunctionCodeLength; extern const JSC::ConstructAbility s_readableStreamInternalsNoopDoneFunctionCodeConstructAbility; @@ -286,10 +286,10 @@ extern const JSC::ConstructorKind s_readableStreamInternalsLazyLoadStreamCodeCon macro(isReadableStream, readableStreamInternalsIsReadableStream, 1) \ macro(isReadableStreamDefaultReader, readableStreamInternalsIsReadableStreamDefaultReader, 1) \ macro(isReadableStreamDefaultController, readableStreamInternalsIsReadableStreamDefaultController, 1) \ - macro(assignDirectStream, readableStreamInternalsAssignDirectStream, 0) \ + macro(assignToStream, readableStreamInternalsAssignToStream, 2) \ macro(handleDirectStreamError, readableStreamInternalsHandleDirectStreamError, 1) \ macro(handleDirectStreamErrorReject, readableStreamInternalsHandleDirectStreamErrorReject, 1) \ - macro(onPullDirectStream, readableStreamInternalsOnPullDirectStream, 1) \ + macro(onPullArrayBufferSink, readableStreamInternalsOnPullArrayBufferSink, 1) \ macro(noopDoneFunction, readableStreamInternalsNoopDoneFunction, 0) \ macro(onReadableStreamDirectControllerClosed, readableStreamInternalsOnReadableStreamDirectControllerClosed, 1) \ macro(onCloseDirectStream, readableStreamInternalsOnCloseDirectStream, 1) \ @@ -340,10 +340,10 @@ extern const JSC::ConstructorKind s_readableStreamInternalsLazyLoadStreamCodeCon #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ISREADABLESTREAM 1 #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ISREADABLESTREAMDEFAULTREADER 1 #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ISREADABLESTREAMDEFAULTCONTROLLER 1 -#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ASSIGNDIRECTSTREAM 1 +#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ASSIGNTOSTREAM 1 #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_HANDLEDIRECTSTREAMERROR 1 #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_HANDLEDIRECTSTREAMERRORREJECT 1 -#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ONPULLDIRECTSTREAM 1 +#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ONPULLARRAYBUFFERSINK 1 #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_NOOPDONEFUNCTION 1 #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ONREADABLESTREAMDIRECTCONTROLLERCLOSED 1 #define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ONCLOSEDIRECTSTREAM 1 @@ -395,10 +395,10 @@ extern const JSC::ConstructorKind s_readableStreamInternalsLazyLoadStreamCodeCon macro(readableStreamInternalsIsReadableStreamCode, isReadableStream, ASCIILiteral(), s_readableStreamInternalsIsReadableStreamCodeLength) \ macro(readableStreamInternalsIsReadableStreamDefaultReaderCode, isReadableStreamDefaultReader, ASCIILiteral(), s_readableStreamInternalsIsReadableStreamDefaultReaderCodeLength) \ macro(readableStreamInternalsIsReadableStreamDefaultControllerCode, isReadableStreamDefaultController, ASCIILiteral(), s_readableStreamInternalsIsReadableStreamDefaultControllerCodeLength) \ - macro(readableStreamInternalsAssignDirectStreamCode, assignDirectStream, ASCIILiteral(), s_readableStreamInternalsAssignDirectStreamCodeLength) \ + macro(readableStreamInternalsAssignToStreamCode, assignToStream, ASCIILiteral(), s_readableStreamInternalsAssignToStreamCodeLength) \ macro(readableStreamInternalsHandleDirectStreamErrorCode, handleDirectStreamError, ASCIILiteral(), s_readableStreamInternalsHandleDirectStreamErrorCodeLength) \ macro(readableStreamInternalsHandleDirectStreamErrorRejectCode, handleDirectStreamErrorReject, ASCIILiteral(), s_readableStreamInternalsHandleDirectStreamErrorRejectCodeLength) \ - macro(readableStreamInternalsOnPullDirectStreamCode, onPullDirectStream, ASCIILiteral(), s_readableStreamInternalsOnPullDirectStreamCodeLength) \ + macro(readableStreamInternalsOnPullArrayBufferSinkCode, onPullArrayBufferSink, ASCIILiteral(), s_readableStreamInternalsOnPullArrayBufferSinkCodeLength) \ macro(readableStreamInternalsNoopDoneFunctionCode, noopDoneFunction, ASCIILiteral(), s_readableStreamInternalsNoopDoneFunctionCodeLength) \ macro(readableStreamInternalsOnReadableStreamDirectControllerClosedCode, onReadableStreamDirectControllerClosed, ASCIILiteral(), s_readableStreamInternalsOnReadableStreamDirectControllerClosedCodeLength) \ macro(readableStreamInternalsOnCloseDirectStreamCode, onCloseDirectStream, ASCIILiteral(), s_readableStreamInternalsOnCloseDirectStreamCodeLength) \ @@ -426,7 +426,7 @@ extern const JSC::ConstructorKind s_readableStreamInternalsLazyLoadStreamCodeCon #define WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(macro) \ macro(acquireReadableStreamDefaultReader) \ - macro(assignDirectStream) \ + macro(assignToStream) \ macro(createReadableStreamController) \ macro(handleDirectStreamError) \ macro(handleDirectStreamErrorReject) \ @@ -440,7 +440,7 @@ extern const JSC::ConstructorKind s_readableStreamInternalsLazyLoadStreamCodeCon macro(noopDoneFunction) \ macro(onCloseDirectStream) \ macro(onDrainDirectStream) \ - macro(onPullDirectStream) \ + macro(onPullArrayBufferSink) \ 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 cefa5fd8c..57b4f2936 100644 --- a/src/bun.js/builtins/cpp/WebCoreJSBuiltinInternals.h +++ b/src/bun.js/builtins/cpp/WebCoreJSBuiltinInternals.h @@ -83,6 +83,17 @@ 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; } /* * Copyright (c) 2015 Igalia * Copyright (c) 2015 Igalia S.L. |