aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bun.js/builtins/cpp/JSBufferConstructorBuiltins.cpp7
-rw-r--r--src/bun.js/builtins/js/JSBufferConstructor.js5
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));
}