diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bun.js/builtins/cpp/JSBufferConstructorBuiltins.cpp | 7 | ||||
-rw-r--r-- | src/bun.js/builtins/js/JSBufferConstructor.js | 5 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/bun.js/builtins/cpp/JSBufferConstructorBuiltins.cpp b/src/bun.js/builtins/cpp/JSBufferConstructorBuiltins.cpp index d1ca6c416..ed14b6699 100644 --- a/src/bun.js/builtins/cpp/JSBufferConstructorBuiltins.cpp +++ b/src/bun.js/builtins/cpp/JSBufferConstructorBuiltins.cpp @@ -51,7 +51,7 @@ namespace WebCore { const JSC::ConstructAbility s_jsBufferConstructorFromCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; const JSC::ConstructorKind s_jsBufferConstructorFromCodeConstructorKind = JSC::ConstructorKind::None; const JSC::ImplementationVisibility s_jsBufferConstructorFromCodeImplementationVisibility = JSC::ImplementationVisibility::Public; -const int s_jsBufferConstructorFromCodeLength = 1019; +const int s_jsBufferConstructorFromCodeLength = 1033; static const JSC::Intrinsic s_jsBufferConstructorFromCodeIntrinsic = JSC::NoIntrinsic; const char* const s_jsBufferConstructorFromCode = "(function (items) {\n" \ @@ -89,7 +89,10 @@ const char* const s_jsBufferConstructorFromCode = " return result;\n" \ " } \n" \ "\n" \ - " return @tailCallForwardArguments(@Uint8Array.from, this);\n" \ + " //\n" \ + " //\n" \ + " //\n" \ + " return this.toBuffer(@Uint8Array.from(arrayLike));\n" \ "})\n" \ ; diff --git a/src/bun.js/builtins/js/JSBufferConstructor.js b/src/bun.js/builtins/js/JSBufferConstructor.js index 9a3f0e1b7..bfb122034 100644 --- a/src/bun.js/builtins/js/JSBufferConstructor.js +++ b/src/bun.js/builtins/js/JSBufferConstructor.js @@ -61,5 +61,8 @@ function from(items) { return result; } - return @tailCallForwardArguments(@Uint8Array.from, this); + // Don't pass the second argument because Node's Buffer.from doesn't accept + // a function and Uint8Array.from requires it if it exists + // That means we cannot use @tailCallFowrardArguments here, sadly + return this.toBuffer(@Uint8Array.from(arrayLike)); } |