Files
sausage/userland/qjs/source/tests/atomics-store-leak.js
T
surma d44f1d9677 Build separate native and WASI pipelines with shared multicall names
Checkpoint before integration and package validation.

Assisted-by: SurmAgent:unknown [read] [edit] [bash]
2026-11-12 09:36:27 +00:00

37 lines
749 B
JavaScript

/*---
features: [skip-if-tcc]
---*/
import { assert } from "./assert.js";
const big = 0x123456789abcn;
// Detached buffer.
{
const ab = new ArrayBuffer(8);
const ta = new BigInt64Array(ab);
const evil = { valueOf() { ab.transfer(); return big; } };
let err;
try {
Atomics.store(ta, 0, evil);
} catch (e) {
err = e;
}
assert(err instanceof RangeError, true);
}
// Shrunk resizable buffer.
{
const ab = new ArrayBuffer(8, { maxByteLength: 16 });
const ta = new BigUint64Array(ab);
const evil = { valueOf() { ab.resize(0); return big; } };
let err;
try {
Atomics.store(ta, 0, evil);
} catch (e) {
err = e;
}
assert(err instanceof RangeError, true);
}