From 388b986a98910d40506e4d1c0cb0a56eefe998ce Mon Sep 17 00:00:00 2001 From: Jeff Walden Date: Wed, 22 Dec 2010 21:32:02 -0500 Subject: [PATCH] Add tests for bug 600392, which was fixed by a backout in bug 599159. r=testingonlychange --- js/src/tests/ecma_5/Array/jstests.list | 7 +-- js/src/tests/ecma_5/Array/length-01.js | 71 ++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 js/src/tests/ecma_5/Array/length-01.js diff --git a/js/src/tests/ecma_5/Array/jstests.list b/js/src/tests/ecma_5/Array/jstests.list index 402074b74f90..78f1b627dde8 100644 --- a/js/src/tests/ecma_5/Array/jstests.list +++ b/js/src/tests/ecma_5/Array/jstests.list @@ -1,6 +1,7 @@ url-prefix ../../jsreftest.html?test=ecma_5/Array/ -script sort-01.js -script toString-01.js -script toLocaleString-01.js +script length-01.js script regress-599159.js +script sort-01.js +script toLocaleString-01.js +script toString-01.js script unshift-01.js diff --git a/js/src/tests/ecma_5/Array/length-01.js b/js/src/tests/ecma_5/Array/length-01.js new file mode 100644 index 000000000000..4fe81e2b6eef --- /dev/null +++ b/js/src/tests/ecma_5/Array/length-01.js @@ -0,0 +1,71 @@ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ + * Contributor: + * Jeff Walden + */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 600392; +var summary = + 'Object.preventExtensions([]).length = 0 should do nothing, not throw'; + +print(BUGNUMBER + ": " + summary); + +/************** + * BEGIN TEST * + **************/ + + +function testEmpty() +{ + var a = []; + assertEq(a.length, 0); + assertEq(Object.preventExtensions(a), a); + assertEq(a.length, 0); + a.length = 0; + assertEq(a.length, 0); +} +testEmpty(); + +function testEmptyStrict() +{ + "use strict"; + var a = []; + assertEq(a.length, 0); + assertEq(Object.preventExtensions(a), a); + assertEq(a.length, 0); + a.length = 0; + assertEq(a.length, 0); +} +testEmptyStrict(); + +function testNonEmpty() +{ + var a = [1, 2, 3]; + assertEq(a.length, 3); + assertEq(Object.preventExtensions(a), a); + assertEq(a.length, 3); + a.length = 0; + assertEq(a.length, 0); +} +testNonEmpty(); + +function testNonEmptyStrict() +{ + "use strict"; + var a = [1, 2, 3]; + assertEq(a.length, 3); + assertEq(Object.preventExtensions(a), a); + assertEq(a.length, 3); + a.length = 0; + assertEq(a.length, 0); +} +testNonEmptyStrict(); + +/******************************************************************************/ + +if (typeof reportCompare === "function") + reportCompare(true, true); + +print("All tests passed!");