aboutsummaryrefslogtreecommitdiff
path: root/src/javascript/jsc/bindings/JSBufferConstructorBuiltins.cpp
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-05-16 15:46:20 -0700
committerGravatar GitHub <noreply@github.com> 2022-05-16 15:46:20 -0700
commita37f86e89dc01f884a1b4474c27c79d5932093a0 (patch)
tree4732a1a1c032f2e6788f3b8d7151c5d5db15fb38 /src/javascript/jsc/bindings/JSBufferConstructorBuiltins.cpp
parent2bd0dcfdfaf6c385e927570b0e102385dc8c3975 (diff)
downloadbun-a37f86e89dc01f884a1b4474c27c79d5932093a0.tar.gz
bun-a37f86e89dc01f884a1b4474c27c79d5932093a0.tar.zst
bun-a37f86e89dc01f884a1b4474c27c79d5932093a0.zip
`bun:sqlite` (#167)
* :scissors: * Add the slow version * draw the rest of the owl * Fix crash when allocating lots of memory * [Bun.Transipiler] Support passing objects * [JS Parser] Support passing objects to macros via Bun.Transpiler * Update JSSQLStatement.cpp * Embed SQLite * Add SQLite to Dockerfile * [sqlite] Add quick one-off queries without creating a whole object * [sqlite] Add `columnsCount`, rename raw() to `values()`, remove `rebind` * Implement `bun:sqlite` * return null * Fix updating query * Update bun.d.ts * more tests * Support variadic arguments, write tests and add types * Update sqlite.d.ts * Update sqlite.d.ts * latest * Implement `Database.loadExtension` and `Database.setCustomSQLite` * Support `require.resolve` * [napi] Improve string performance * [bun.js] Support some of `node:module` * another test * [sqlite] Support serialize & deserialize * [`bun:ffi`] Implement `CFunction` and `linkSymbols` * [bun.js] Fix crash in `Buffer.from` * Update sqlite.test.js * Document linkSymbols * docs * Update README.md
Diffstat (limited to 'src/javascript/jsc/bindings/JSBufferConstructorBuiltins.cpp')
-rw-r--r--src/javascript/jsc/bindings/JSBufferConstructorBuiltins.cpp14
1 files changed, 3 insertions, 11 deletions
diff --git a/src/javascript/jsc/bindings/JSBufferConstructorBuiltins.cpp b/src/javascript/jsc/bindings/JSBufferConstructorBuiltins.cpp
index 6acff3ce0..09d5a1d04 100644
--- a/src/javascript/jsc/bindings/JSBufferConstructorBuiltins.cpp
+++ b/src/javascript/jsc/bindings/JSBufferConstructorBuiltins.cpp
@@ -44,7 +44,7 @@ namespace WebCore {
const JSC::ConstructAbility s_jsBufferConstructorFromCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
const JSC::ConstructorKind s_jsBufferConstructorFromCodeConstructorKind = JSC::ConstructorKind::None;
-const int s_jsBufferConstructorFromCodeLength = 1250;
+const int s_jsBufferConstructorFromCodeLength = 931;
static const JSC::Intrinsic s_jsBufferConstructorFromCodeIntrinsic = JSC::NoIntrinsic;
const char* const s_jsBufferConstructorFromCode =
"(function (items) {\n" \
@@ -54,7 +54,7 @@ const char* const s_jsBufferConstructorFromCode =
" @throwTypeError(\"Buffer.from requires |this| to be a constructor\");\n" \
"\n" \
"\n" \
- " if (typeof items === 'string') {\n" \
+ " if (typeof items === 'string' || @ArrayBuffer.@isView(items)) {\n" \
" switch (@argumentCount()) {\n" \
" case 1: {\n" \
" return new this(items);\n" \
@@ -79,15 +79,7 @@ const char* const s_jsBufferConstructorFromCode =
" var result = this.allocUnsafe(length);\n" \
" result.set(arrayLike);\n" \
" return result;\n" \
- " } else if (arrayLike instanceof ArrayBuffer || arrayLike instanceof SharedArrayBuffer) {\n" \
- " var byteOffset = @argument(1);\n" \
- " var byteLength = @argument(2);\n" \
- " //\n" \
- " var out = new @Uint8Array(arrayLike, byteOffset, byteLength);\n" \
- " var result = this.allocUnsafe(out.length);\n" \
- " result.set(out);\n" \
- " return result;\n" \
- " }\n" \
+ " } \n" \
"\n" \
" return @tailCallForwardArguments(@Uint8Array.from, this);\n" \
"})\n" \