aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/builtins/js
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-01-21 04:06:06 -0800
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-01-21 04:06:06 -0800
commited421855d70c64f55a5cb15a1a46798457697d3e (patch)
treef4177544ce601d0c6051d0f687084f605969753b /src/bun.js/builtins/js
parent627da4452714bc7126db776682882afd26f89516 (diff)
downloadbun-ed421855d70c64f55a5cb15a1a46798457697d3e.tar.gz
bun-ed421855d70c64f55a5cb15a1a46798457697d3e.tar.zst
bun-ed421855d70c64f55a5cb15a1a46798457697d3e.zip
[buffer] Add faster path for Uint8Array
Diffstat (limited to 'src/bun.js/builtins/js')
-rw-r--r--src/bun.js/builtins/js/JSBufferConstructor.js6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/bun.js/builtins/js/JSBufferConstructor.js b/src/bun.js/builtins/js/JSBufferConstructor.js
index 9f61220cc..4c3650360 100644
--- a/src/bun.js/builtins/js/JSBufferConstructor.js
+++ b/src/bun.js/builtins/js/JSBufferConstructor.js
@@ -36,6 +36,12 @@ function from(items) {
"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object.",
);
+ if (@argumentCount() === 1 && @isTypedArrayView(items)) {
+ var out = this.allocUnsafe(items.byteLength);
+ out.copy(items);
+ return out;
+ }
+
// TODO: figure out why private symbol not found
if (
typeof items === "string" ||