mirror of
https://github.com/tc39/test262.git
synced 2025-05-04 15:00:42 +02:00
60 lines
1.0 KiB
JavaScript
60 lines
1.0 KiB
JavaScript
"use strict";
|
|
|
|
function assert(b) {
|
|
if (!b)
|
|
throw new Error("Bad!");
|
|
}
|
|
|
|
function test() {
|
|
function load(o, i) {
|
|
return o.getUint8(i);
|
|
}
|
|
noInline(load);
|
|
|
|
let ab = new ArrayBuffer(4);
|
|
let ta = new Uint32Array(ab);
|
|
ta[0] = 0xa070fa01;
|
|
let dv = new DataView(ab);
|
|
|
|
for (let i = 0; i < 1000; ++i) {
|
|
assert(load(dv, 0) === 0x01);
|
|
}
|
|
|
|
transferArrayBuffer(ab);
|
|
let e = null;
|
|
try {
|
|
load(dv, 0);
|
|
} catch(err) {
|
|
e = err;
|
|
}
|
|
assert(e instanceof RangeError);
|
|
}
|
|
test();
|
|
|
|
|
|
function test2() {
|
|
function load(o, i) {
|
|
return o.getUint8(i);
|
|
}
|
|
noInline(load);
|
|
|
|
let ab = new ArrayBuffer(4);
|
|
let ta = new Uint32Array(ab);
|
|
ta[0] = 0xa070fa01;
|
|
let dv = new DataView(ab);
|
|
|
|
for (let i = 0; i < 10000; ++i) {
|
|
assert(load(dv, 0) === 0x01);
|
|
}
|
|
|
|
transferArrayBuffer(ab);
|
|
let e = null;
|
|
try {
|
|
load(dv, 0);
|
|
} catch(err) {
|
|
e = err;
|
|
}
|
|
assert(e instanceof RangeError);
|
|
}
|
|
test2();
|