| Index: test/mjsunit/sparse-array-reverse.js
|
| diff --git a/test/mjsunit/sparse-array-reverse.js b/test/mjsunit/sparse-array-reverse.js
|
| index 45a6da4b5eab4a890907b3362a2976f847996dd1..9100dc5e68a478a1cb6579f6c746a93b0cd801d7 100644
|
| --- a/test/mjsunit/sparse-array-reverse.js
|
| +++ b/test/mjsunit/sparse-array-reverse.js
|
| @@ -129,3 +129,58 @@ for (var iterations = 0; iterations < 20; iterations++) {
|
| assertEquals(expected_reversed2 + expected_reversed, a.join(''), 'reverse then join' + size);
|
| }
|
| }
|
| +
|
| +
|
| +function GetSparseArray() {
|
| + var a = [];
|
| + a.length = 2000;
|
| + a[15] = 'a';
|
| + a[30] = 'b';
|
| + a[40] = 'c';
|
| + a[1959] = 'd';
|
| + a[1999] = 'e';
|
| +
|
| + return a;
|
| +}
|
| +
|
| +var tests = [
|
| + "a.reverse()",
|
| + "Array.prototype.reverse.call(a)",
|
| + "Array.prototype.reverse.apply(a)"
|
| +];
|
| +
|
| +for (var i = 0; i < tests; i++) {
|
| + var a = GetSparseArray();
|
| + a[1000] = '1';
|
| + Object.defineProperty(a, 1000, {configurable: false});
|
| + assertThrows(tests[i], TypeError);
|
| +}
|
| +
|
| +for (var i = 0; i < tests; i++) {
|
| + var a = GetSparseArray();
|
| + Object.defineProperty(a, 0, {writable: false});
|
| + assertThrows(tests[i], TypeError);
|
| +}
|
| +
|
| +for (var i = 0; i < tests; i++) {
|
| + var a = GetSparseArray();
|
| + Object.freeze(a);
|
| + assertThrows(tests[i], TypeError);
|
| +}
|
| +
|
| +for (var i = 0; i < tests; i++) {
|
| + var a = [1, 2, 3];
|
| + Object.defineProperty(a, 0, {writable: false});
|
| +}
|
| +
|
| +for (var i = 0; i < tests; i++) {
|
| + var a = [1, 2, , 4];
|
| + Object.defineProperty(a, 1, {configurable: false});
|
| + assertThrows(tests[i], TypeError);
|
| +}
|
| +
|
| +for (var i = 0; i < tests; i++) {
|
| + var a = [1, 2, 3];
|
| + Object.freeze(a);
|
| + assertThrows(tests[i], TypeError);
|
| +}
|
|
|