30 lines
567 B
JavaScript
30 lines
567 B
JavaScript
function make(value) {
|
|
var result = new Float32Array(1);
|
|
result[0] = value;
|
|
return result;
|
|
}
|
|
|
|
function foo(a, i) {
|
|
return a[i];
|
|
}
|
|
|
|
noInline(foo);
|
|
|
|
function test(value) {
|
|
var result = foo(make(value), 0);
|
|
if (result != value)
|
|
throw "Error: bad result: " + result;
|
|
}
|
|
|
|
for (var i = 0; i < 100000; ++i)
|
|
test(42);
|
|
|
|
var result = foo(make(42), 1);
|
|
if (result !== void 0)
|
|
throw "Error: bad result: " + result;
|
|
|
|
Float32Array.prototype[1] = 23;
|
|
result = foo(make(42), 1);
|
|
if (result !== void 0)
|
|
throw "Error: bad result: " + result;
|