"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();