Checkpoint before integration and package validation. Assisted-by: SurmAgent:unknown [read] [edit] [bash]
25 lines
506 B
JavaScript
25 lines
506 B
JavaScript
/*---
|
|
features: [skip-if-tcc]
|
|
---*/
|
|
|
|
import {assert} from "./assert.js"
|
|
|
|
const rab = new ArrayBuffer(1024, { maxByteLength: 1024 * 1024 });
|
|
const i32 = new Int32Array(rab);
|
|
const evil = {
|
|
valueOf: () => {
|
|
print("resize buffer");
|
|
rab.resize(0);
|
|
return 123;
|
|
}
|
|
};
|
|
try {
|
|
Atomics.add(i32, 0, evil);
|
|
// Atomics.sub(i32, 0, evil);
|
|
// Atomics.and(i32, 0, evil);
|
|
// Atomics.or(i32, 0, evil);
|
|
// Atomics.xor(i32, 0, evil);
|
|
} catch (e) {
|
|
assert(e instanceof RangeError);
|
|
}
|