function testInt32() {
function f(arr, i) {
arr[0 ] = 1 ;
arr[1 ] = arr[0 ] + 1 ;
arr[2 ] = arr[1 ] + arr[0 ];
var x = arr[2 ]; // 3
arr[x] = arr[x-1 ] + 1 ;
arr[x+1 ] = arr[x] + i;
return arr[4 ];
}
var a = [1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ];
for (var i=0 ; i<70 ; i++) {
assertEq(f(a, i), i + 4 );
}
}
testInt32();
function testDouble() {
function f(arr, d) {
arr[0 ] = d;
for (var i=1 ; i<8 ; i++) {
arr[i] = arr[i-1 ] + d;
}
return arr[7 ];
}
var a = [0 .0 , 0 .0 , 0 .0 , 0 .0 , 0 .0 , 0 .0 , 0 .0 , 0 .0 ];
for (var i=0 ; i<50 ; i++) {
assertEq(f(a, Math.PI + i)|0 , ((Math.PI + i) * 8 )|0 );
}
}
testDouble();
function testOutOfBounds() {
function f(arr, i, v) {
arr[i] = v;
}
var a = [1 , 2 ];
for (var i=0 ; i<90 ; i++) {
f(a, 1 , i);
}
assertEq(a[1 ], 89 );
f(a, 2 , 40 );
f(a, 100 , 50 );
f(a, -1 , 3 );
assertEq(a[2 ], 40 );
assertEq(a[100 ], 50 );
assertEq(a[-1 ], 3 );
}
testOutOfBounds();
function testClassGuard() {
function f(arr, v) {
arr[1 ] = v;
}
var a = [1 , 2 , 3 , 4 ];
for (var i=0 ; i<90 ; i++) {
f(a, i);
}
assertEq(a[1 ], 89 );
var b = {};
f(b, 100 );
assertEq(b[1 ], 100 );
}
testClassGuard();
function testMultipleTypes() {
function f(arr, v) {
arr[1 ] = v;
}
var a = [1 , 2 , 3 , 4 ];
var b = [1 .1 , -233 .2 , 3 .3 ];
for (var i=0 ; i<90 ; i++) {
f(a, i);
}
assertEq(a[1 ], 89 );
f(b, 20 );
assertEq(b[1 ], 20 );
}
testMultipleTypes();
function testNull() {
function f(arr) {
arr[0 ] = null ;
}
var arr = [undefined];
for (var i=0 ; i<100 ; i++) {
f(arr);
}
assertEq(arr[0 ], null );
}
testNull();
// Bug 722245.
function testConstantGcThing() {
function f(arr, x) {
arr[x] = "abc" ;
}
var arr = ["" , "" ];
for (var i=0 ; i<100 ; i++) {
f(arr, 1 );
}
assertEq(arr[1 ], "abc" );
}
testConstantGcThing();
Messung V0.5 in Prozent C=99 H=64 G=83
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet am 2026-06-08)
¤
*© Formatika GbR, Deutschland