function testPopSimple() { var a = [4, 3, 2, 1, 0];
Object.preventExtensions(a); for (var i = 0; i < 5; i++)
assertEq(a.pop(), i);
assertEq(a.length, 0);
a = [1, 2, 3];
Object.seal(a); for (var i = 0; i < 10; i++)
assertThrowsInstanceOf(() => a.pop(), TypeError);
assertEq(a.toString(), "1,2,3");
a = [1, 2, 3];
Object.freeze(a); for (var i = 0; i < 10; i++)
assertThrowsInstanceOf(() => a.pop(), TypeError);
assertEq(a.toString(), "1,2,3");
}
testPopSimple();
function testPopHoles() { var a = [1, , 3];
Object.preventExtensions(a);
assertEq(a.pop(), 3);
assertEq(a.pop(), undefined);
assertEq(a.pop(), 1);
assertEq(a.length, 0);
a = [1, ,];
Object.seal(a);
assertEq(a.pop(), undefined); for (var i = 0; i < 10; i++)
assertThrowsInstanceOf(() => a.pop(), TypeError);
assertEq(a.toString(), "1");
a = [1, ,];
Object.freeze(a); for (var i = 0; i < 10; i++)
assertThrowsInstanceOf(() => a.pop(), TypeError);
assertEq(a.toString(), "1,");
}
testPopHoles();
function testPushSimple() { var a = [1, 2, 3];
Object.preventExtensions(a); for (var i = 0; i < 10; i++)
assertThrowsInstanceOf(() => a.push(4), TypeError);
assertEq(a.length, 3);
assertEq(a.toString(), "1,2,3");
a = [1, 2, 3];
Object.seal(a); for (var i = 0; i < 10; i++)
assertThrowsInstanceOf(() => a.push(4), TypeError);
assertEq(a.toString(), "1,2,3");
a = [1, 2, 3];
Object.freeze(a); for (var i = 0; i < 10; i++)
assertThrowsInstanceOf(() => a.push(4), TypeError);
assertEq(a.toString(), "1,2,3");
}
testPushSimple();
function testPushHoles() { var a = [,,,];
Object.preventExtensions(a); for (var i = 0; i < 10; i++)
assertThrowsInstanceOf(() => a.push(4), TypeError);
assertEq(a.length, 3);
assertEq(a.toString(), ",,");
a = [,,,];
Object.seal(a); for (var i = 0; i < 10; i++)
assertThrowsInstanceOf(() => a.push(4), TypeError);
assertEq(a.toString(), ",,");
a = [,,,];
Object.freeze(a); for (var i = 0; i < 10; i++)
assertThrowsInstanceOf(() => a.push(4), TypeError);
assertEq(a.toString(), ",,");
}
testPushHoles();
function testReverseSimple() { var a = [1, 2, 3];
Object.preventExtensions(a);
a.reverse();
assertEq(a.toString(), "3,2,1");
a = [1, 2, 3];
Object.seal(a);
a.reverse();
assertEq(a.toString(), "3,2,1");
function testShiftSimple() { var a = [1, 2, 3];
Object.preventExtensions(a);
assertEq(a.shift(), 1);
assertEq(a.toString(), "2,3"); for (var i = 0; i < 10; i++)
a.shift();
assertEq(a.length, 0);
a = [1, 2, 3];
Object.seal(a); for (var i = 0; i < 10; i++)
assertThrowsInstanceOf(() => a.shift(), TypeError);
assertEq(a.toString(), "3,3,3");
a = [1, 2, 3];
Object.freeze(a); for (var i = 0; i < 10; i++)
assertThrowsInstanceOf(() => a.shift(), TypeError);
assertEq(a.toString(), "1,2,3");
}
testShiftSimple();
testShiftSimple();
function testShiftHoles() { var a = [1, 2, , 4];
Object.preventExtensions(a); for (var i = 0; i < 10; i++)
assertThrowsInstanceOf(() => a.shift(), TypeError);
assertEq(a.toString(), ",,,4");
a = [1, 2, , 4];
Object.seal(a); for (var i = 0; i < 10; i++)
assertThrowsInstanceOf(() => a.shift(), TypeError);
assertEq(a.toString(), "2,2,,4");
a = [1, 2, , 4];
Object.freeze(a); for (var i = 0; i < 10; i++)
assertThrowsInstanceOf(() => a.shift(), TypeError);
assertEq(a.toString(), "1,2,,4");
}
testShiftHoles();
testShiftHoles();
function testUnshiftSimple() { var a = [1, 2, 3];
Object.preventExtensions(a);
assertThrowsInstanceOf(() => a.unshift(0), TypeError);
assertEq(a.toString(), "1,2,3");
function testUnshiftHoles() { var a = [,,,];
Object.preventExtensions(a);
assertThrowsInstanceOf(() => a.unshift(0), TypeError);
assertEq(a.toString(), ",,");
a = [,,,];
Object.seal(a);
assertThrowsInstanceOf(() => a.unshift(0), TypeError);
assertEq(a.toString(), ",,");
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.