Skip to content
This repository was archived by the owner on Jul 2, 2025. It is now read-only.

kofi-q/bun-buffer-from-arraybuffer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Issue:

node_api_create_buffer_from_arraybuffer creates a new backing ArrayBuffer, with copied data, instead of using the original.

Repro:

Requires Zig >=0.14.0

// `zig build node` - pass
// `zig build bun` - error

const { Buffer } = require("node:buffer");
const assert = require("node:assert");
const addon = require("./addon.node");

const arrayBuffer = new ArrayBuffer(8);

// JS equivalent works:
const buffer = Buffer.from(arrayBuffer, 2, 4);
assert.strictEqual(buffer.buffer, arrayBuffer);

// But not napi version:
const napi_buffer = addon.bufferFromArrayBuffer(arrayBuffer);
assert.strictEqual(napi_buffer.buffer, arrayBuffer);

console.log("✅");
node -v
v24.2.0zig build node
bun -v
1.2.17zig build bun
11 | const buffer = Buffer.from(arrayBuffer, 2, 4);
12 | assert.strictEqual(buffer.buffer, arrayBuffer);
13 |
14 | // But not napi version:
15 | const napi_buffer = addon.bufferFromArrayBuffer(arrayBuffer);
16 | assert.strictEqual(napi_buffer.buffer, arrayBuffer);
            ^
AssertionError: Expected "actual" to be reference-equal to "expected":
+ actual - expected

  ArrayBuffer {
+   [Uint8Contents]: <00 00 00 00>,
+   byteLength: 4
-   [Uint8Contents]: <00 00 00 00 00 00 00 00>,
-   byteLength: 8
  }

 generatedMessage: true,
     actual: ArrayBuffer(4) [ 0, 0, 0, 0 ],
   expected: ArrayBuffer(8) [ 0, 0, 0, 0, 0, 0, 0, 0 ],
   operator: "strictEqual",
       code: "ERR_ASSERTION"

Bun v1.2.17 (macOS arm64)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published