diff options
Diffstat (limited to 'tests/auto/declarative/parserstress/tests/ecma_3')
246 files changed, 0 insertions, 56791 deletions
diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Array/15.4.4.11-01.js b/tests/auto/declarative/parserstress/tests/ecma_3/Array/15.4.4.11-01.js deleted file mode 100755 index 0436b8c1e0..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Array/15.4.4.11-01.js +++ /dev/null @@ -1,61 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Igor Bukanov - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '15.4.4.11-01.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 312138; -var summary = 'Array.sort should not eat exceptions'; -var actual = ''; -var expect = ''; - -printBugNumber(BUGNUMBER); -printStatus (summary); - -expect = "e=1 N=1"; - -var N = 0; -var array = [4,3,2,1]; - -try { - array.sort(function() { - throw ++N; - }); -} catch (e) { - actual = ("e="+e+" N="+N); -} - -reportCompare(expect, actual, summary); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Array/15.4.4.3-1.js b/tests/auto/declarative/parserstress/tests/ecma_3/Array/15.4.4.3-1.js deleted file mode 100644 index e3de6fb116..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Array/15.4.4.3-1.js +++ /dev/null @@ -1,88 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 12 Mar 2001 - * - * - * SUMMARY: Testing Array.prototype.toLocaleString() - * See http://bugzilla.mozilla.org/show_bug.cgi?id=56883 - * See http://bugzilla.mozilla.org/show_bug.cgi?id=58031 - * - * By ECMA3 15.4.4.3, myArray.toLocaleString() means that toLocaleString() - * should be applied to each element of the array, and the results should be - * concatenated with an implementation-specific delimiter. For example: - * - * myArray[0].toLocaleString() + ',' + myArray[1].toLocaleString() + etc. - * - * In this testcase toLocaleString is a user-defined property of each - * array element; therefore it is the function that should be - * invoked. This function increments a global variable. Therefore the - * end value of this variable should be myArray.length. - */ -//----------------------------------------------------------------------------- -var gTestfile = '15.4.4.3-1.js'; -var BUGNUMBER = 56883; -var summary = 'Testing Array.prototype.toLocaleString() -'; -var actual = ''; -var expect = ''; -var n = 0; -var obj = {toLocaleString: function() {n++}}; -var myArray = [obj, obj, obj]; - - -myArray.toLocaleString(); -actual = n; -expect = 3; // (see explanation above) - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - reportCompare(expect, actual, summary); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Array/15.4.4.4-001.js b/tests/auto/declarative/parserstress/tests/ecma_3/Array/15.4.4.4-001.js deleted file mode 100644 index b87233ea97..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Array/15.4.4.4-001.js +++ /dev/null @@ -1,153 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * george@vanous.com, igor@icesoft.no, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 19 September 2002 - * SUMMARY: Testing Array.prototype.concat() - * See http://bugzilla.mozilla.org/show_bug.cgi?id=169795 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = '15.4.4.4-001.js'; -var UBound = 0; -var BUGNUMBER = 169795; -var summary = 'Testing Array.prototype.concat()'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; -var x; - - -status = inSection(1); -x = "Hello"; -actual = [].concat(x).toString(); -expect = x.toString(); -addThis(); - -status = inSection(2); -x = 999; -actual = [].concat(x).toString(); -expect = x.toString(); -addThis(); - -status = inSection(3); -x = /Hello/g; -actual = [].concat(x).toString(); -expect = x.toString(); -addThis(); - -status = inSection(4); -x = new Error("Hello"); -actual = [].concat(x).toString(); -expect = x.toString(); -addThis(); - -status = inSection(5); -x = function() {return "Hello";}; -actual = [].concat(x).toString(); -expect = x.toString(); -addThis(); - -status = inSection(6); -x = [function() {return "Hello";}]; -actual = [].concat(x).toString(); -expect = x.toString(); -addThis(); - -status = inSection(7); -x = [1,2,3].concat([4,5,6]); -actual = [].concat(x).toString(); -expect = x.toString(); -addThis(); - -status = inSection(8); -x = eval('this'); -actual = [].concat(x).toString(); -expect = x.toString(); -addThis(); - -/* - * The next two sections are by igor@icesoft.no; see - * http://bugzilla.mozilla.org/show_bug.cgi?id=169795#c3 - */ -status = inSection(9); -x={length:0}; -actual = [].concat(x).toString(); -expect = x.toString(); -addThis(); - -status = inSection(10); -x={length:2, 0:0, 1:1}; -actual = [].concat(x).toString(); -expect = x.toString(); -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Array/15.4.5.1-01.js b/tests/auto/declarative/parserstress/tests/ecma_3/Array/15.4.5.1-01.js deleted file mode 100755 index b55430b44e..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Array/15.4.5.1-01.js +++ /dev/null @@ -1,93 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2006 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '15.4.5.1-01.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = "(none)"; -var summary = '15.4.5.1 - array.length coverage'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - var a = []; - - expect = 'RangeError: invalid array length'; - actual = ''; - try - { - a.length = -1; - } - catch(ex) - { - actual = ex + ''; - } - reportCompare(expect, actual, summary); - - actual = ''; - try - { - a.length = 12345678901234567890; - } - catch(ex) - { - actual = ex + ''; - } - reportCompare(expect, actual, summary); - - actual = ''; - try - { - a.length = 'a'; - } - catch(ex) - { - actual = ex + ''; - } - reportCompare(expect, actual, summary); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Array/browser.js b/tests/auto/declarative/parserstress/tests/ecma_3/Array/browser.js deleted file mode 100644 index e69de29bb2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Array/browser.js +++ /dev/null diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-101488.js b/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-101488.js deleted file mode 100644 index 15a4556298..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-101488.js +++ /dev/null @@ -1,172 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * igor@icesoft.no, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 24 September 2001 - * - * SUMMARY: Try assigning arr.length = new Number(n) - * From correspondence with Igor Bukanov <igor@icesoft.no> - * See http://bugzilla.mozilla.org/show_bug.cgi?id=101488 - * - * Without the "new" keyword, assigning arr.length = Number(n) worked. - * But with it, Rhino was giving an error "Inappropriate array length" - * and SpiderMonkey was exiting without giving any error or return value - - * - * Comments on the Rhino code by igor@icesoft.no: - * - * jsSet_length requires that the new length value should be an instance - * of Number. But according to Ecma 15.4.5.1, item 12-13, an error should - * be thrown only if ToUint32(length_value) != ToNumber(length_value) - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-101488.js'; -var UBound = 0; -var BUGNUMBER = 101488; -var summary = 'Try assigning arr.length = new Number(n)'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; -var arr = []; - - -status = inSection(1); -arr = Array(); -tryThis('arr.length = new Number(1);'); -actual = arr.length; -expect = 1; -addThis(); - -status = inSection(2); -arr = Array(5); -tryThis('arr.length = new Number(1);'); -actual = arr.length; -expect = 1; -addThis(); - -status = inSection(3); -arr = Array(); -tryThis('arr.length = new Number(17);'); -actual = arr.length; -expect = 17; -addThis(); - -status = inSection(4); -arr = Array(5); -tryThis('arr.length = new Number(17);'); -actual = arr.length; -expect = 17; -addThis(); - - -/* - * Also try the above with the "new" keyword before Array(). - * Array() and new Array() should be equivalent, by ECMA 15.4.1.1 - */ -status = inSection(5); -arr = new Array(); -tryThis('arr.length = new Number(1);'); -actual = arr.length; -expect = 1; -addThis(); - -status = inSection(6); -arr = new Array(5); -tryThis('arr.length = new Number(1);'); -actual = arr.length; -expect = 1; -addThis(); - -arr = new Array(); -tryThis('arr.length = new Number(17);'); -actual = arr.length; -expect = 17; -addThis(); - -status = inSection(7); -arr = new Array(5); -tryThis('arr.length = new Number(17);'); -actual = arr.length; -expect = 17; -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function tryThis(s) -{ - try - { - eval(s); - } - catch(e) - { - // keep going - } -} - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-130451.js b/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-130451.js deleted file mode 100644 index a738bf6356..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-130451.js +++ /dev/null @@ -1,219 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * brendan@mozilla.org, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 25 Mar 2002 - * SUMMARY: Array.prototype.sort() should not (re-)define .length - * See http://bugzilla.mozilla.org/show_bug.cgi?id=130451 - * - * From the ECMA-262 Edition 3 Final spec: - * - * NOTE: The sort function is intentionally generic; it does not require that - * its |this| value be an Array object. Therefore, it can be transferred to - * other kinds of objects for use as a method. Whether the sort function can - * be applied successfully to a host object is implementation-dependent. - * - * The interesting parts of this testcase are the contrasting expectations for - * Brendan's test below, when applied to Array objects vs. non-Array objects. - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-130451.js'; -var UBound = 0; -var BUGNUMBER = 130451; -var summary = 'Array.prototype.sort() should not (re-)define .length'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; -var arr = []; -var cmp = new Function(); - - -/* - * First: test Array.prototype.sort() on Array objects - */ -status = inSection(1); -arr = [0,1,2,3]; -cmp = function(x,y) {return x-y;}; -actual = arr.sort(cmp).length; -expect = 4; -addThis(); - -status = inSection(2); -arr = [0,1,2,3]; -cmp = function(x,y) {return y-x;}; -actual = arr.sort(cmp).length; -expect = 4; -addThis(); - -status = inSection(3); -arr = [0,1,2,3]; -cmp = function(x,y) {return x-y;}; -arr.length = 1; -actual = arr.sort(cmp).length; -expect = 1; -addThis(); - -/* - * This test is by Brendan. Setting arr.length to - * 2 and then 4 should cause elements to be deleted. - */ -arr = [0,1,2,3]; -cmp = function(x,y) {return x-y;}; -arr.sort(cmp); - -status = inSection(4); -actual = arr.join(); -expect = '0,1,2,3'; -addThis(); - -status = inSection(5); -actual = arr.length; -expect = 4; -addThis(); - -status = inSection(6); -arr.length = 2; -actual = arr.join(); -expect = '0,1'; -addThis(); - -status = inSection(7); -arr.length = 4; -actual = arr.join(); -expect = '0,1,,'; //<---- see how 2,3 have been lost -addThis(); - - - -/* - * Now test Array.prototype.sort() on non-Array objects - */ -status = inSection(8); -var obj = new Object(); -obj.sort = Array.prototype.sort; -obj.length = 4; -obj[0] = 0; -obj[1] = 1; -obj[2] = 2; -obj[3] = 3; -cmp = function(x,y) {return x-y;}; -actual = obj.sort(cmp).length; -expect = 4; -addThis(); - - -/* - * Here again is Brendan's test. Unlike the array case - * above, the setting of obj.length to 2 and then 4 - * should NOT cause elements to be deleted - */ -obj = new Object(); -obj.sort = Array.prototype.sort; -obj.length = 4; -obj[0] = 3; -obj[1] = 2; -obj[2] = 1; -obj[3] = 0; -cmp = function(x,y) {return x-y;}; -obj.sort(cmp); //<---- this is what triggered the buggy behavior below -obj.join = Array.prototype.join; - -status = inSection(9); -actual = obj.join(); -expect = '0,1,2,3'; -addThis(); - -status = inSection(10); -actual = obj.length; -expect = 4; -addThis(); - -status = inSection(11); -obj.length = 2; -actual = obj.join(); -expect = '0,1'; -addThis(); - -/* - * Before this bug was fixed, |actual| held the value '0,1,,' - * as in the Array-object case at top. This bug only occurred - * if Array.prototype.sort() had been applied to |obj|, - * as we have done higher up. - */ -status = inSection(12); -obj.length = 4; -actual = obj.join(); -expect = '0,1,2,3'; -addThis(); - - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-322135-01.js b/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-322135-01.js deleted file mode 100755 index 4e277e6da5..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-322135-01.js +++ /dev/null @@ -1,73 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Joaquin Cuenca Abela - * Martin Honnen - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-322135-01.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 322135; -var summary = 'Array.prototype.push on Array with length 2^32-1'; -var actual = 'Completed'; -var expect = 'Completed'; - -printBugNumber(BUGNUMBER); -printStatus (summary); - -printStatus('This bug passes if it does not cause an out of memory error'); -printStatus('Other issues related to array length are not tested.'); - -var length = 4294967295; -var array = new Array(length); - -printStatus('before array.length = ' + array.length); - -try -{ - array.push('Kibo'); -} -catch(ex) -{ - printStatus(ex.name + ': ' + ex.message); -} -reportCompare(expect, actual, summary); - -//expect = 'Kibo'; -//actual = array[length]; -//reportCompare(expect, actual, summary + ': element appended'); - -//expect = length; -//actual = array.length; -//reportCompare(expect, actual, summary + ': array length unchanged'); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-322135-02.js b/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-322135-02.js deleted file mode 100755 index ee426a0cec..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-322135-02.js +++ /dev/null @@ -1,65 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Joaquin Cuenca Abela - * Martin Honnen - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-322135-02.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 322135; -var summary = 'Array.prototype.concat on Array with length 2^32-1'; -var actual = 'Completed'; -var expect = 'Completed'; - -printBugNumber(BUGNUMBER); -printStatus (summary); - -printStatus('This bug passes if it does not cause an out of memory error'); -printStatus('Other issues related to array length are not tested.'); - -var length = 4294967295; -var array1 = new Array(length); -var array2 = ['Kibo']; -var array; - -try -{ - array = array1.concat(array2); -} -catch(ex) -{ - printStatus(ex.name + ': ' + ex.message); -} -reportCompare(expect, actual, summary); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-322135-03.js b/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-322135-03.js deleted file mode 100755 index 95ee7f7a92..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-322135-03.js +++ /dev/null @@ -1,73 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Joaquin Cuenca Abela - * Martin Honnen - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-322135-03.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 322135; -var summary = 'Array.prototype.splice on Array with length 2^32-1'; -var actual = 'Completed'; -var expect = 'Completed'; - -printBugNumber(BUGNUMBER); -printStatus (summary); - -printStatus('This bug passes if it does not cause an out of memory error'); -printStatus('Other issues related to array length are not tested.'); - -var length = 4294967295; -var array = new Array(length); -var array1 = ['Kibo']; -var array; - -try -{ - array.splice(0, 0, array1); -} -catch(ex) -{ - printStatus(ex.name + ': ' + ex.message); -} -reportCompare(expect, actual, summary + ': RangeError'); - -//expect = 'Kibo'; -//actual = array[0]; -//reportCompare(expect, actual, summary + ': element prepended'); - -//expect = length; -//actual = array.length; -//reportCompare(expect, actual, summary + ': array length unchanged'); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-322135-04.js b/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-322135-04.js deleted file mode 100755 index fe9f8fc71e..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-322135-04.js +++ /dev/null @@ -1,71 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Joaquin Cuenca Abela - * Martin Honnen - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-322135-04.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 322135; -var summary = 'Array.prototype.unshift on Array with length 2^32-1'; -var actual = 'Completed'; -var expect = 'Completed'; - -printBugNumber(BUGNUMBER); -printStatus (summary); - -printStatus('This bug passes if it does not cause an out of memory error'); -printStatus('Other issues related to array length are not tested.'); - -var length = 4294967295; -var array = new Array(length); - -try -{ - array.unshift('Kibo'); -} -catch(ex) -{ - printStatus(ex.name + ': ' + ex.message); -} -reportCompare(expect, actual, summary); - -//expect = 'Kibo'; -//actual = array[0]; -//reportCompare(expect, actual, summary + ': first prepended'); - -//expect = length; -//actual = array.length; -//reportCompare(expect, actual, summary + ': array length unchanged'); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-387501.js b/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-387501.js deleted file mode 100755 index 36cf1478d2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-387501.js +++ /dev/null @@ -1,94 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-387501.js'; - -//----------------------------------------------------------------------------- -var BUGNUMBER = 387501; -var summary = 'Array.prototype.toString|toSource|toLocaleString is not generic'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - try - { - expect = 'TypeError: Array.prototype.toString called on incompatible String'; - actual = Array.prototype.toString.call((new String('foo'))); - } - catch(ex) - { - actual = ex + ''; - } - reportCompare(expect, actual, summary); - - try - { - expect = 'TypeError: Array.prototype.toLocaleString called on incompatible String'; - actual = Array.prototype.toLocaleString.call((new String('foo'))); - } - catch(ex) - { - actual = ex + ''; - } - reportCompare(expect, actual, summary); - - if (typeof Array.prototype.toSource != 'undefined') - { - try - { - expect = 'TypeError: Array.prototype.toSource called on incompatible String'; - actual = Array.prototype.toSource.call((new String('foo'))); - } - catch(ex) - { - actual = ex + ''; - } - reportCompare(expect, actual, summary); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-421325.js b/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-421325.js deleted file mode 100755 index c869d7bff4..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-421325.js +++ /dev/null @@ -1,67 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Brian Crowder - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-421325.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 421325; -var summary = 'Dense Arrays and holes'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - Array.prototype[1] = 'bar'; - - var a = []; - a[0]='foo'; - a[2] = 'baz'; - expect = 'foo,bar,baz'; - actual = a + ''; - - reportCompare(expect, actual, summary); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-430717.js b/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-430717.js deleted file mode 100755 index f750ffb449..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Array/regress-430717.js +++ /dev/null @@ -1,65 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Mike Shaver - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-430717.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 430717; -var summary = 'Dense Arrays should inherit deleted elements from Array.prototype'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - Array.prototype[2] = "two"; - var a = [0,1,2,3]; - delete a[2]; - - expect = 'two'; - actual = a[2]; - reportCompare(expect, actual, summary); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Array/shell.js b/tests/auto/declarative/parserstress/tests/ecma_3/Array/shell.js deleted file mode 100644 index 9480d9e77d..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Array/shell.js +++ /dev/null @@ -1 +0,0 @@ -gTestsubsuite = 'Array'; diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.1.2-01.js b/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.1.2-01.js deleted file mode 100755 index 61b1de6ef1..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.1.2-01.js +++ /dev/null @@ -1,62 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '15.9.1.2-01.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 264727; -var summary = '15.9.1.2 - TimeWithinDay(TIME_1900) == 0'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - expect = 0; - actual = TimeWithinDay(TIME_1900); - - reportCompare(expect, actual, summary); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.3.2-1.js b/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.3.2-1.js deleted file mode 100755 index d79b60b996..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.3.2-1.js +++ /dev/null @@ -1,91 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Bob Clary - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '15.9.3.2-1.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 273292; -var summary = '15.9.3.2 new Date(value)'; -var actual = ''; -var expect = ''; -var date1; -var date2; -var i; -var validDateStrings = [ - "11/69/2004", - "11/70/2004", - "69/69/2004", - "69/69/69", - "69/69/1969", - "70/69/70", - "70/69/1970", - "70/69/2004" - ]; - -var invalidDateStrings = [ - "70/70/70", - "70/70/1970", - "70/70/2004" - ]; - -printBugNumber(BUGNUMBER); -printStatus (summary); - -expect = 0; - -for (i = 0; i < validDateStrings.length; i++) -{ - date1 = new Date(validDateStrings[i]); - date2 = new Date(date1.toDateString()); - actual = date2 - date1; - - reportCompare(expect, actual, inSection(i) + ' ' + - validDateStrings[i]); -} - -expect = true; - -var offset = validDateStrings.length; - -for (i = 0; i < invalidDateStrings.length; i++) -{ - date1 = new Date(invalidDateStrings[i]); - actual = isNaN(date1); - - reportCompare(expect, actual, inSection(i + offset) + ' ' + - invalidDateStrings[i] + ' is invalid.'); -} - diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.4.3.js b/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.4.3.js deleted file mode 100755 index b197dcb9c2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.4.3.js +++ /dev/null @@ -1,233 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): nanto_vi (TOYAMA Nao) - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '15.9.4.3.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 363578; -var summary = '15.9.4.3 - Date.UTC edge-case arguments.'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - // - - expect = 31; - actual = (new Date(Date.UTC(2006, 0, 0)).getUTCDate()); - reportCompare(expect, actual, summary + ': date 0'); - - expect = 0; - actual = (new Date(Date.UTC(2006, 0, 0, 0)).getUTCHours()); - reportCompare(expect, actual, summary + ': hours 0'); - - expect = 0; - actual = (new Date(Date.UTC(2006, 0, 0, 0, 0)).getUTCMinutes()); - reportCompare(expect, actual, summary + ': minutes 0'); - - expect = 0; - actual = (new Date(Date.UTC(2006, 0, 0, 0, 0, 0)).getUTCSeconds()); - reportCompare(expect, actual, summary + ': seconds 0'); - - expect = 0; - actual = (new Date(Date.UTC(2006, 0, 0, 0, 0, 0, 0)).getUTCMilliseconds()); - reportCompare(expect, actual, summary + ': milliseconds 0'); - - // - - expect = 30; - actual = (new Date(Date.UTC(2006, 0, -1)).getUTCDate()); - reportCompare(expect, actual, summary + ': date -1'); - - expect = 23; - actual = (new Date(Date.UTC(2006, 0, 0, -1)).getUTCHours()); - reportCompare(expect, actual, summary + ': hours -1'); - - expect = 59; - actual = (new Date(Date.UTC(2006, 0, 0, 0, -1)).getUTCMinutes()); - reportCompare(expect, actual, summary + ': minutes -1'); - - expect = 59; - actual = (new Date(Date.UTC(2006, 0, 0, 0, 0, -1)).getUTCSeconds()); - reportCompare(expect, actual, summary + ': seconds -1'); - - expect = 999; - actual = (new Date(Date.UTC(2006, 0, 0, 0, 0, 0, -1)).getUTCMilliseconds()); - reportCompare(expect, actual, summary + ': milliseconds -1'); - - // - - expect = true; - actual = isNaN(new Date(Date.UTC(2006, 0, undefined)).getUTCDate()); - reportCompare(expect, actual, summary + ': date undefined'); - - expect = true; - actual = isNaN(new Date(Date.UTC(2006, 0, 0, undefined)).getUTCHours()); - reportCompare(expect, actual, summary + ': hours undefined'); - - expect = true; - actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, undefined)).getUTCMinutes()); - reportCompare(expect, actual, summary + ': minutes undefined'); - - expect = true; - actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, 0, undefined)).getUTCSeconds()); - reportCompare(expect, actual, summary + ': seconds undefined'); - - expect = true; - actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, 0, 0, undefined)).getUTCMilliseconds()); - reportCompare(expect, actual, summary + ': milliseconds undefined'); - - // - - expect = true; - actual = isNaN(new Date(Date.UTC(2006, 0, {})).getUTCDate()); - reportCompare(expect, actual, summary + ': date {}'); - - expect = true; - actual = isNaN(new Date(Date.UTC(2006, 0, 0, {})).getUTCHours()); - reportCompare(expect, actual, summary + ': hours {}'); - - expect = true; - actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, {})).getUTCMinutes()); - reportCompare(expect, actual, summary + ': minutes {}'); - - expect = true; - actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, 0, {})).getUTCSeconds()); - reportCompare(expect, actual, summary + ': seconds {}'); - - expect = true; - actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, 0, 0, {})).getUTCMilliseconds()); - reportCompare(expect, actual, summary + ': milliseconds {}'); - - // - - expect = 31; - actual = (new Date(Date.UTC(2006, 0, null)).getUTCDate()); - reportCompare(expect, actual, summary + ': date null'); - - expect = 0; - actual = (new Date(Date.UTC(2006, 0, 0, null)).getUTCHours()); - reportCompare(expect, actual, summary + ': hours null'); - - expect = 0; - actual = (new Date(Date.UTC(2006, 0, 0, 0, null)).getUTCMinutes()); - reportCompare(expect, actual, summary + ': minutes null'); - - expect = 0; - actual = (new Date(Date.UTC(2006, 0, 0, 0, 0, null)).getUTCSeconds()); - reportCompare(expect, actual, summary + ': seconds null'); - - expect = 0; - actual = (new Date(Date.UTC(2006, 0, 0, 0, 0, 0, null)).getUTCMilliseconds()); - reportCompare(expect, actual, summary + ': milliseconds null'); - - // - - expect = true; - actual = isNaN(new Date(Date.UTC(2006, 0, Infinity)).getUTCDate()); - reportCompare(expect, actual, summary + ': date Infinity'); - - expect = true; - actual = isNaN(new Date(Date.UTC(2006, 0, 0, Infinity)).getUTCHours()); - reportCompare(expect, actual, summary + ': hours Infinity'); - - expect = true; - actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, Infinity)).getUTCMinutes()); - reportCompare(expect, actual, summary + ': minutes Infinity'); - - expect = true; - actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, 0, Infinity)).getUTCSeconds()); - reportCompare(expect, actual, summary + ': seconds Infinity'); - - expect = true; - actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, 0, 0, Infinity)).getUTCMilliseconds()); - reportCompare(expect, actual, summary + ': milliseconds Infinity'); - - // - - expect = 31; - actual = (new Date(Date.UTC(2006, 0, -Infinity)).getUTCDate()); - reportCompare(expect, actual, summary + ': date -Infinity'); - - expect = 0; - actual = (new Date(Date.UTC(2006, 0, 0, -Infinity)).getUTCHours()); - reportCompare(expect, actual, summary + ': hours -Infinity'); - - expect = 0; - actual = (new Date(Date.UTC(2006, 0, 0, 0, -Infinity)).getUTCMinutes()); - reportCompare(expect, actual, summary + ': minutes -Infinity'); - - expect = 0; - actual = (new Date(Date.UTC(2006, 0, 0, 0, 0, -Infinity)).getUTCSeconds()); - reportCompare(expect, actual, summary + ': seconds -Infinity'); - - expect = 0; - actual = (new Date(Date.UTC(2006, 0, 0, 0, 0, 0, -Infinity)).getUTCMilliseconds()); - reportCompare(expect, actual, summary + ': milliseconds -Infinity'); - - // - - expect = true; - actual = isNaN(new Date(Date.UTC(2006, 0, NaN)).getUTCDate()); - reportCompare(expect, actual, summary + ': date NaN'); - - expect = true; - actual = isNaN(new Date(Date.UTC(2006, 0, 0, NaN)).getUTCHours()); - reportCompare(expect, actual, summary + ': hours NaN'); - - expect = true; - actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, NaN)).getUTCMinutes()); - reportCompare(expect, actual, summary + ': minutes NaN'); - - expect = true; - actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, 0, NaN)).getUTCSeconds()); - reportCompare(expect, actual, summary + ': seconds NaN'); - - expect = true; - actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, 0, 0, NaN)).getUTCMilliseconds()); - reportCompare(expect, actual, summary + ': milliseconds NaN'); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.5.3.js b/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.5.3.js deleted file mode 100644 index 6704f1fcad..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.5.3.js +++ /dev/null @@ -1,152 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/** - File Name: 15.9.5.3.js - ECMA Section: 15.9.5.3 Date.prototype.toDateString() - Description: - This function returns a string value. The contents of the string are - implementation dependent, but are intended to represent the "date" - portion of the Date in the current time zone in a convenient, - human-readable form. We can't test the content of the string, - but can verify that the string is parsable by Date.parse - - The toDateString function is not generic; it generates a runtime error - if its 'this' value is not a Date object. Therefore it cannot be transferred - to other kinds of objects for use as a method. - - Author: pschwartau@netscape.com - Date: 14 november 2000 (adapted from ecma/Date/15.9.5.2.js) -*/ - -var gTestfile = '15.9.5.3.js'; -var SECTION = "15.9.5.3"; -var VERSION = "ECMA_3"; -var TITLE = "Date.prototype.toDateString()"; - -var status = ''; -var actual = ''; -var expect = ''; - - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -// first, some generic tests - - -status = "typeof (now.toDateString())"; -actual = typeof (now.toDateString()); -expect = "string"; -addTestCase(); - -status = "Date.prototype.toDateString.length"; -actual = Date.prototype.toDateString.length; -expect = 0; -addTestCase(); - -/* - * Date.parse is accurate to the second; valueOf() to the millisecond. - * Here we expect them to coincide, as we expect a time of exactly - * midnight - - */ -status = "(Date.parse(now.toDateString()) - (midnight(now)).valueOf()) == 0"; -actual = (Date.parse(now.toDateString()) - (midnight(now)).valueOf()) == 0; -expect = true; -addTestCase(); - - - -// 1970 -addDateTestCase(0); -addDateTestCase(TZ_ADJUST); - - -// 1900 -addDateTestCase(TIME_1900); -addDateTestCase(TIME_1900 - TZ_ADJUST); - - -// 2000 -addDateTestCase(TIME_2000); -addDateTestCase(TIME_2000 - TZ_ADJUST); - - -// 29 Feb 2000 -addDateTestCase(UTC_29_FEB_2000); -addDateTestCase(UTC_29_FEB_2000 - 1000); -addDateTestCase(UTC_29_FEB_2000 - TZ_ADJUST); - - -// 2005 -addDateTestCase(UTC_1_JAN_2005); -addDateTestCase(UTC_1_JAN_2005 - 1000); -addDateTestCase(UTC_1_JAN_2005 - TZ_ADJUST); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - -function addTestCase() -{ - new TestCase( - SECTION, - status, - expect, - actual); -} - -function addDateTestCase(date_given_in_milliseconds) -{ - var givenDate = new Date(date_given_in_milliseconds); - - status = 'Date.parse(' + givenDate + ').toDateString())'; - actual = Date.parse(givenDate.toDateString()); - expect = Date.parse(midnight(givenDate)); - addTestCase(); -} - - -function midnight(givenDate) -{ - // midnight on the given date - - return new Date(givenDate.getFullYear(), givenDate.getMonth(), givenDate.getDate()); -} - diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.5.4.js b/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.5.4.js deleted file mode 100644 index a2643bfe3c..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.5.4.js +++ /dev/null @@ -1,185 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/** - File Name: 15.9.5.4.js - ECMA Section: 15.9.5.4 Date.prototype.toTimeString() - Description: - This function returns a string value. The contents of the string are - implementation dependent, but are intended to represent the "time" - portion of the Date in the current time zone in a convenient, - human-readable form. We test the content of the string by checking - that d.toDateString() + d.toTimeString() == d.toString() - - Author: pschwartau@netscape.com - Date: 14 november 2000 - Revised: 07 january 2002 because of a change in JS Date format: - - See http://bugzilla.mozilla.org/show_bug.cgi?id=118266 (SpiderMonkey) - See http://bugzilla.mozilla.org/show_bug.cgi?id=118636 (Rhino) -*/ -//----------------------------------------------------------------------------- -var gTestfile = '15.9.5.4.js'; -var SECTION = "15.9.5.4"; -var VERSION = "ECMA_3"; -var TITLE = "Date.prototype.toTimeString()"; - -var status = ''; -var actual = ''; -var expect = ''; -var givenDate; -var year = ''; -var regexp = ''; -var reducedDateString = ''; -var hopeThisIsTimeString = ''; -var cnEmptyString = ''; -var cnERR ='OOPS! FATAL ERROR: no regexp match in extractTimeString()'; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -// first, a couple of generic tests - - -status = "typeof (now.toTimeString())"; -actual = typeof (now.toTimeString()); -expect = "string"; -addTestCase(); - -status = "Date.prototype.toTimeString.length"; -actual = Date.prototype.toTimeString.length; -expect = 0; -addTestCase(); - -// 1970 -addDateTestCase(0); -addDateTestCase(TZ_ADJUST); - - -// 1900 -addDateTestCase(TIME_1900); -addDateTestCase(TIME_1900 - TZ_ADJUST); - - -// 2000 -addDateTestCase(TIME_2000); -addDateTestCase(TIME_2000 - TZ_ADJUST); - - -// 29 Feb 2000 -addDateTestCase(UTC_29_FEB_2000); -addDateTestCase(UTC_29_FEB_2000 - 1000); -addDateTestCase(UTC_29_FEB_2000 - TZ_ADJUST); - - -// Now -addDateTestCase( TIME_NOW); -addDateTestCase( TIME_NOW - TZ_ADJUST); - - -// 2005 -addDateTestCase(UTC_1_JAN_2005); -addDateTestCase(UTC_1_JAN_2005 - 1000); -addDateTestCase(UTC_1_JAN_2005 - TZ_ADJUST); - -//----------------------------------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------------------------------- - -function addTestCase() -{ - new TestCase( - SECTION, - status, - expect, - actual); -} - -function addDateTestCase(date_given_in_milliseconds) -{ - givenDate = new Date(date_given_in_milliseconds); - - status = '(' + givenDate + ').toTimeString()'; - actual = givenDate.toTimeString(); - expect = extractTimeString(givenDate); - addTestCase(); -} - - -/* - * As of 2002-01-07, the format for JavaScript dates changed. - * See http://bugzilla.mozilla.org/show_bug.cgi?id=118266 (SpiderMonkey) - * See http://bugzilla.mozilla.org/show_bug.cgi?id=118636 (Rhino) - * - * WAS: Mon Jan 07 13:40:34 GMT-0800 (Pacific Standard Time) 2002 - * NOW: Mon Jan 07 2002 13:40:34 GMT-0800 (Pacific Standard Time) - * - * Thus, use a regexp of the form /date.toDateString()(.*)$/ - * to capture the TimeString into the first backreference - - */ -function extractTimeString(date) -{ - regexp = new RegExp(date.toDateString() + '(.*)' + '$'); - - try - { - hopeThisIsTimeString = date.toString().match(regexp)[1]; - } - catch(e) - { - return cnERR; - } - - // trim any leading or trailing spaces - - return trimL(trimR(hopeThisIsTimeString)); -} - - -function trimL(s) -{ - if (!s) {return cnEmptyString;}; - for (var i = 0; i!=s.length; i++) {if (s[i] != ' ') {break;}} - return s.substring(i); -} - - -function trimR(s) -{ - if (!s) {return cnEmptyString;}; - for (var i = (s.length - 1); i!=-1; i--) {if (s[i] != ' ') {break;}} - return s.substring(0, i+1); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.5.5-02.js b/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.5.5-02.js deleted file mode 100755 index e3b073e7ec..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.5.5-02.js +++ /dev/null @@ -1,88 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '15.9.5.5-02.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 398485; -var summary = 'Date.prototype.toLocaleString should not clamp year'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - var d; - var y; - var l; - var maxms = 8640000000000000; - - d = new Date(-maxms ); - y = d.getFullYear(); - l = d.toLocaleString(); - print(l); - - actual = y; - expect = -271821; - reportCompare(expect, actual, summary + ': check year'); - - actual = l.match(new RegExp(y)) + ''; - expect = y + ''; - reportCompare(expect, actual, summary + ': check toLocaleString'); - - d = new Date(maxms ); - y = d.getFullYear(); - l = d.toLocaleString(); - print(l); - - actual = y; - expect = 275760; - reportCompare(expect, actual, summary + ': check year'); - - actual = l.match(new RegExp(y)) + ''; - expect = y + ''; - reportCompare(expect, actual, summary + ': check toLocaleString'); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.5.5.js b/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.5.5.js deleted file mode 100644 index 2b76fdcfc2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.5.5.js +++ /dev/null @@ -1,144 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '15.9.5.5.js'; - -/** - File Name: 15.9.5.5.js - ECMA Section: 15.9.5.5 Date.prototype.toLocaleString() - Description: - This function returns a string value. The contents of the string are - implementation dependent, but are intended to represent the "date" - portion of the Date in the current time zone in a convenient, - human-readable form. We can't test the content of the string, - but can verify that the string is parsable by Date.parse - - The toLocaleString function is not generic; it generates a runtime error - if its 'this' value is not a Date object. Therefore it cannot be transferred - to other kinds of objects for use as a method. - - Note: This test isn't supposed to work with a non-English locale per spec. - - Author: pschwartau@netscape.com - Date: 14 november 2000 -*/ - -var SECTION = "15.9.5.5"; -var VERSION = "ECMA_3"; -var TITLE = "Date.prototype.toLocaleString()"; - -var status = ''; -var actual = ''; -var expect = ''; - - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -// first, some generic tests - - -status = "typeof (now.toLocaleString())"; -actual = typeof (now.toLocaleString()); -expect = "string"; -addTestCase(); - -status = "Date.prototype.toLocaleString.length"; -actual = Date.prototype.toLocaleString.length; -expect = 0; -addTestCase(); - -// Date.parse is accurate to the second; valueOf() to the millisecond - -status = "Math.abs(Date.parse(now.toLocaleString()) - now.valueOf()) < 1000"; -actual = Math.abs(Date.parse(now.toLocaleString()) - now.valueOf()) < 1000; -expect = true; -addTestCase(); - - - -// 1970 -addDateTestCase(0); -addDateTestCase(TZ_ADJUST); - - -// 1900 -addDateTestCase(TIME_1900); -addDateTestCase(TIME_1900 -TZ_ADJUST); - - -// 2000 -addDateTestCase(TIME_2000); -addDateTestCase(TIME_2000 -TZ_ADJUST); - - -// 29 Feb 2000 -addDateTestCase(UTC_29_FEB_2000); -addDateTestCase(UTC_29_FEB_2000 - 1000); -addDateTestCase(UTC_29_FEB_2000 - TZ_ADJUST); - - -// 2005 -addDateTestCase(UTC_1_JAN_2005); -addDateTestCase(UTC_1_JAN_2005 - 1000); -addDateTestCase(UTC_1_JAN_2005-TZ_ADJUST); - - - -//----------------------------------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------------------------------- - - -function addTestCase() -{ - AddTestCase( - status, - expect, - actual); -} - - -function addDateTestCase(date_given_in_milliseconds) -{ - var givenDate = new Date(date_given_in_milliseconds); - - status = 'Date.parse(' + givenDate + ').toLocaleString())'; - actual = Date.parse(givenDate.toLocaleString()); - expect = date_given_in_milliseconds; - addTestCase(); -} - diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.5.6.js b/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.5.6.js deleted file mode 100644 index 004fbce2e0..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.5.6.js +++ /dev/null @@ -1,153 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '15.9.5.6.js'; - -/** - File Name: 15.9.5.6.js - ECMA Section: 15.9.5.6 Date.prototype.toLocaleDateString() - Description: - This function returns a string value. The contents of the string are - implementation dependent, but are intended to represent the "date" - portion of the Date in the current time zone in a convenient, - human-readable form. We can't test the content of the string, - but can verify that the string is parsable by Date.parse - - The toLocaleDateString function is not generic; it generates a runtime error - if its 'this' value is not a Date object. Therefore it cannot be transferred - to other kinds of objects for use as a method. - - Note: This test isn't supposed to work with a non-English locale per spec. - - Author: pschwartau@netscape.com - Date: 14 november 2000 -*/ - -var SECTION = "15.9.5.6"; -var VERSION = "ECMA_3"; -var TITLE = "Date.prototype.toLocaleDateString()"; - -var status = ''; -var actual = ''; -var expect = ''; - - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -// first, some generic tests - - -status = "typeof (now.toLocaleDateString())"; -actual = typeof (now.toLocaleDateString()); -expect = "string"; -addTestCase(); - -status = "Date.prototype.toLocaleDateString.length"; -actual = Date.prototype.toLocaleDateString.length; -expect = 0; -addTestCase(); - -/* Date.parse is accurate to the second; valueOf() to the millisecond. - Here we expect them to coincide, as we expect a time of exactly midnight - */ -status = "(Date.parse(now.toLocaleDateString()) - (midnight(now)).valueOf()) == 0"; -actual = (Date.parse(now.toLocaleDateString()) - (midnight(now)).valueOf()) == 0; -expect = true; -addTestCase(); - - - -// 1970 -addDateTestCase(0); -addDateTestCase(TZ_ADJUST); - - -// 1900 -addDateTestCase(TIME_1900); -addDateTestCase(TIME_1900 - TZ_ADJUST); - - -// 2000 -addDateTestCase(TIME_2000); -addDateTestCase(TIME_2000 - TZ_ADJUST); - - -// 29 Feb 2000 -addDateTestCase(UTC_29_FEB_2000); -addDateTestCase(UTC_29_FEB_2000 - 1000); -addDateTestCase(UTC_29_FEB_2000 - TZ_ADJUST); - - -// 2005 -addDateTestCase(UTC_1_JAN_2005); -addDateTestCase(UTC_1_JAN_2005 - 1000); -addDateTestCase(UTC_1_JAN_2005 - TZ_ADJUST); - - - -//----------------------------------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------------------------------- - - -function addTestCase() -{ - new TestCase( - gTestfile, - status, - expect, - actual); -} - - -function addDateTestCase(date_given_in_milliseconds) -{ - var givenDate = new Date(date_given_in_milliseconds); - - status = 'Date.parse(' + givenDate + ').toLocaleDateString())'; - actual = Date.parse(givenDate.toLocaleDateString()); - expect = Date.parse(midnight(givenDate)); - addTestCase(); -} - - -function midnight(givenDate) -{ - // midnight on the given date - - return new Date(givenDate.getFullYear(), givenDate.getMonth(), givenDate.getDate()); -} - diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.5.7.js b/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.5.7.js deleted file mode 100644 index 00d2541803..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Date/15.9.5.7.js +++ /dev/null @@ -1,142 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/** - File Name: 15.9.5.7.js - ECMA Section: 15.9.5.7 Date.prototype.toLocaleTimeString() - Description: - This function returns a string value. The contents of the string are - implementation dependent, but are intended to represent the "time" - portion of the Date in the current time zone in a convenient, - human-readable form. We test the content of the string by checking - that - - new Date(d.toDateString() + " " + d.toLocaleTimeString()) == d - - Author: pschwartau@netscape.com - Date: 14 november 2000 - Revised: 07 january 2002 because of a change in JS Date format: - Revised: 21 November 2005 since the string comparison stuff is horked. - bclary - - See http://bugzilla.mozilla.org/show_bug.cgi?id=118266 (SpiderMonkey) - See http://bugzilla.mozilla.org/show_bug.cgi?id=118636 (Rhino) -*/ -//----------------------------------------------------------------------------- -var gTestfile = '15.9.5.7.js'; -var SECTION = "15.9.5.7"; -var VERSION = "ECMA_3"; -var TITLE = "Date.prototype.toLocaleTimeString()"; - -var status = ''; -var actual = ''; -var expect = ''; -var givenDate; -var year = ''; -var regexp = ''; -var TimeString = ''; -var reducedDateString = ''; -var hopeThisIsLocaleTimeString = ''; -var cnERR ='OOPS! FATAL ERROR: no regexp match in extractLocaleTimeString()'; - -startTest(); -writeHeaderToLog( SECTION + " "+ TITLE); - -// first, a couple generic tests - - -status = "typeof (now.toLocaleTimeString())"; -actual = typeof (now.toLocaleTimeString()); -expect = "string"; -addTestCase(); - -status = "Date.prototype.toLocaleTimeString.length"; -actual = Date.prototype.toLocaleTimeString.length; -expect = 0; -addTestCase(); - -// 1970 -addDateTestCase(0); -addDateTestCase(TZ_ADJUST); - -// 1900 -addDateTestCase(TIME_1900); -addDateTestCase(TIME_1900 - TZ_ADJUST); - -// 2000 -addDateTestCase(TIME_2000); -addDateTestCase(TIME_2000 - TZ_ADJUST); - -// 29 Feb 2000 -addDateTestCase(UTC_29_FEB_2000); -addDateTestCase(UTC_29_FEB_2000 - 1000); -addDateTestCase(UTC_29_FEB_2000 - TZ_ADJUST); - -// Now -addDateTestCase( TIME_NOW); -addDateTestCase( TIME_NOW - TZ_ADJUST); - -// 2005 -addDateTestCase(UTC_1_JAN_2005); -addDateTestCase(UTC_1_JAN_2005 - 1000); -addDateTestCase(UTC_1_JAN_2005 - TZ_ADJUST); - -test(); - -function addTestCase() -{ - new TestCase( - SECTION, - status, - expect, - actual); -} - - -function addDateTestCase(date_given_in_milliseconds) -{ - var s = 'new Date(' + date_given_in_milliseconds + ')'; - givenDate = new Date(date_given_in_milliseconds); - - status = 'd = ' + s + - '; d == new Date(d.toDateString() + " " + d.toLocaleTimeString())'; - expect = givenDate.toString(); - actual = new Date(givenDate.toDateString() + - ' ' + givenDate.toLocaleTimeString()).toString(); - addTestCase(); -} - diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Date/browser.js b/tests/auto/declarative/parserstress/tests/ecma_3/Date/browser.js deleted file mode 100644 index 4cde9b0629..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Date/browser.js +++ /dev/null @@ -1,37 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Date/shell.js b/tests/auto/declarative/parserstress/tests/ecma_3/Date/shell.js deleted file mode 100644 index 6111c3b934..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Date/shell.js +++ /dev/null @@ -1,564 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -gTestsubsuite = 'Date'; - -/* - * Date functions used by tests in Date suite - * - */ -var msPerDay = 86400000; -var HoursPerDay = 24; -var MinutesPerHour = 60; -var SecondsPerMinute = 60; -var msPerSecond = 1000; -var msPerMinute = 60000; // msPerSecond * SecondsPerMinute -var msPerHour = 3600000; // msPerMinute * MinutesPerHour -var TZ_DIFF = getTimeZoneDiff(); // offset of tester's timezone from UTC -var TZ_ADJUST = TZ_DIFF * msPerHour; -var TZ_PST = -8; // offset of Pacific Standard Time from UTC -var PST_DIFF = TZ_DIFF - TZ_PST; // offset of tester's timezone from PST -var TIME_1970 = 0; -var TIME_2000 = 946684800000; -var TIME_1900 = -2208988800000; -var UTC_29_FEB_2000 = TIME_2000 + 31*msPerDay + 28*msPerDay; -var UTC_1_JAN_2005 = TIME_2000 + TimeInYear(2000) + TimeInYear(2001) + - TimeInYear(2002) + TimeInYear(2003) + TimeInYear(2004); -var now = new Date(); -var TIME_NOW = now.valueOf(); //valueOf() is to accurate to the millisecond - //Date.parse() is accurate only to the second - -/* - * Originally, the test suite used a hard-coded value TZ_DIFF = -8. - * But that was only valid for testers in the Pacific Standard Time Zone! - * We calculate the proper number dynamically for any tester. We just - * have to be careful not to use a date subject to Daylight Savings Time... - */ -function getTimeZoneDiff() -{ - return -((new Date(2000, 1, 1)).getTimezoneOffset())/60; -} - - -/* - * Date test "ResultArrays" are hard-coded for Pacific Standard Time. - * We must adjust them for the tester's own timezone - - */ -function adjustResultArray(ResultArray, msMode) -{ - // If the tester's system clock is in PST, no need to continue - - if (!PST_DIFF) {return;} - - /* The date gTestcases instantiate Date objects in two different ways: - * - * millisecond mode: e.g. dt = new Date(10000000); - * year-month-day mode: dt = new Date(2000, 5, 1, ...); - * - * In the first case, the date is measured from Time 0 in Greenwich (i.e. UTC). - * In the second case, it is measured with reference to the tester's local timezone. - * - * In the first case we must correct those values expected for local measurements, - * like dt.getHours() etc. No correction is necessary for dt.getUTCHours() etc. - * - * In the second case, it is exactly the other way around - - */ - if (msMode) - { - // The hard-coded UTC milliseconds from Time 0 derives from a UTC date. - // Shift to the right by the offset between UTC and the tester. - var t = ResultArray[TIME] + TZ_DIFF*msPerHour; - - // Use our date arithmetic functions to determine the local hour, day, etc. - ResultArray[HOURS] = HourFromTime(t); - ResultArray[DAY] = WeekDay(t); - ResultArray[DATE] = DateFromTime(t); - ResultArray[MONTH] = MonthFromTime(t); - ResultArray[YEAR] = YearFromTime(t); - } - else - { - // The hard-coded UTC milliseconds from Time 0 derives from a PST date. - // Shift to the left by the offset between PST and the tester. - var t = ResultArray[TIME] - PST_DIFF*msPerHour; - - // Use our date arithmetic functions to determine the UTC hour, day, etc. - ResultArray[TIME] = t; - ResultArray[UTC_HOURS] = HourFromTime(t); - ResultArray[UTC_DAY] = WeekDay(t); - ResultArray[UTC_DATE] = DateFromTime(t); - ResultArray[UTC_MONTH] = MonthFromTime(t); - ResultArray[UTC_YEAR] = YearFromTime(t); - } -} - - -function Day( t ) { - return ( Math.floor(t/msPerDay ) ); -} -function DaysInYear( y ) { - if ( y % 4 != 0 ) { - return 365; - } - if ( (y % 4 == 0) && (y % 100 != 0) ) { - return 366; - } - if ( (y % 100 == 0) && (y % 400 != 0) ) { - return 365; - } - if ( (y % 400 == 0) ){ - return 366; - } else { - return "ERROR: DaysInYear(" + y + ") case not covered"; - } -} -function TimeInYear( y ) { - return ( DaysInYear(y) * msPerDay ); -} -function DayNumber( t ) { - return ( Math.floor( t / msPerDay ) ); -} -function TimeWithinDay( t ) { - - var r = t % msPerDay; - - if (r < 0) - { - r += msPerDay; - } - return r; - -} -function YearNumber( t ) { -} -function TimeFromYear( y ) { - return ( msPerDay * DayFromYear(y) ); -} -function DayFromYear( y ) { - return ( 365*(y-1970) + - Math.floor((y-1969)/4) - - Math.floor((y-1901)/100) + - Math.floor((y-1601)/400) ); -} -function InLeapYear( t ) { - if ( DaysInYear(YearFromTime(t)) == 365 ) { - return 0; - } - if ( DaysInYear(YearFromTime(t)) == 366 ) { - return 1; - } else { - return "ERROR: InLeapYear("+ t + ") case not covered"; - } -} -function YearFromTime( t ) { - t = Number( t ); - var sign = ( t < 0 ) ? -1 : 1; - var year = ( sign < 0 ) ? 1969 : 1970; - for ( var timeToTimeZero = t; ; ) { - // subtract the current year's time from the time that's left. - timeToTimeZero -= sign * TimeInYear(year) - - // if there's less than the current year's worth of time left, then break. - if ( sign < 0 ) { - if ( sign * timeToTimeZero <= 0 ) { - break; - } else { - year += sign; - } - } else { - if ( sign * timeToTimeZero < 0 ) { - break; - } else { - year += sign; - } - } - } - return ( year ); -} -function MonthFromTime( t ) { - // i know i could use switch but i'd rather not until it's part of ECMA - var day = DayWithinYear( t ); - var leap = InLeapYear(t); - - if ( (0 <= day) && (day < 31) ) { - return 0; - } - if ( (31 <= day) && (day < (59+leap)) ) { - return 1; - } - if ( ((59+leap) <= day) && (day < (90+leap)) ) { - return 2; - } - if ( ((90+leap) <= day) && (day < (120+leap)) ) { - return 3; - } - if ( ((120+leap) <= day) && (day < (151+leap)) ) { - return 4; - } - if ( ((151+leap) <= day) && (day < (181+leap)) ) { - return 5; - } - if ( ((181+leap) <= day) && (day < (212+leap)) ) { - return 6; - } - if ( ((212+leap) <= day) && (day < (243+leap)) ) { - return 7; - } - if ( ((243+leap) <= day) && (day < (273+leap)) ) { - return 8; - } - if ( ((273+leap) <= day) && (day < (304+leap)) ) { - return 9; - } - if ( ((304+leap) <= day) && (day < (334+leap)) ) { - return 10; - } - if ( ((334+leap) <= day) && (day < (365+leap)) ) { - return 11; - } else { - return "ERROR: MonthFromTime("+t+") not known"; - } -} -function DayWithinYear( t ) { - return( Day(t) - DayFromYear(YearFromTime(t))); -} -function DateFromTime( t ) { - var day = DayWithinYear(t); - var month = MonthFromTime(t); - - if ( month == 0 ) { - return ( day + 1 ); - } - if ( month == 1 ) { - return ( day - 30 ); - } - if ( month == 2 ) { - return ( day - 58 - InLeapYear(t) ); - } - if ( month == 3 ) { - return ( day - 89 - InLeapYear(t)); - } - if ( month == 4 ) { - return ( day - 119 - InLeapYear(t)); - } - if ( month == 5 ) { - return ( day - 150- InLeapYear(t)); - } - if ( month == 6 ) { - return ( day - 180- InLeapYear(t)); - } - if ( month == 7 ) { - return ( day - 211- InLeapYear(t)); - } - if ( month == 8 ) { - return ( day - 242- InLeapYear(t)); - } - if ( month == 9 ) { - return ( day - 272- InLeapYear(t)); - } - if ( month == 10 ) { - return ( day - 303- InLeapYear(t)); - } - if ( month == 11 ) { - return ( day - 333- InLeapYear(t)); - } - - return ("ERROR: DateFromTime("+t+") not known" ); -} -function WeekDay( t ) { - var weekday = (Day(t)+4) % 7; - return( weekday < 0 ? 7 + weekday : weekday ); -} - -// missing daylight savings time adjustment - -function HourFromTime( t ) { - var h = Math.floor( t / msPerHour ) % HoursPerDay; - return ( (h<0) ? HoursPerDay + h : h ); -} -function MinFromTime( t ) { - var min = Math.floor( t / msPerMinute ) % MinutesPerHour; - return( ( min < 0 ) ? MinutesPerHour + min : min ); -} -function SecFromTime( t ) { - var sec = Math.floor( t / msPerSecond ) % SecondsPerMinute; - return ( (sec < 0 ) ? SecondsPerMinute + sec : sec ); -} -function msFromTime( t ) { - var ms = t % msPerSecond; - return ( (ms < 0 ) ? msPerSecond + ms : ms ); -} -function LocalTZA() { - return ( TZ_DIFF * msPerHour ); -} -function UTC( t ) { - return ( t - LocalTZA() - DaylightSavingTA(t - LocalTZA()) ); -} - -function DaylightSavingTA( t ) { - t = t - LocalTZA(); - - var dst_start = GetDSTStart(t); - var dst_end = GetDSTEnd(t); - - if ( t >= dst_start && t < dst_end ) - return msPerHour; - - return 0; -} - -function GetFirstSundayInMonth( t, m ) { - var year = YearFromTime(t); - var leap = InLeapYear(t); - -// month m 0..11 -// april == 3 -// march == 2 - - // set time to first day of month m - var time = TimeFromYear(year); - for (var i = 0; i < m; ++i) - { - time += TimeInMonth(i, leap); - } - - for ( var first_sunday = time; WeekDay(first_sunday) > 0; - first_sunday += msPerDay ) - { - ; - } - - return first_sunday; -} - -function GetLastSundayInMonth( t, m ) { - var year = YearFromTime(t); - var leap = InLeapYear(t); - -// month m 0..11 -// april == 3 -// march == 2 - - // first day of following month - var time = TimeFromYear(year); - for (var i = 0; i <= m; ++i) - { - time += TimeInMonth(i, leap); - } - // prev day == last day of month - time -= msPerDay; - - for ( var last_sunday = time; WeekDay(last_sunday) > 0; - last_sunday -= msPerDay ) - { - ; - } - return last_sunday; -} - -/* - 15.9.1.9 Daylight Saving Time Adjustment - - The implementation of ECMAScript should not try to determine whether - the exact time was subject to daylight saving time, but just whether - daylight saving time would have been in effect if the current - daylight saving time algorithm had been used at the time. This avoids - complications such as taking into account the years that the locale - observed daylight saving time year round. -*/ - -/* - US DST algorithm - - Before 2007, DST starts first Sunday in April at 2 AM and ends last - Sunday in October at 2 AM - - Starting in 2007, DST starts second Sunday in March at 2 AM and ends - first Sunday in November at 2 AM - - Note that different operating systems behave differently. - - Fully patched Windows XP uses the 2007 algorithm for all dates while - fully patched Fedora Core 6 and RHEL 4 Linux use the algorithm in - effect at the time. - - Since pre-2007 DST is a subset of 2007 DST rules, this only affects - tests that occur in the period Mar-Apr and Oct-Nov where the two - algorithms do not agree. - -*/ - -function GetDSTStart( t ) -{ - return (GetFirstSundayInMonth(t, 2) + 7*msPerDay + 2*msPerHour - LocalTZA()); -} - -function GetDSTEnd( t ) -{ - return (GetFirstSundayInMonth(t, 10) + 2*msPerHour - LocalTZA()); -} - -function GetOldDSTStart( t ) -{ - return (GetFirstSundayInMonth(t, 3) + 2*msPerHour - LocalTZA()); -} - -function GetOldDSTEnd( t ) -{ - return (GetLastSundayInMonth(t, 9) + 2*msPerHour - LocalTZA()); -} - -function LocalTime( t ) { - return ( t + LocalTZA() + DaylightSavingTA(t) ); -} -function MakeTime( hour, min, sec, ms ) { - if ( isNaN( hour ) || isNaN( min ) || isNaN( sec ) || isNaN( ms ) ) { - return Number.NaN; - } - - hour = ToInteger(hour); - min = ToInteger( min); - sec = ToInteger( sec); - ms = ToInteger( ms ); - - return( (hour*msPerHour) + (min*msPerMinute) + - (sec*msPerSecond) + ms ); -} -function MakeDay( year, month, date ) { - if ( isNaN(year) || isNaN(month) || isNaN(date) ) { - return Number.NaN; - } - year = ToInteger(year); - month = ToInteger(month); - date = ToInteger(date ); - - var sign = ( year < 1970 ) ? -1 : 1; - var t = ( year < 1970 ) ? 1 : 0; - var y = ( year < 1970 ) ? 1969 : 1970; - - var result5 = year + Math.floor( month/12 ); - var result6 = month % 12; - - if ( year < 1970 ) { - for ( y = 1969; y >= year; y += sign ) { - t += sign * TimeInYear(y); - } - } else { - for ( y = 1970 ; y < year; y += sign ) { - t += sign * TimeInYear(y); - } - } - - var leap = InLeapYear( t ); - - for ( var m = 0; m < month; m++ ) { - t += TimeInMonth( m, leap ); - } - - if ( YearFromTime(t) != result5 ) { - return Number.NaN; - } - if ( MonthFromTime(t) != result6 ) { - return Number.NaN; - } - if ( DateFromTime(t) != 1 ) { - return Number.NaN; - } - - return ( (Day(t)) + date - 1 ); -} -function TimeInMonth( month, leap ) { - // september april june november - // jan 0 feb 1 mar 2 apr 3 may 4 june 5 jul 6 - // aug 7 sep 8 oct 9 nov 10 dec 11 - - if ( month == 3 || month == 5 || month == 8 || month == 10 ) { - return ( 30*msPerDay ); - } - - // all the rest - if ( month == 0 || month == 2 || month == 4 || month == 6 || - month == 7 || month == 9 || month == 11 ) { - return ( 31*msPerDay ); - } - - // save february - return ( (leap == 0) ? 28*msPerDay : 29*msPerDay ); -} -function MakeDate( day, time ) { - if ( day == Number.POSITIVE_INFINITY || - day == Number.NEGATIVE_INFINITY ) { - return Number.NaN; - } - if ( time == Number.POSITIVE_INFINITY || - time == Number.NEGATIVE_INFINITY ) { - return Number.NaN; - } - return ( day * msPerDay ) + time; -} -function TimeClip( t ) { - if ( isNaN( t ) ) { - return ( Number.NaN ); - } - if ( Math.abs( t ) > 8.64e15 ) { - return ( Number.NaN ); - } - - return ( ToInteger( t ) ); -} -function ToInteger( t ) { - t = Number( t ); - - if ( isNaN( t ) ){ - return ( Number.NaN ); - } - if ( t == 0 || t == -0 || - t == Number.POSITIVE_INFINITY || t == Number.NEGATIVE_INFINITY ) { - return 0; - } - - var sign = ( t < 0 ) ? -1 : 1; - - return ( sign * Math.floor( Math.abs( t ) ) ); -} -function Enumerate ( o ) { - var p; - for ( p in o ) { - print( p +": " + o[p] ); - } -} - diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/15.11.1.1.js b/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/15.11.1.1.js deleted file mode 100644 index 6910d76f15..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/15.11.1.1.js +++ /dev/null @@ -1,137 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * joerg.schaible@gmx.de - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 27 Nov 2002 - * SUMMARY: Ensuring normal function call of Error (ECMA-262 Ed.3 15.11.1.1). - */ -//----------------------------------------------------------------------------- -var gTestfile = '15.11.1.1.js'; -var UBound = 0; -var BUGNUMBER = ''; -var summary = 'Ensuring normal function call of Error (ECMA-262 Ed.3 15.11.1.1)'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; -var EMPTY_STRING = ''; -var EXPECTED_FORMAT = 0; - - -function otherScope(msg) -{ - return Error(msg); -} - - -status = inSection(1); -var err1 = Error('msg1'); -actual = examineThis(err1, 'msg1'); -expect = EXPECTED_FORMAT; -addThis(); - -status = inSection(2); -var err2 = otherScope('msg2'); -actual = examineThis(err2, 'msg2'); -expect = EXPECTED_FORMAT; -addThis(); - -status = inSection(3); -var err3 = otherScope(); -actual = examineThis(err3, EMPTY_STRING); -expect = EXPECTED_FORMAT; -addThis(); - -status = inSection(4); -var err4 = eval("Error('msg4')"); -actual = examineThis(err4, 'msg4'); -expect = EXPECTED_FORMAT; -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -/* - * Searches err.toString() for err.name + ':' + err.message, - * with possible whitespace on each side of the colon sign. - * - * We allow for no colon in case err.message was not provided by the user. - * In such a case, SpiderMonkey and Rhino currently set err.message = '', - * as allowed for by ECMA 15.11.4.3. This makes |pattern| work in this case. - * - * If this is ever changed to a non-empty string, e.g. 'undefined', - * you may have to modify |pattern| to take that into account - - * - */ -function examineThis(err, msg) -{ - var pattern = err.name + '\\s*:?\\s*' + msg; - return err.toString().search(RegExp(pattern)); -} - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/15.11.4.4-1.js b/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/15.11.4.4-1.js deleted file mode 100644 index 00f9503041..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/15.11.4.4-1.js +++ /dev/null @@ -1,174 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2001 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * d-russo@ti.com, pschwartau@netscape.com, joerg.schaible@gmx.de - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 22 Jan 2002 - * SUMMARY: Testing Error.prototype.toString() - * - * Revised: 25 Nov 2002 - * See http://bugzilla.mozilla.org/show_bug.cgi?id=181909 - * - * Note that ECMA-262 3rd Edition Final, Section 15.11.4.4 states that - * Error.prototype.toString() returns an implementation-dependent string. - * Therefore any testcase on this property is somewhat arbitrary. - * - * However, d-russo@ti.com pointed out that Rhino was returning this: - * - * js> err = new Error() - * undefined: undefined - * - * js> err = new Error("msg") - * undefined: msg - * - * - * We expect Rhino to return what SpiderMonkey currently does: - * - * js> err = new Error() - * Error - * - * js> err = new Error("msg") - * Error: msg - * - * - * i.e. we expect err.toString() === err.name if err.message is not defined; - * otherwise, we expect err.toString() === err.name + ': ' + err.message. - * - * See also ECMA 15.11.4.2, 15.11.4.3 - */ -//----------------------------------------------------------------------------- -var gTestfile = '15.11.4.4-1.js'; -var UBound = 0; -var BUGNUMBER = '(none)'; -var summary = 'Testing Error.prototype.toString()'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; -var EMPTY_STRING = ''; -var EXPECTED_FORMAT = 0; - - -status = inSection(1); -var err1 = new Error('msg1'); -actual = examineThis(err1, 'msg1'); -expect = EXPECTED_FORMAT; -addThis(); - -status = inSection(2); -var err2 = new Error(err1); -actual = examineThis(err2, err1); -expect = EXPECTED_FORMAT; -addThis(); - -status = inSection(3); -var err3 = new Error(); -actual = examineThis(err3, EMPTY_STRING); -expect = EXPECTED_FORMAT; -addThis(); - -status = inSection(4); -var err4 = new Error(EMPTY_STRING); -actual = examineThis(err4, EMPTY_STRING); -expect = EXPECTED_FORMAT; -addThis(); - -// now generate a run-time error - -status = inSection(5); -try -{ - eval('1=2'); -} -catch(err5) -{ - actual = examineThis(err5, '.*'); -} -expect = EXPECTED_FORMAT; -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -/* - * Searches err.toString() for err.name + ':' + err.message, - * with possible whitespace on each side of the colon sign. - * - * We allow for no colon in case err.message was not provided by the user. - * In such a case, SpiderMonkey and Rhino currently set err.message = '', - * as allowed for by ECMA 15.11.4.3. This makes |pattern| work in this case. - * - * If this is ever changed to a non-empty string, e.g. 'undefined', - * you may have to modify |pattern| to take that into account - - * - */ -function examineThis(err, msg) -{ - var pattern = err.name + '\\s*:?\\s*' + msg; - return err.toString().search(RegExp(pattern)); -} - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/15.11.7.6-001.js b/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/15.11.7.6-001.js deleted file mode 100644 index c6248cc7c1..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/15.11.7.6-001.js +++ /dev/null @@ -1,130 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * igor@fastmail.fm, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 14 April 2003 - * SUMMARY: Prototype of predefined error objects should be DontEnum - * See http://bugzilla.mozilla.org/show_bug.cgi?id=201989 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = '15.11.7.6-001.js'; -var UBound = 0; -var BUGNUMBER = 201989; -var summary = 'Prototype of predefined error objects should be DontEnum'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -/* - * Tests that |F.prototype| is not enumerable in |F| - */ -function testDontEnum(F) -{ - var proto = F.prototype; - - for (var prop in F) - { - if (F[prop] === proto) - return false; - } - return true; -} - - -var list = [ - "Error", - "ConversionError", - "EvalError", - "RangeError", - "ReferenceError", - "SyntaxError", - "TypeError", - "URIError" - ]; - - -for (i in list) -{ - var F = this[list[i]]; - - // Test for |F|; e.g. Rhino defines |ConversionError| while SM does not. - if (F) - { - status = 'Testing DontEnum attribute of |' + list[i] + '.prototype|'; - actual = testDontEnum(F); - expect = true; - addThis(); - } -} - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/15.11.7.6-002.js b/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/15.11.7.6-002.js deleted file mode 100644 index a9da1c4e4e..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/15.11.7.6-002.js +++ /dev/null @@ -1,132 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * igor@fastmail.fm, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 14 April 2003 - * SUMMARY: Prototype of predefined error objects should be DontDelete - * See http://bugzilla.mozilla.org/show_bug.cgi?id=201989 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = '15.11.7.6-002.js'; -var UBound = 0; -var BUGNUMBER = 201989; -var summary = 'Prototype of predefined error objects should be DontDelete'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -/* - * Tests that |F.prototype| is DontDelete - */ -function testDontDelete(F) -{ - var e; - var orig = F.prototype; - try - { - delete F.prototype; - } - catch (e) - { - } - return F.prototype === orig; -} - - -var list = [ - "Error", - "ConversionError", - "EvalError", - "RangeError", - "ReferenceError", - "SyntaxError", - "TypeError", - "URIError" - ]; - - -for (i in list) -{ - var F = this[list[i]]; - - // Test for |F|; e.g. Rhino defines |ConversionError| while SM does not. - if (F) - { - status = 'Testing DontDelete attribute of |' + list[i] + '.prototype|'; - actual = testDontDelete(F); - expect = true; - addThis(); - } -} - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/15.11.7.6-003.js b/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/15.11.7.6-003.js deleted file mode 100644 index af45b2112d..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/15.11.7.6-003.js +++ /dev/null @@ -1,132 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * igor@fastmail.fm, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 14 April 2003 - * SUMMARY: Prototype of predefined error objects should be ReadOnly - * See http://bugzilla.mozilla.org/show_bug.cgi?id=201989 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = '15.11.7.6-003.js'; -var UBound = 0; -var BUGNUMBER = 201989; -var summary = 'Prototype of predefined error objects should be ReadOnly'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -/* - * Tests that |F.prototype| is ReadOnly - */ -function testReadOnly(F) -{ - var e; - var orig = F.prototype; - try - { - F.prototype = new Object(); - } - catch (e) - { - } - return F.prototype === orig; -} - - -var list = [ - "Error", - "ConversionError", - "EvalError", - "RangeError", - "ReferenceError", - "SyntaxError", - "TypeError", - "URIError" - ]; - - -for (i in list) -{ - var F = this[list[i]]; - - // Test for |F|; e.g. Rhino defines |ConversionError| while SM does not. - if (F) - { - status = 'Testing ReadOnly attribute of |' + list[i] + '.prototype|'; - actual = testReadOnly(F); - expect = true; - addThis(); - } -} - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/binding-001.js b/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/binding-001.js deleted file mode 100644 index ea2dd6042f..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/binding-001.js +++ /dev/null @@ -1,128 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * brendan@mozilla.org, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 2001-08-27 - * - * SUMMARY: Testing binding of function names - * - * Brendan: - * - * "... the question is, does Rhino bind 'sum' in the global object - * for the following test? If it does, it's buggy. - * - * var f = function sum(){}; - * print(sum); // should fail with 'sum is not defined' " - * - */ - -//----------------------------------------------------------------------------- -var gTestfile = 'binding-001.js'; -var UBound = 0; -var BUGNUMBER = '(none)'; -var summary = 'Testing binding of function names'; -var ERR_REF_YES = 'ReferenceError'; -var ERR_REF_NO = 'did NOT generate a ReferenceError'; -var statusitems = []; -var actualvalues = []; -var expectedvalues = []; -var status = summary; -var actual = ERR_REF_NO; -var expect= ERR_REF_YES; - - -try -{ - var f = function sum(){}; - print(sum); -} -catch (e) -{ - status = 'Section 1 of test'; - actual = e instanceof ReferenceError; - expect = true; - addThis(); - - - /* - * This test is more literal, and one day may not be valid. - * Searching for literal string "ReferenceError" in e.toString() - */ - status = 'Section 2 of test'; - var match = e.toString().search(/ReferenceError/); - actual = (match > -1); - expect = true; - addThis(); -} - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = isReferenceError(actual); - expectedvalues[UBound] = isReferenceError(expect); - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} - - -// converts a Boolean result into a textual result - -function isReferenceError(bResult) -{ - return bResult? ERR_REF_YES : ERR_REF_NO; -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/browser.js b/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/browser.js deleted file mode 100644 index e69de29bb2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/browser.js +++ /dev/null diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/regress-181654.js b/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/regress-181654.js deleted file mode 100644 index 3fe80f15ac..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/regress-181654.js +++ /dev/null @@ -1,155 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * joerg.schaible@gmx.de - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 23 Nov 2002 - * SUMMARY: Calling toString for an object derived from the Error class - * results in an TypeError (Rhino only) - * See http://bugzilla.mozilla.org/show_bug.cgi?id=181654 - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-181654.js'; -var UBound = 0; -var BUGNUMBER = '181654'; -var summary = 'Calling toString for an object derived from the Error class should be possible.'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; -var EMPTY_STRING = ''; -var EXPECTED_FORMAT = 0; - - -// derive MyError from Error -function MyError( msg ) -{ - this.message = msg; -} -MyError.prototype = new Error(); -MyError.prototype.name = "MyError"; - - -status = inSection(1); -var err1 = new MyError('msg1'); -actual = examineThis(err1, 'msg1'); -expect = EXPECTED_FORMAT; -addThis(); - -status = inSection(2); -var err2 = new MyError(String(err1)); -actual = examineThis(err2, err1); -expect = EXPECTED_FORMAT; -addThis(); - -status = inSection(3); -var err3 = new MyError(); -actual = examineThis(err3, EMPTY_STRING); -expect = EXPECTED_FORMAT; -addThis(); - -status = inSection(4); -var err4 = new MyError(EMPTY_STRING); -actual = examineThis(err4, EMPTY_STRING); -expect = EXPECTED_FORMAT; -addThis(); - -// now generate an error - -status = inSection(5); -try -{ - throw new MyError("thrown"); -} -catch(err5) -{ - actual = examineThis(err5, "thrown"); -} -expect = EXPECTED_FORMAT; -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -/* - * Searches err.toString() for err.name + ':' + err.message, - * with possible whitespace on each side of the colon sign. - * - * We allow for no colon in case err.message was not provided by the user. - * In such a case, SpiderMonkey and Rhino currently set err.message = '', - * as allowed for by ECMA 15.11.4.3. This makes |pattern| work in this case. - * - * If this is ever changed to a non-empty string, e.g. 'undefined', - * you may have to modify |pattern| to take that into account - - * - */ -function examineThis(err, msg) -{ - var pattern = err.name + '\\s*:?\\s*' + msg; - return err.toString().search(RegExp(pattern)); -} - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/regress-181914.js b/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/regress-181914.js deleted file mode 100644 index f4d1f224c8..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/regress-181914.js +++ /dev/null @@ -1,194 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * joerg.schaible@gmx.de, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 25 Nov 2002 - * SUMMARY: Calling a user-defined superconstructor - * See http://bugzilla.mozilla.org/show_bug.cgi?id=181914, esp. Comment 10. - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-181914.js'; -var UBound = 0; -var BUGNUMBER = '181914'; -var summary = 'Calling a user-defined superconstructor'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; -var EMPTY_STRING = ''; -var EXPECTED_FORMAT = 0; - - -// make a user-defined version of the Error constructor -function _Error(msg) -{ - this.message = msg; -} -_Error.prototype = new Error(); -_Error.prototype.name = '_Error'; - - -// derive MyApplyError from _Error -function MyApplyError(msg) -{ - if(this instanceof MyApplyError) - _Error.apply(this, arguments); - else - return new MyApplyError(msg); -} -MyApplyError.prototype = new _Error(); -MyApplyError.prototype.name = "MyApplyError"; - - -// derive MyCallError from _Error -function MyCallError(msg) -{ - if(this instanceof MyCallError) - _Error.call(this, msg); - else - return new MyCallError(msg); -} -MyCallError.prototype = new _Error(); -MyCallError.prototype.name = "MyCallError"; - - -function otherScope(msg) -{ - return MyApplyError(msg); -} - - -status = inSection(1); -var err1 = new MyApplyError('msg1'); -actual = examineThis(err1, 'msg1'); -expect = EXPECTED_FORMAT; -addThis(); - -status = inSection(2); -var err2 = new MyCallError('msg2'); -actual = examineThis(err2, 'msg2'); -expect = EXPECTED_FORMAT; -addThis(); - -status = inSection(3); -var err3 = MyApplyError('msg3'); -actual = examineThis(err3, 'msg3'); -expect = EXPECTED_FORMAT; -addThis(); - -status = inSection(4); -var err4 = MyCallError('msg4'); -actual = examineThis(err4, 'msg4'); -expect = EXPECTED_FORMAT; -addThis(); - -status = inSection(5); -var err5 = otherScope('msg5'); -actual = examineThis(err5, 'msg5'); -expect = EXPECTED_FORMAT; -addThis(); - -status = inSection(6); -var err6 = otherScope(); -actual = examineThis(err6, EMPTY_STRING); -expect = EXPECTED_FORMAT; -addThis(); - -status = inSection(7); -var err7 = eval("MyApplyError('msg7')"); -actual = examineThis(err7, 'msg7'); -expect = EXPECTED_FORMAT; -addThis(); - -status = inSection(8); -var err8; -try -{ - throw MyApplyError('msg8'); -} -catch(e) -{ - if(e instanceof Error) - err8 = e; -} -actual = examineThis(err8, 'msg8'); -expect = EXPECTED_FORMAT; -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -// Searches |err.toString()| for |err.name + ':' + err.message| -function examineThis(err, msg) -{ - var pattern = err.name + '\\s*:?\\s*' + msg; - return err.toString().search(RegExp(pattern)); -} - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/regress-58946.js b/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/regress-58946.js deleted file mode 100644 index 97212c88a0..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/regress-58946.js +++ /dev/null @@ -1,71 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-58946.js'; -//------------------------------------------------------------------------------------------------- -var BUGNUMBER = '58946'; -var stat = 'Testing a return statement inside a catch statement inside a function'; - -test(); - -function test() { - enterFunc ("test"); - printBugNumber(BUGNUMBER); - printStatus (stat); - - expect = 'PASS'; - - function f() - { - try - { - throw 'PASS'; - } - catch(e) - { - return e; - } - } - - actual = f(); - - reportCompare(expect, actual, stat); - - exitFunc ("test"); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/regress-95101.js b/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/regress-95101.js deleted file mode 100644 index b7ef074350..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/regress-95101.js +++ /dev/null @@ -1,118 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 13 August 2001 - * - * SUMMARY: Invoking an undefined function should produce a ReferenceError - * See http://bugzilla.mozilla.org/show_bug.cgi?id=95101 - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-95101.js'; -var UBound = 0; -var BUGNUMBER = 95101; -var summary = 'Invoking an undefined function should produce a ReferenceError'; -var msgERR_REF_YES = 'ReferenceError'; -var msgERR_REF_NO = 'did NOT generate a ReferenceError'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -try -{ - xxxyyyzzz(); -} -catch (e) -{ - status = 'Section 1 of test'; - actual = e instanceof ReferenceError; - expect = true; - addThis(); - - - /* - * This test is more literal, and may one day be invalid. - * Searching for literal string "ReferenceError" in e.toString() - */ - status = 'Section 2 of test'; - var match = e.toString().search(/ReferenceError/); - actual = (match > -1); - expect = true; - addThis(); -} - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = isReferenceError(actual); - expectedvalues[UBound] = isReferenceError(expect); - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} - - -// converts a Boolean result into a textual result - -function isReferenceError(bResult) -{ - return bResult? msgERR_REF_YES : msgERR_REF_NO; -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/shell.js b/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/shell.js deleted file mode 100644 index 6c671f1eea..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Exceptions/shell.js +++ /dev/null @@ -1 +0,0 @@ -gTestsubsuite = 'Exceptions'; diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/10.1.3-1.js b/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/10.1.3-1.js deleted file mode 100644 index 1e7e0254bf..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/10.1.3-1.js +++ /dev/null @@ -1,201 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 11 Feb 2002 - * SUMMARY: Testing functions having duplicate formal parameter names - * - * Note: given function f(x,x,x,x) {return x;}; f(1,2,3,4) should return 4. - * See ECMA-262 3rd Edition Final Section 10.1.3: Variable Instantiation - * - * Also see http://bugzilla.mozilla.org/show_bug.cgi?id=124900 - */ -//----------------------------------------------------------------------------- -var gTestfile = '10.1.3-1.js'; -var UBound = 0; -var BUGNUMBER = 124900; -var summary = 'Testing functions having duplicate formal parameter names'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -function f1(x,x) -{ - return x; -} -status = inSection(1); -actual = f1(1,2); -expect = 2; -addThis(); - - -function f2(x,x,x) -{ - return x*x*x; -} -status = inSection(2); -actual = f2(1,2,3); -expect = 27; -addThis(); - - -function f3(x,x,x,x) -{ - return 'a' + x + 'b' + x + 'c' + x ; -} -status = inSection(3); -actual = f3(1,2,3,4); -expect = 'a4b4c4'; -addThis(); - - -/* - * If the value of the last duplicate parameter is not provided by - * the function caller, the value of this parameter is undefined - */ -function f4(x,a,b,x,z) -{ - return x; -} -status = inSection(4); -actual = f4(1,2); -expect = undefined; -addThis(); - - -/* - * f.toString() should preserve any duplicate formal parameter names that exist - */ -function f5(x,x,x,x) -{ -} -status = inSection(5); -actual = f5.toString().match(/\((.*)\)/)[1]; -actual = actual.replace(/\s/g, ''); // for definiteness, remove any white space -expect = 'x,x,x,x'; -addThis(); - - -function f6(x,x,x,x) -{ - var ret = []; - - for (var i=0; i<arguments.length; i++) - ret.push(arguments[i]); - - return ret.toString(); -} -status = inSection(6); -actual = f6(1,2,3,4); -expect = '1,2,3,4'; -addThis(); - - -/* - * This variation (assigning to x inside f) is from nboyd@atg.com - * See http://bugzilla.mozilla.org/show_bug.cgi?id=124900 - */ -function f7(x,x,x,x) -{ - x = 999; - var ret = []; - - for (var i=0; i<arguments.length; i++) - ret.push(arguments[i]); - - return ret.toString(); -} -status = inSection(7); -actual = f7(1,2,3,4); -expect = '1,2,3,999'; -addThis(); - - -/* - * Same as above, but with |var| keyword added - - */ -function f8(x,x,x,x) -{ - var x = 999; - var ret = []; - - for (var i=0; i<arguments.length; i++) - ret.push(arguments[i]); - - return ret.toString(); -} -status = inSection(8); -actual = f8(1,2,3,4); -expect = '1,2,3,999'; -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/10.1.3-2.js b/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/10.1.3-2.js deleted file mode 100644 index b2e22e6c55..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/10.1.3-2.js +++ /dev/null @@ -1,70 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Martin Honnen - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '10.1.3-2.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 395907; -var summary = 'eval of function declaration should change existing variable'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - expect = 'typeof x: number, typeof x: function, x(): true'; - var x = "string"; - function f () { - var x = 0; - actual += 'typeof x: ' + (typeof x) + ', '; - eval('function x() { return true; }'); - actual += 'typeof x: ' + (typeof x) + ', '; - actual += 'x(): ' + x(); - } - f(); - - reportCompare(expect, actual, summary); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/10.1.3.js b/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/10.1.3.js deleted file mode 100644 index 45a81f1f3a..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/10.1.3.js +++ /dev/null @@ -1,73 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Rob Ginda rginda@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '10.1.3.js'; - -/** - ECMA Section: 10.1.3: Variable Instantiation - FunctionDeclarations are processed before VariableDeclarations, and - VariableDeclarations don't replace existing values with undefined -*/ - -test(); - -function f() -{ - var x; - - return typeof x; - - function x() - { - return 7; - } -} - -function test() -{ - enterFunc ("test"); - - printStatus ("ECMA Section: 10.1.3: Variable Instantiation."); - printBugNumber (17290); - - reportCompare ("function", f(), "Declaration precedence test"); - - exitFunc("test"); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/10.1.4-1.js b/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/10.1.4-1.js deleted file mode 100644 index 896841fa29..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/10.1.4-1.js +++ /dev/null @@ -1,85 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Rob Ginda rginda@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '10.1.4-1.js'; - -/** - ECMA Section: 10.1.4.1 Entering An Execution Context - ECMA says: - * Global Code, Function Code - Variable instantiation is performed using the global object as the - variable object and using property attributes { DontDelete }. - - * Eval Code - Variable instantiation is performed using the calling context's - variable object and using empty property attributes. -*/ - -var BUGNUMBER = '(none)'; -var summary = '10.1.4.1 Entering An Execution Context'; -var actual = ''; -var expect = ''; - -test(); - -function test() -{ - enterFunc ("test"); - printBugNumber(BUGNUMBER); - printStatus (summary); - - var y; - eval("var x = 1"); - - if (delete y) - reportCompare('PASS', 'FAIL', "Expected *NOT* to be able to delete y"); - - if (typeof x == "undefined") - reportCompare('PASS', 'FAIL', "x did not remain defined after eval()"); - else if (x != 1) - reportCompare('PASS', 'FAIL', "x did not retain it's value after eval()"); - - if (!delete x) - reportCompare('PASS', 'FAIL', "Expected to be able to delete x"); - - reportCompare('PASS', 'PASS', '10.1.4.1 Entering An Execution Context'); - - exitFunc("test"); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/10.6.1-01.js b/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/10.6.1-01.js deleted file mode 100755 index 6fbe85e19f..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/10.6.1-01.js +++ /dev/null @@ -1,136 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Bryant Chen - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '10.6.1-01.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 290774; -var summary = 'activation object never delegates to Object.prototype'; -var actual = ''; -var expect = ''; - -printBugNumber(BUGNUMBER); -printStatus (summary); - -var toStringResult; -var evalResult; -var watchResult; -var parseIntResult; - -var eval = 'fooEval'; -var watch = undefined; -var parseInt = 'fooParseInt'; - - -function toString() -{ - return 'fooString'; -} - -function normal() -{ - toStringResult = toString; - evalResult = eval; - watchResult = watch; - parseIntResult = parseInt; -} - -function outerinnervar() -{ - toStringResult = toString; - evalResult = eval; - watchResult = watch; - parseIntResult = parseInt; - function inner() - { - // addition of any statement - // which accesses a variable - // from the outer scope causes the bug - printStatus(toString); - } -} - -expect = true; - -printStatus('normal'); -printStatus('======'); -normal(); - -printStatus('toStringResult ' + toStringResult); -printStatus('toString ' + toString); -actual = ((toStringResult + '') == (toString + '')); -reportCompare(expect, actual, inSection(1)); - -printStatus('evalResult ' + evalResult); -printStatus('eval ' + eval); -actual = ((evalResult + '') == (eval + '')); -reportCompare(expect, actual, inSection(2)); - -printStatus('watchResult ' + watchResult); -printStatus('watch ' + watch); -actual = ((watchResult + '') == (watch + '')); -reportCompare(expect, actual, inSection(3)); - -printStatus('parseIntResult ' + parseIntResult); -printStatus('parseInt ' + parseInt); -actual = ((parseIntResult + '') == (parseInt + '')); -reportCompare(expect, actual, inSection(4)); - -printStatus('outerinner'); -printStatus('=========='); - -outerinnervar(); - -printStatus('toStringResult ' + toStringResult); -printStatus('toString ' + toString); -actual = ((toStringResult + '') == (toString + '')); -reportCompare(expect, actual, inSection(5)); - - -printStatus('evalResult ' + evalResult); -printStatus('eval ' + eval); -actual = ((evalResult + '') == (eval + '')); -reportCompare(expect, actual, inSection(6)); - -printStatus('watchResult ' + watchResult); -printStatus('watch ' + watch); -actual = ((watchResult + '') == (watch + '')); -reportCompare(expect, actual, inSection(7)); - -printStatus('parseIntResult ' + parseIntResult); -printStatus('parseInt ' + parseInt); -actual = ((parseIntResult + '') == (parseInt + '')); -reportCompare(expect, actual, inSection(8)); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/browser.js b/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/browser.js deleted file mode 100644 index e69de29bb2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/browser.js +++ /dev/null diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/regress-23346.js b/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/regress-23346.js deleted file mode 100644 index 6283d886f0..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/regress-23346.js +++ /dev/null @@ -1,71 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Rob Ginda rginda@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-23346.js'; - -var CALL_CALLED = "PASSED"; - -test(); - -function f(x) -{ - if (x) - return call(); - - return "FAILED!"; -} - -function call() -{ - return CALL_CALLED; -} - -function test() -{ - enterFunc ("test"); - - printStatus ("ECMA Section: 10.1.3: Variable Instantiation."); - printBugNumber (23346); - - reportCompare ("PASSED", f(true), - "Unqualified reference should not see Function.prototype"); - - exitFunc("test"); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/regress-448595-01.js b/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/regress-448595-01.js deleted file mode 100755 index f303199b51..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/regress-448595-01.js +++ /dev/null @@ -1,91 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2008 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Oliver Hunt - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-448595-01.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 448595; -var summary = 'scope chain var declaration with initialiser in |with| clauses'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - var f; - - expect = 'bar'; - - f = function(){ - var e = "bar"; - with({e:"foo"}) { - var e = "wibble"; - }; - - actual = e; - } - - f(); - - reportCompare(expect, actual, summary + ': with'); - - f = function(){ - var e = "bar"; - try - { - throw {e:"foo"}; - } - catch(e) { - var e = "wibble"; - }; - - actual = e; - } - - f(); - - reportCompare(expect, actual, summary + ': catch'); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/shell.js b/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/shell.js deleted file mode 100644 index 1d353cff74..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/ExecutionContexts/shell.js +++ /dev/null @@ -1 +0,0 @@ -gTestsubsuite = 'ExecutionContexts'; diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/11.10-01.js b/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/11.10-01.js deleted file mode 100755 index fd47d5d86b..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/11.10-01.js +++ /dev/null @@ -1,76 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Brendan Eich - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '11.10-01.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 396969; -var summary = '11.10 - & should evaluate operands in order'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - expect = 'o.valueOf, p.valueOf'; - var actualval; - var expectval = 2; - - var o = { - valueOf: (function (){ actual += 'o.valueOf'; return this.value}), - value:42 - }; - - var p = { - valueOf: (function (){ actual += ', p.valueOf'; return this.value}), - value:2 - }; - - actualval = (o & p); - - reportCompare(expectval, actualval, summary + ': value'); - reportCompare(expect, actual, summary + ': order'); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/11.10-02.js b/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/11.10-02.js deleted file mode 100755 index 8f387c1349..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/11.10-02.js +++ /dev/null @@ -1,76 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Brendan Eich - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '11.10-02.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 396969; -var summary = '11.10 - ^ should evaluate operands in order'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - expect = 'o.valueOf, p.valueOf'; - var actualval; - var expectval = 40; - - var o = { - valueOf: (function (){ actual += 'o.valueOf'; return this.value}), - value:42 - }; - - var p = { - valueOf: (function (){ actual += ', p.valueOf'; return this.value}), - value:2 - }; - - actualval = (o ^ p); - - reportCompare(expectval, actualval, summary + ': value'); - reportCompare(expect, actual, summary + ': order'); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/11.10-03.js b/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/11.10-03.js deleted file mode 100755 index 99af0f87c5..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/11.10-03.js +++ /dev/null @@ -1,76 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Brendan Eich - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '11.10-03.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 396969; -var summary = '11.10 - | should evaluate operands in order'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - expect = 'o.valueOf, p.valueOf'; - var actualval; - var expectval = 42; - - var o = { - valueOf: (function (){ actual += 'o.valueOf'; return this.value}), - value:42 - }; - - var p = { - valueOf: (function (){ actual += ', p.valueOf'; return this.value}), - value:2 - }; - - actualval = (o | p); - - reportCompare(expectval, actualval, summary + ': value'); - reportCompare(expect, actual, summary + ': order'); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/11.6.1-1.js b/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/11.6.1-1.js deleted file mode 100644 index 8854c499f2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/11.6.1-1.js +++ /dev/null @@ -1,176 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * bzbarsky@mit.edu, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 14 Mar 2003 - * SUMMARY: Testing left-associativity of the + operator - * - * See ECMA-262 Ed.3, Section 11.6.1, "The Addition operator" - * See http://bugzilla.mozilla.org/show_bug.cgi?id=196290 - * - * The upshot: |a + b + c| should always equal |(a + b) + c| - * - */ -//----------------------------------------------------------------------------- -var gTestfile = '11.6.1-1.js'; -var UBound = 0; -var BUGNUMBER = 196290; -var summary = 'Testing left-associativity of the + operator'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -status = inSection(1); -actual = 1 + 1 + 'px'; -expect = '2px'; -addThis(); - -status = inSection(2); -actual = 'px' + 1 + 1; -expect = 'px11'; -addThis(); - -status = inSection(3); -actual = 1 + 1 + 1 + 'px'; -expect = '3px'; -addThis(); - -status = inSection(4); -actual = 1 + 1 + 'a' + 1 + 1 + 'b'; -expect = '2a11b'; -addThis(); - -/* - * The next sections test the + operator via eval() - */ -status = inSection(5); -actual = sumThese(1, 1, 'a', 1, 1, 'b'); -expect = '2a11b'; -addThis(); - -status = inSection(6); -actual = sumThese(new Number(1), new Number(1), 'a'); -expect = '2a'; -addThis(); - -status = inSection(7); -actual = sumThese('a', new Number(1), new Number(1)); -expect = 'a11'; -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - -/* - * Applies the + operator to the provided arguments via eval(). - * - * Form an eval string of the form 'arg1 + arg2 + arg3', but - * remember to add double-quotes inside the eval string around - * any argument that is of string type. For example, suppose the - * arguments were 11, 'a', 22. Then the eval string should be - * - * arg1 + quoteThis(arg2) + arg3 - * - * If we didn't put double-quotes around the string argument, - * we'd get this for an eval string: - * - * '11 + a + 22' - * - * If we eval() this, we get 'ReferenceError: a is not defined'. - * With proper quoting, we get eval('11 + "a" + 22') as desired. - */ -function sumThese() -{ - var sEval = ''; - var arg; - var i; - - var L = arguments.length; - for (i=0; i<L; i++) - { - arg = arguments[i]; - if (typeof arg === 'string') - arg = quoteThis(arg); - - if (i < L-1) - sEval += arg + ' + '; - else - sEval += arg; - } - - return eval(sEval); -} - - -function quoteThis(x) -{ - return '"' + x + '"'; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/11.7.1-01.js b/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/11.7.1-01.js deleted file mode 100755 index 05f9622ce2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/11.7.1-01.js +++ /dev/null @@ -1,76 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Brendan Eich - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '11.7.1-01.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 396969; -var summary = '11.7.1 - << should evaluate operands in order'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - expect = 'o.valueOf, p.valueOf'; - var actualval; - var expectval = 168; - - var o = { - valueOf: (function (){ actual += 'o.valueOf'; return this.value}), - value:42 - }; - - var p = { - valueOf: (function (){ actual += ', p.valueOf'; return this.value}), - value:2 - }; - - actualval = (o << p); - - reportCompare(expectval, actualval, summary + ': value'); - reportCompare(expect, actual, summary + ': order'); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/11.7.2-01.js b/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/11.7.2-01.js deleted file mode 100755 index 64e426888a..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/11.7.2-01.js +++ /dev/null @@ -1,76 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Brendan Eich - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '11.7.2-01.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 396969; -var summary = '11.7.2 - >> should evaluate operands in order'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - expect = 'o.valueOf, p.valueOf'; - var actualval; - var expectval = 10; - - var o = { - valueOf: (function (){ actual += 'o.valueOf'; return this.value}), - value:42 - }; - - var p = { - valueOf: (function (){ actual += ', p.valueOf'; return this.value}), - value:2 - }; - - actualval = (o >> p); - - reportCompare(expectval, actualval, summary + ': value'); - reportCompare(expect, actual, summary + ': order'); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/11.7.3-01.js b/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/11.7.3-01.js deleted file mode 100755 index d5af3b86d4..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/11.7.3-01.js +++ /dev/null @@ -1,76 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Brendan Eich - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '11.7.3-01.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 396969; -var summary = '11.7.3 - >>> should evaluate operands in order'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - expect = 'o.valueOf, p.valueOf'; - var actualval; - var expectval = 10; - - var o = { - valueOf: (function (){ actual += 'o.valueOf'; return this.value}), - value:42 - }; - - var p = { - valueOf: (function (){ actual += ', p.valueOf'; return this.value}), - value:2 - }; - - actualval = (o >>> p); - - reportCompare(expectval, actualval, summary + ': value'); - reportCompare(expect, actual, summary + ': order'); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/11.9.6-1.js b/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/11.9.6-1.js deleted file mode 100644 index 1e8f59e400..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/11.9.6-1.js +++ /dev/null @@ -1,213 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 20 Feb 2002 - * SUMMARY: Testing the comparison |undefined === null| - * See http://bugzilla.mozilla.org/show_bug.cgi?id=126722 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = '11.9.6-1.js'; -var UBound = 0; -var BUGNUMBER = 126722; -var summary = 'Testing the comparison |undefined === null|'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -status = inSection(1); -if (undefined === null) - actual = true; -else - actual = false; -expect = false; -addThis(); - - - -status = inSection(2); -switch(true) -{ -case (undefined === null) : - actual = true; - break; - -default: - actual = false; -} -expect = false; -addThis(); - - - -status = inSection(3); -function f3(x) -{ - var res = false; - - switch(true) - { - case (x === null) : - res = true; - break; - - default: - // do nothing - } - - return res; -} - -actual = f3(undefined); -expect = false; -addThis(); - - - -status = inSection(4); -function f4(arr) -{ - var elt = ''; - var res = false; - - for (i=0; i<arr.length; i++) - { - elt = arr[i]; - - switch(true) - { - case (elt === null) : - res = true; - break; - - default: - // do nothing - } - } - - return res; -} - -var arr = Array('a', undefined); -actual = f4(arr); -expect = false; -addThis(); - - - -status = inSection(5); -function f5(arr) -{ - var len = arr.length; - - for(var i=0; (arr[i]===undefined) && (i<len); i++) - ; //do nothing - - return i; -} - -/* - * An array of 5 undefined elements. Note: - * - * The return value of eval(a STATEMENT) is undefined. - * A non-existent PROPERTY is undefined, not a ReferenceError. - * No undefined element exists AFTER trailing comma at end. - * - */ -var arrUndef = [ , undefined, eval('var x = 0'), this.NOT_A_PROPERTY, , ]; -actual = f5(arrUndef); -expect = 5; -addThis(); - - - -status = inSection(6); -function f6(arr) -{ - var len = arr.length; - - for(var i=0; (arr[i]===null) && (i<len); i++) - ; //do nothing - - return i; -} - -/* - * Use same array as above. This time we're comparing to |null|, so we expect 0 - */ -actual = f6(arrUndef); -expect = 0; -addThis(); - - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/browser.js b/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/browser.js deleted file mode 100644 index e69de29bb2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/browser.js +++ /dev/null diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/shell.js b/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/shell.js deleted file mode 100644 index 8f5d1129d5..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Expressions/shell.js +++ /dev/null @@ -1 +0,0 @@ -gTestsubsuite = 'Expressions'; diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/FunExpr/browser.js b/tests/auto/declarative/parserstress/tests/ecma_3/FunExpr/browser.js deleted file mode 100644 index e69de29bb2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/FunExpr/browser.js +++ /dev/null diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/FunExpr/fe-001-n.js b/tests/auto/declarative/parserstress/tests/ecma_3/FunExpr/fe-001-n.js deleted file mode 100644 index 71ed2fbb08..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/FunExpr/fe-001-n.js +++ /dev/null @@ -1,58 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Rob Ginda rginda@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'fe-001-n.js'; - -DESCRIPTION = "Previous statement should have thrown a ReferenceError"; -EXPECTED = "error"; - -test(); - -function test() -{ - enterFunc ("test"); - printStatus ("Function Expression test."); - - var x = function f(){return "inner";}(); - var y = f(); - reportCompare('PASS', 'FAIL', "Previous statement should have thrown a ReferenceError"); - - exitFunc ("test"); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/FunExpr/fe-001.js b/tests/auto/declarative/parserstress/tests/ecma_3/FunExpr/fe-001.js deleted file mode 100644 index 366c5fd472..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/FunExpr/fe-001.js +++ /dev/null @@ -1,57 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Rob Ginda rginda@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'fe-001.js'; - -if (1) function f() {return 1;} -if (0) function f() {return 0;} - -function test() -{ - enterFunc ("test"); - - printStatus ("Function Expression Statements basic test."); - - reportCompare (1, f(), "Both functions were defined."); - - exitFunc ("test"); -} - -test(); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/FunExpr/fe-002.js b/tests/auto/declarative/parserstress/tests/ecma_3/FunExpr/fe-002.js deleted file mode 100644 index d602b01b09..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/FunExpr/fe-002.js +++ /dev/null @@ -1,61 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Rob Ginda rginda@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'fe-002.js'; - -function f() -{ - return "outer"; -} - -function test() -{ - enterFunc ("test"); - printStatus ("Function Expression test."); - - var x = function f(){return "inner";}(); - - reportCompare ("outer", f(), - "Inner function statement should not have been called."); - - exitFunc ("test"); -} - -test(); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/FunExpr/shell.js b/tests/auto/declarative/parserstress/tests/ecma_3/FunExpr/shell.js deleted file mode 100644 index ecf5f4798f..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/FunExpr/shell.js +++ /dev/null @@ -1 +0,0 @@ -gTestsubsuite = 'FunExpr'; diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/15.3.4.3-1.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/15.3.4.3-1.js deleted file mode 100644 index ef51379e4f..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/15.3.4.3-1.js +++ /dev/null @@ -1,210 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * igor3@apochta.com, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 21 May 2002 - * SUMMARY: ECMA conformance of Function.prototype.apply - * - * Function.prototype.apply(thisArg, argArray) - * - * See ECMA-262 Edition 3 Final, Section 15.3.4.3 - */ -//----------------------------------------------------------------------------- -var gTestfile = '15.3.4.3-1.js'; -var UBound = 0; -var BUGNUMBER = 145791; -var summary = 'Testing ECMA conformance of Function.prototype.apply'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -function F0(a) -{ - return "" + this + arguments.length; -} - -function F1(a) -{ - return "" + this + a; -} - -function F2() -{ - return "" + this; -} - - - -/* - * Function.prototype.apply.length should return 2 - */ -status = inSection(1); -actual = Function.prototype.apply.length; -expect = 2; -addThis(); - - -/* - * When |thisArg| is not provided to the apply() method, the - * called function must be passed the global object as |this| - */ -status = inSection(2); -actual = F0.apply(); -expect = "" + this + 0; -addThis(); - - -/* - * If |argArray| is not provided to the apply() method, the - * called function should be invoked with an empty argument list - */ -status = inSection(3); -actual = F0.apply(""); -expect = "" + "" + 0; -addThis(); - -status = inSection(4); -actual = F0.apply(true); -expect = "" + true + 0; -addThis(); - - -/* - * Function.prototype.apply(x) and - * Function.prototype.apply(x, undefined) should return the same result - */ -status = inSection(5); -actual = F1.apply(0, undefined); -expect = F1.apply(0); -addThis(); - -status = inSection(6); -actual = F1.apply("", undefined); -expect = F1.apply(""); -addThis(); - -status = inSection(7); -actual = F1.apply(null, undefined); -expect = F1.apply(null); -addThis(); - -status = inSection(8); -actual = F1.apply(undefined, undefined); -expect = F1.apply(undefined); -addThis(); - - -/* - * Function.prototype.apply(x) and - * Function.prototype.apply(x, null) should return the same result - */ -status = inSection(9); -actual = F1.apply(0, null); -expect = F1.apply(0); -addThis(); - -status = inSection(10); -actual = F1.apply("", null); -expect = F1.apply(""); -addThis(); - -status = inSection(11); -actual = F1.apply(null, null); -expect = F1.apply(null); -addThis(); - -status = inSection(12); -actual = F1.apply(undefined, null); -expect = F1.apply(undefined); -addThis(); - - -/* - * Function.prototype.apply() and - * Function.prototype.apply(undefined) should return the same result - */ -status = inSection(13); -actual = F2.apply(undefined); -expect = F2.apply(); -addThis(); - - -/* - * Function.prototype.apply() and - * Function.prototype.apply(null) should return the same result - */ -status = inSection(14); -actual = F2.apply(null); -expect = F2.apply(); -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/15.3.4.4-1.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/15.3.4.4-1.js deleted file mode 100644 index d27b8487b7..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/15.3.4.4-1.js +++ /dev/null @@ -1,185 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * igor3@apochta.com, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 21 May 2002 - * SUMMARY: ECMA conformance of Function.prototype.call - * - * Function.prototype.call(thisArg [,arg1 [,arg2, ...]]) - * - * See ECMA-262 Edition 3 Final, Section 15.3.4.4 - */ -//----------------------------------------------------------------------------- -var gTestfile = '15.3.4.4-1.js'; -var UBound = 0; -var BUGNUMBER = 145791; -var summary = 'Testing ECMA conformance of Function.prototype.call'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -function F0(a) -{ - return "" + this + arguments.length; -} - -function F1(a) -{ - return "" + this + a; -} - -function F2() -{ - return "" + this; -} - - - -/* - * Function.prototype.call.length should return 1 - */ -status = inSection(1); -actual = Function.prototype.call.length; -expect = 1; -addThis(); - - -/* - * When |thisArg| is not provided to the call() method, the - * called function must be passed the global object as |this| - */ -status = inSection(2); -actual = F0.call(); -expect = "" + this + 0; -addThis(); - - -/* - * If [,arg1 [,arg2, ...]] are not provided to the call() method, - * the called function should be invoked with an empty argument list - */ -status = inSection(3); -actual = F0.call(""); -expect = "" + "" + 0; -addThis(); - -status = inSection(4); -actual = F0.call(true); -expect = "" + true + 0; -addThis(); - - -/* - * Function.prototype.call(x) and - * Function.prototype.call(x, undefined) should return the same result - */ -status = inSection(5); -actual = F1.call(0, undefined); -expect = F1.call(0); -addThis(); - -status = inSection(6); -actual = F1.call("", undefined); -expect = F1.call(""); -addThis(); - -status = inSection(7); -actual = F1.call(null, undefined); -expect = F1.call(null); -addThis(); - -status = inSection(8); -actual = F1.call(undefined, undefined); -expect = F1.call(undefined); -addThis(); - - -/* - * Function.prototype.call() and - * Function.prototype.call(undefined) should return the same result - */ -status = inSection(9); -actual = F2.call(undefined); -expect = F2.call(); -addThis(); - - -/* - * Function.prototype.call() and - * Function.prototype.call(null) should return the same result - */ -status = inSection(10); -actual = F2.call(null); -expect = F2.call(); -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/arguments-001.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/arguments-001.js deleted file mode 100644 index 2dbd603e02..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/arguments-001.js +++ /dev/null @@ -1,169 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * brendan@mozilla.org, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 07 May 2001 - * - * SUMMARY: Testing the arguments object - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=72884 - */ -//----------------------------------------------------------------------------- -var gTestfile = 'arguments-001.js'; -var UBound = 0; -var BUGNUMBER = 72884; -var summary = 'Testing the arguments object'; -var status = ''; -var statusitems = [ ]; -var actual = ''; -var actualvalues = [ ]; -var expect= ''; -var expectedvalues = [ ]; -var a = ''; - - -status = inSection(1); -function f() -{ - delete arguments.length; - return arguments; -} - -a = f(); -actual = a instanceof Object; -expect = true; -addThis(); - -actual = a instanceof Array; -expect = false; -addThis(); - -actual = a.length; -expect = undefined; -addThis(); - - - -status = inSection(2); -a = f(1,2,3); -actual = a instanceof Object; -expect = true; -addThis(); - -actual = a instanceof Array; -expect = false; -addThis(); - -actual = a.length; -expect = undefined; -addThis(); - -actual = a[0]; -expect = 1; -addThis(); - -actual = a[1]; -expect = 2; -addThis(); - -actual = a[2]; -expect = 3; -addThis(); - - - -status = inSection(3); -/* - * Brendan: - * - * Note that only callee and length can be overridden, so deleting an indexed - * property and asking for it again causes it to be recreated by args_resolve: - * - * function g(){delete arguments[0]; return arguments[0]} - * g(42) // should this print 42? - * - * I'm not positive this violates ECMA, which allows in chapter 16 for extensions - * including properties (does it allow for magically reappearing properties?). The - * delete operator successfully deletes arguments[0] and results in true, but that - * is not distinguishable from the case where arguments[0] was delegated to - * Arguments.prototype[0], which was how the bad old code worked. - * - * I'll ponder this last detail... - * - * UPDATE: Per ECMA-262, delete on an arguments[i] should succeed - * and remove that property from the arguments object, leaving any get - * of it after the delete to evaluate to undefined. - */ -function g() -{ - delete arguments[0]; - return arguments[0]; -} -actual = g(42); -expect = undefined; // not 42... -addThis(); - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/arguments-002.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/arguments-002.js deleted file mode 100755 index 78005560a7..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/arguments-002.js +++ /dev/null @@ -1,73 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Brendan Eich - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'arguments-002.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 383269; -var summary = 'Allow override of arguments'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - var expect1 = '33,42'; - var expect2 = 33; - var actual1 = ''; - var actual2 = ''; - - function f(){ - var a=arguments; actual1 = a[0]; arguments=42; actual1 += ',' + arguments; return a; - } - - actual2 = f(33)[0]; - - expect = expect1 + ':' + expect2; - actual = actual1 + ':' + actual2; - - reportCompare(expect, actual, summary); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/browser.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/browser.js deleted file mode 100644 index e69de29bb2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/browser.js +++ /dev/null diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/call-001.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/call-001.js deleted file mode 100644 index 61ab3b930b..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/call-001.js +++ /dev/null @@ -1,153 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 2001-07-13 - * - * SUMMARY: Applying Function.prototype.call to the Function object itself - * - * - * ECMA-262 15.3.4.4 Function.prototype.call (thisArg [,arg1 [,arg2,…] ] ) - * - * When applied to the Function object itself, thisArg should be ignored. - * As explained by Waldemar (waldemar@netscape.com): - * - * Function.call(obj, "print(this)") is equivalent to invoking - * Function("print(this)") with this set to obj. Now, Function("print(this)") - * is equivalent to new Function("print(this)") (see 15.3.1.1), and the latter - * ignores the this value that you passed it and constructs a function - * (which we'll call F) which will print the value of the this that will be - * passed in when F will be invoked. - * - * With the last set of () you're invoking F(), which means you're calling it - * with no this value. When you don't provide a this value, it defaults to the - * global object. - * - */ - -//----------------------------------------------------------------------------- -var gTestfile = 'call-001.js'; -var UBound = 0; -var BUGNUMBER = '(none)'; -var summary = 'Applying Function.prototype.call to the Function object itself'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; -var self = this; // capture a reference to the global object -var cnOBJECT_GLOBAL = self.toString(); -var cnOBJECT_OBJECT = (new Object).toString(); -var cnHello = 'Hello'; -var cnRed = 'red'; -var objTEST = {color:cnRed}; -var f = new Function(); -var g = new Function(); - - -f = Function.call(self, 'return cnHello'); -g = Function.call(objTEST, 'return cnHello'); - -status = 'Section A of test'; -actual = f(); -expect = cnHello; -captureThis(); - -status = 'Section B of test'; -actual = g(); -expect = cnHello; -captureThis(); - - -f = Function.call(self, 'return this.toString()'); -g = Function.call(objTEST, 'return this.toString()'); - -status = 'Section C of test'; -actual = f(); -expect = cnOBJECT_GLOBAL; -captureThis(); - -status = 'Section D of test'; -actual = g(); -expect = cnOBJECT_GLOBAL; -captureThis(); - - -f = Function.call(self, 'return this.color'); -g = Function.call(objTEST, 'return this.color'); - -status = 'Section E of test'; -actual = f(); -expect = undefined; -captureThis(); - -status = 'Section F of test'; -actual = g(); -expect = undefined; -captureThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - -function captureThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-131964.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-131964.js deleted file mode 100644 index f3998db91c..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-131964.js +++ /dev/null @@ -1,196 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 19 Mar 2002 - * SUMMARY: Function declarations in global or function scope are {DontDelete}. - * Function declarations in eval scope are not {DontDelete}. - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=131964 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-131964.js'; -var UBound = 0; -var BUGNUMBER = 131964; -var summary = 'Functions defined in global or function scope are {DontDelete}'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -status = inSection(1); -function f() -{ - return 'f lives!'; -} -delete f; - -try -{ - actual = f(); -} -catch(e) -{ - actual = 'f was deleted'; -} - -expect = 'f lives!'; -addThis(); - - - -/* - * Try the same test in function scope - - */ -status = inSection(2); -function g() -{ - function f() - { - return 'f lives!'; - } - delete f; - - try - { - actual = f(); - } - catch(e) - { - actual = 'f was deleted'; - } - - expect = 'f lives!'; - addThis(); -} -g(); - - - -/* - * Try the same test in eval scope - here we EXPECT the function to be deleted (?) - */ -status = inSection(3); -var s = ''; -s += 'function h()'; -s += '{ '; -s += ' return "h lives!";'; -s += '}'; -s += 'delete h;'; - -s += 'try'; -s += '{'; -s += ' actual = h();'; -s += '}'; -s += 'catch(e)'; -s += '{'; -s += ' actual = "h was deleted";'; -s += '}'; - -s += 'expect = "h was deleted";'; -s += 'addThis();'; -eval(s); - - -/* - * Define the function in eval scope, but delete it in global scope - - */ -status = inSection(4); -s = ''; -s += 'function k()'; -s += '{ '; -s += ' return "k lives!";'; -s += '}'; -eval(s); - -delete k; - -try -{ - actual = k(); -} -catch(e) -{ - actual = 'k was deleted'; -} - -expect = 'k was deleted'; -addThis(); - - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function wasDeleted(functionName) -{ - return functionName + ' was deleted...'; -} - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-137181.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-137181.js deleted file mode 100644 index 1bf7c35f93..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-137181.js +++ /dev/null @@ -1,113 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * ibukanov8@yahoo.com, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 12 Apr 2002 - * SUMMARY: delete arguments[i] should break connection to local reference - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=137181 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-137181.js'; -var UBound = 0; -var BUGNUMBER = 137181; -var summary = 'delete arguments[i] should break connection to local reference'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -status = inSection(1); -function f1(x) -{ - x = 1; - delete arguments[0]; - return x; -} -actual = f1(0); // (bug: Rhino was returning |undefined|) -expect = 1; -addThis(); - - -status = inSection(2); -function f2(x) -{ - x = 1; - delete arguments[0]; - arguments[0] = -1; - return x; -} -actual = f2(0); // (bug: Rhino was returning -1) -expect = 1; -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-193555.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-193555.js deleted file mode 100644 index ed37b46c90..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-193555.js +++ /dev/null @@ -1,136 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * igor@icesoft.no, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 17 February 2003 - * SUMMARY: Testing access to function name from inside function - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=193555 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-193555.js'; -var UBound = 0; -var BUGNUMBER = 193555; -var summary = 'Testing access to function name from inside function'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -// test via function statement -status = inSection(1); -function f() {return f.toString();}; -actual = f(); -expect = f.toString(); -addThis(); - -// test via function expression -status = inSection(2); -var x = function g() {return g.toString();}; -actual = x(); -expect = x.toString(); -addThis(); - -// test via eval() outside function -status = inSection(3); -eval ('function a() {return a.toString();}'); -actual = a(); -expect = a.toString(); -addThis(); - -status = inSection(4); -eval ('var y = function b() {return b.toString();}'); -actual = y(); -expect = y.toString(); -addThis(); - -// test via eval() inside function -status = inSection(5); -function c() {return eval('c').toString();}; -actual = c(); -expect = c.toString(); -addThis(); - -status = inSection(6); -var z = function d() {return eval('d').toString();}; -actual = z(); -expect = z.toString(); -addThis(); - -// test via two evals! -status = inSection(7); -eval('var w = function e() {return eval("e").toString();}'); -actual = w(); -expect = w.toString(); -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-313570.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-313570.js deleted file mode 100755 index e159c4c87f..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-313570.js +++ /dev/null @@ -1,63 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Yuh-Ruey Chen - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-313570.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 313570; -var summary = 'length of objects whose prototype chain includes a function'; -var actual = ''; -var expect = ''; - -printBugNumber(BUGNUMBER); -printStatus (summary); - -function tmp() {} -tmp.prototype = function(a, b, c) {}; -var obj = new tmp(); - -// arity -expect = 3; -actual = obj.length; -reportCompare(expect, actual, summary + ': arity'); - -// immutable -obj.length = 10; - -expect = 3; -actual = obj.length; -reportCompare(expect, actual, summary + ': immutable'); - diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-49286.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-49286.js deleted file mode 100644 index 50e203bed8..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-49286.js +++ /dev/null @@ -1,137 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * jlaprise@delanotech.com,pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 2001-07-10 - * - * SUMMARY: Invoking try...catch through Function.call - * See http://bugzilla.mozilla.org/show_bug.cgi?id=49286 - * - * 1) Define a function with a try...catch block in it - * 2) Invoke the function via the call method of Function - * 3) Pass bad syntax to the try...catch block - * 4) We should catch the error! - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-49286.js'; -var UBound = 0; -var BUGNUMBER = 49286; -var summary = 'Invoking try...catch through Function.call'; -var cnErrorCaught = 'Error caught'; -var cnErrorNotCaught = 'Error NOT caught'; -var cnGoodSyntax = '1==2'; -var cnBadSyntax = '1=2'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -var obj = new testObject(); - -status = 'Section A of test: direct call of f'; -actual = f.call(obj); -expect = cnErrorCaught; -addThis(); - -status = 'Section B of test: indirect call of f'; -actual = g.call(obj); -expect = cnErrorCaught; -addThis(); - - - -//----------------------------------------- -test(); -//----------------------------------------- - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} - - -// An object storing bad syntax as a property - -function testObject() -{ - this.badSyntax = cnBadSyntax; - this.goodSyntax = cnGoodSyntax; -} - - -// A function wrapping a try...catch block -function f() -{ - try - { - eval(this.badSyntax); - } - catch(e) - { - return cnErrorCaught; - } - return cnErrorNotCaught; -} - - -// A function wrapping a call to f - -function g() -{ - return f.call(this); -} - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-58274.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-58274.js deleted file mode 100644 index da5bde597f..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-58274.js +++ /dev/null @@ -1,226 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * rogerl@netscape.com, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 15 July 2002 - * SUMMARY: Testing functions with double-byte names - * See http://bugzilla.mozilla.org/show_bug.cgi?id=58274 - * - * Here is a sample of the problem: - * - * js> function f\u02B1 () {} - * - * js> f\u02B1.toSource(); - * function f¦() {} - * - * js> f\u02B1.toSource().toSource(); - * (new String("function f\xB1() {}")) - * - * - * See how the high-byte information (the 02) has been lost? - * The same thing was happening with the toString() method: - * - * js> f\u02B1.toString(); - * - * function f¦() { - * } - * - * js> f\u02B1.toString().toSource(); - * (new String("\nfunction f\xB1() {\n}\n")) - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-58274.js'; -var UBound = 0; -var BUGNUMBER = 58274; -var summary = 'Testing functions with double-byte names'; -var ERR = 'UNEXPECTED ERROR! \n'; -var ERR_MALFORMED_NAME = ERR + 'Could not find function name in: \n\n'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; -var sEval; -var sName; - - -sEval = "function f\u02B2() {return 42;}"; -eval(sEval); -sName = getFunctionName(f\u02B2); - -// Test function call - -status = inSection(1); -actual = f\u02B2(); -expect = 42; -addThis(); - -// Test both characters of function name - -status = inSection(2); -actual = sName[0]; -expect = sEval[9]; -addThis(); - -status = inSection(3); -actual = sName[1]; -expect = sEval[10]; -addThis(); - - - -sEval = "function f\u02B2\u0AAA () {return 84;}"; -eval(sEval); -sName = getFunctionName(f\u02B2\u0AAA); - -// Test function call - -status = inSection(4); -actual = f\u02B2\u0AAA(); -expect = 84; -addThis(); - -// Test all three characters of function name - -status = inSection(5); -actual = sName[0]; -expect = sEval[9]; -addThis(); - -status = inSection(6); -actual = sName[1]; -expect = sEval[10]; -addThis(); - -status = inSection(7); -actual = sName[2]; -expect = sEval[11]; -addThis(); - - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -/* - * Goal: test that f.toString() contains the proper function name. - * - * Note, however, f.toString() is implementation-independent. For example, - * it may begin with '\nfunction' instead of 'function'. Therefore we use - * a regexp to make sure we extract the name properly. - * - * Here we assume that f has been defined by means of a function statement, - * and not a function expression (where it wouldn't have to have a name). - * - * Rhino uses a Unicode representation for f.toString(); whereas - * SpiderMonkey uses an ASCII representation, putting escape sequences - * for non-ASCII characters. For example, if a function is called f\u02B1, - * then in Rhino the toString() method will present a 2-character Unicode - * string for its name, whereas SpiderMonkey will present a 7-character - * ASCII string for its name: the string literal 'f\u02B1'. - * - * So we force the lexer to condense the string before using it. - * This will give uniform results in Rhino and SpiderMonkey. - */ -function getFunctionName(f) -{ - var s = condenseStr(f.toString()); - var re = /\s*function\s+(\S+)\s*\(/; - var arr = s.match(re); - - if (!(arr && arr[1])) - return ERR_MALFORMED_NAME + s; - return arr[1]; -} - - -/* - * This function is the opposite of functions like escape(), which take - * Unicode characters and return escape sequences for them. Here, we force - * the lexer to turn escape sequences back into single characters. - * - * Note we can't simply do |eval(str)|, since in practice |str| will be an - * identifier somewhere in the program (e.g. a function name); thus |eval(str)| - * would return the object that the identifier represents: not what we want. - * - * So we surround |str| lexicographically with quotes to force the lexer to - * evaluate it as a string. Have to strip out any linefeeds first, however - - */ -function condenseStr(str) -{ - /* - * You won't be able to do the next step if |str| has - * any carriage returns or linefeeds in it. For example: - * - * js> eval("'" + '\nHello' + "'"); - * 1: SyntaxError: unterminated string literal: - * 1: ' - * 1: ^ - * - * So replace them with the empty string - - */ - str = str.replace(/[\r\n]/g, '') - return eval("'" + str + "'"); -} - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-85880.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-85880.js deleted file mode 100644 index 8ea4fb6c41..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-85880.js +++ /dev/null @@ -1,173 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 2001-06-14 - * - * SUMMARY: Regression test for Bugzilla bug 85880 - * - * Rhino interpreted mode was nulling out the arguments object of a - * function if it happened to call another function inside its body. - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=85880 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-85880.js'; -var UBound = 0; -var BUGNUMBER = 85880; -var summary = 'Arguments object of g(){f()} should not be null'; -var cnNonNull = 'Arguments != null'; -var cnNull = 'Arguments == null'; -var cnRecurse = true; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -function f1(x) -{ -} - - -function f2() -{ - return f2.arguments; -} -status = 'Section A of test'; -actual = (f2() == null); -expect = false; -addThis(); - -status = 'Section B of test'; -actual = (f2(0) == null); -expect = false; -addThis(); - - -function f3() -{ - f1(); - return f3.arguments; -} -status = 'Section C of test'; -actual = (f3() == null); -expect = false; -addThis(); - -status = 'Section D of test'; -actual = (f3(0) == null); -expect = false; -addThis(); - - -function f4() -{ - f1(); - f2(); - f3(); - return f4.arguments; -} -status = 'Section E of test'; -actual = (f4() == null); -expect = false; -addThis(); - -status = 'Section F of test'; -actual = (f4(0) == null); -expect = false; -addThis(); - - -function f5() -{ - if (cnRecurse) - { - cnRecurse = false; - f5(); - } - return f5.arguments; -} -status = 'Section G of test'; -actual = (f5() == null); -expect = false; -addThis(); - -status = 'Section H of test'; -actual = (f5(0) == null); -expect = false; -addThis(); - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = isThisNull(actual); - expectedvalues[UBound] = isThisNull(expect); - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} - - -function isThisNull(bool) -{ - return bool? cnNull : cnNonNull - } diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-94506.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-94506.js deleted file mode 100644 index b6ab5cc24c..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-94506.js +++ /dev/null @@ -1,163 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * deneen@alum.bucknell.edu, shaver@mozilla.org - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 08 August 2001 - * - * SUMMARY: When we invoke a function, the arguments object should take - * a back seat to any local identifier named "arguments". - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=94506 - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-94506.js'; -var UBound = 0; -var BUGNUMBER = 94506; -var summary = 'Testing functions employing identifiers named "arguments"'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; -var TYPE_OBJECT = typeof new Object(); -var arguments = 5555; - - -// use a parameter named "arguments" -function F1(arguments) -{ - return arguments; -} - - -// use a local variable named "arguments" -function F2() -{ - var arguments = 55; - return arguments; -} - - -// same thing in a different order. CHANGES THE RESULT! -function F3() -{ - return arguments; - var arguments = 555; -} - - -// use the global variable above named "arguments" -function F4() -{ - return arguments; -} - - - -/* - * In Sections 1 and 2, expect the local identifier, not the arguments object. - * In Sections 3 and 4, expect the arguments object, not the the identifier. - */ - -status = 'Section 1 of test'; -actual = F1(5); -expect = 5; -addThis(); - - -status = 'Section 2 of test'; -actual = F2(); -expect = 55; -addThis(); - - -status = 'Section 3 of test'; -actual = typeof F3(); -expect = TYPE_OBJECT; -addThis(); - - -status = 'Section 4 of test'; -actual = typeof F4(); -expect = TYPE_OBJECT; -addThis(); - - -// Let's try calling F1 without providing a parameter - -status = 'Section 5 of test'; -actual = F1(); -expect = undefined; -addThis(); - - -// Let's try calling F1 with too many parameters - -status = 'Section 6 of test'; -actual = F1(3,33,333); -expect = 3; -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-97921.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-97921.js deleted file mode 100644 index 855f966dc4..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-97921.js +++ /dev/null @@ -1,152 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * georg@bioshop.de, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 10 September 2001 - * - * SUMMARY: Testing with() statement with nested functions - * See http://bugzilla.mozilla.org/show_bug.cgi?id=97921 - * - * Brendan: "The bug is peculiar to functions that have formal parameters, - * but that are called with fewer actual arguments than the declared number - * of formal parameters." - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-97921.js'; -var UBound = 0; -var BUGNUMBER = 97921; -var summary = 'Testing with() statement with nested functions'; -var cnYES = 'Inner value === outer value'; -var cnNO = "Inner value !== outer value!"; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; -var outerValue = ''; -var innerValue = ''; -var useWith = ''; - - -function F(i) -{ - i = 0; - if(useWith) with(1){i;} - i++; - - outerValue = i; // capture value of i in outer function - F1 = function() {innerValue = i;}; // capture value of i in inner function - F1(); -} - - -status = inSection(1); -useWith=false; -F(); // call F without supplying the argument -actual = innerValue === outerValue; -expect = true; -addThis(); - -status = inSection(2); -useWith=true; -F(); // call F without supplying the argument -actual = innerValue === outerValue; -expect = true; -addThis(); - - -function G(i) -{ - i = 0; - with (new Object()) {i=100}; - i++; - - outerValue = i; // capture value of i in outer function - G1 = function() {innerValue = i;}; // capture value of i in inner function - G1(); -} - - -status = inSection(3); -G(); // call G without supplying the argument -actual = innerValue === 101; -expect = true; -addThis(); - -status = inSection(4); -G(); // call G without supplying the argument -actual = innerValue === outerValue; -expect = true; -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = areTheseEqual(actual); - expectedvalues[UBound] = areTheseEqual(expect); - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} - - -function areTheseEqual(yes) -{ - return yes? cnYES : cnNO - } diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/scope-001.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/scope-001.js deleted file mode 100644 index 3aa1d3bc03..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/scope-001.js +++ /dev/null @@ -1,265 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com, rogerl@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 28 May 2001 - * - * SUMMARY: Functions are scoped statically, not dynamically - * - * See ECMA Section 10.1.4 Scope Chain and Identifier Resolution - * (This section defines the scope chain of an execution context) - * - * See ECMA Section 12.10 The with Statement - * - * See ECMA Section 13 Function Definition - * (This section defines the scope chain of a function object as that - * of the running execution context when the function was declared) - */ -//----------------------------------------------------------------------------- -var gTestfile = 'scope-001.js'; -var UBound = 0; -var BUGNUMBER = '(none)'; -var summary = 'Testing that functions are scoped statically, not dynamically'; -var self = this; // capture a reference to the global object -var status = ''; -var statusitems = [ ]; -var actual = ''; -var actualvalues = [ ]; -var expect= ''; -var expectedvalues = [ ]; - -/* - * In this section the expected value is 1, not 2. - * - * Why? f captures its scope chain from when it's declared, and imposes that chain - * when it's executed. In other words, f's scope chain is from when it was compiled. - * Since f is a top-level function, this is the global object only. Hence 'a' resolves to 1. - */ -status = 'Section A of test'; -var a = 1; -function f() -{ - return a; -} -var obj = {a:2}; -with (obj) -{ - actual = f(); -} -expect = 1; -addThis(); - - -/* - * In this section the expected value is 2, not 1. That is because here - * f's associated scope chain now includes 'obj' before the global object. - */ -status = 'Section B of test'; -var a = 1; -var obj = {a:2}; -with (obj) -{ - function f() - { - return a; - } - actual = f(); -} -expect = 2; -addThis(); - - -/* - * Like Section B , except that we call f outside the with block. - * By the principles explained above, we still expect 2 - - */ -status = 'Section C of test'; -var a = 1; -var obj = {a:2}; -with (obj) -{ - function f() - { - return a; - } -} -actual = f(); -expect = 2; -addThis(); - - -/* - * Like Section C, but with one more level of indirection - - */ -status = 'Section D of test'; -var a = 1; -var obj = {a:2, obj:{a:3}}; -with (obj) -{ - with (obj) - { - function f() - { - return a; - } - } -} -actual = f(); -expect = 3; -addThis(); - - -/* - * Like Section C, but here we actually delete obj before calling f. - * We still expect 2 - - */ -status = 'Section E of test'; -var a = 1; -var obj = {a:2}; -with (obj) -{ - function f() - { - return a; - } -} -delete obj; -actual = f(); -expect = 2; -addThis(); - - -/* - * Like Section E. Here we redefine obj and call f under with (obj) - - * We still expect 2 - - */ -status = 'Section F of test'; -var a = 1; -var obj = {a:2}; -with (obj) -{ - function f() - { - return a; - } -} -delete obj; -var obj = {a:3}; -with (obj) -{ - actual = f(); -} -expect = 2; // NOT 3 !!! -addThis(); - - -/* - * Explicitly verify that f exists at global level, even though - * it was defined under the with(obj) block - - */ -status = 'Section G of test'; -var a = 1; -var obj = {a:2}; -with (obj) -{ - function f() - { - return a; - } -} -actual = String([obj.hasOwnProperty('f'), self.hasOwnProperty('f')]); -expect = String([false, true]); -addThis(); - - -/* - * Explicitly verify that f exists at global level, even though - * it was defined under the with(obj) block - - */ -status = 'Section H of test'; -var a = 1; -var obj = {a:2}; -with (obj) -{ - function f() - { - return a; - } -} -actual = String(['f' in obj, 'f' in self]); -expect = String([false, true]); -addThis(); - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; - resetTestVars(); -} - - -function resetTestVars() -{ - delete a; - delete obj; - delete f; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/scope-002.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/scope-002.js deleted file mode 100644 index 7a9b6f204b..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/scope-002.js +++ /dev/null @@ -1,245 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com, rogerl@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 28 May 2001 - * - * SUMMARY: Functions are scoped statically, not dynamically - * - * See ECMA Section 10.1.4 Scope Chain and Identifier Resolution - * (This section defines the scope chain of an execution context) - * - * See ECMA Section 12.10 The with Statement - * - * See ECMA Section 13 Function Definition - * (This section defines the scope chain of a function object as that - * of the running execution context when the function was declared) - * - * Like scope-001.js, but using assignment var f = function expression - * instead of a function declaration: function f() {} etc. - */ -//----------------------------------------------------------------------------- -var gTestfile = 'scope-002.js'; -var UBound = 0; -var BUGNUMBER = '(none)'; -var summary = 'Testing that functions are scoped statically, not dynamically'; -var self = this; // capture a reference to the global object -var status = ''; -var statusitems = [ ]; -var actual = ''; -var actualvalues = [ ]; -var expect= ''; -var expectedvalues = [ ]; - - -/* - * In this section the expected value is 1, not 2. - * - * Why? f captures its scope chain from when it's declared, and imposes that chain - * when it's executed. In other words, f's scope chain is from when it was compiled. - * Since f is a top-level function, this is the global object only. Hence 'a' resolves to 1. - */ -status = 'Section A of test'; -var a = 1; -var f = function () {return a;}; -var obj = {a:2}; -with (obj) -{ - actual = f(); -} -expect = 1; -addThis(); - - -/* - * In this section the expected value is 2, not 1. That is because here - * f's associated scope chain now includes 'obj' before the global object. - */ -status = 'Section B of test'; -var a = 1; -var obj = {a:2}; -with (obj) -{ - var f = function () {return a;}; - actual = f(); -} -expect = 2; -addThis(); - - -/* - * Like Section B , except that we call f outside the with block. - * By the principles explained above, we still expect 2 - - */ -status = 'Section C of test'; -var a = 1; -var obj = {a:2}; -with (obj) -{ - var f = function () {return a;}; -} -actual = f(); -expect = 2; -addThis(); - - -/* - * Like Section C, but with one more level of indirection - - */ -status = 'Section D of test'; -var a = 1; -var obj = {a:2, obj:{a:3}}; -with (obj) -{ - with (obj) - { - var f = function () {return a;}; - } -} -actual = f(); -expect = 3; -addThis(); - - -/* - * Like Section C, but here we actually delete obj before calling f. - * We still expect 2 - - */ -status = 'Section E of test'; -var a = 1; -var obj = {a:2}; -with (obj) -{ - var f = function () {return a;}; -} -delete obj; -actual = f(); -expect = 2; -addThis(); - - -/* - * Like Section E. Here we redefine obj and call f under with (obj) - - * We still expect 2 - - */ -status = 'Section F of test'; -var a = 1; -var obj = {a:2}; -with (obj) -{ - var f = function () {return a;}; -} -delete obj; -var obj = {a:3}; -with (obj) -{ - actual = f(); -} -expect = 2; // NOT 3 !!! -addThis(); - - -/* - * Explicitly verify that f exists at global level, even though - * it was defined under the with(obj) block - - */ -status = 'Section G of test'; -var a = 1; -var obj = {a:2}; -with (obj) -{ - var f = function () {return a;}; -} -actual = String([obj.hasOwnProperty('f'), self.hasOwnProperty('f')]); -expect = String([false, true]); -addThis(); - - -/* - * Explicitly verify that f exists at global level, even though - * it was defined under the with(obj) block - - */ -status = 'Section H of test'; -var a = 1; -var obj = {a:2}; -with (obj) -{ - var f = function () {return a;}; -} -actual = String(['f' in obj, 'f' in self]); -expect = String([false, true]); -addThis(); - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; - resetTestVars(); -} - - -function resetTestVars() -{ - delete a; - delete obj; - delete f; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/shell.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/shell.js deleted file mode 100644 index eebf3d51f8..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/shell.js +++ /dev/null @@ -1 +0,0 @@ -gTestsubsuite = 'Function'; diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/LexicalConventions/7.9.1.js b/tests/auto/declarative/parserstress/tests/ecma_3/LexicalConventions/7.9.1.js deleted file mode 100755 index 10ee26f929..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/LexicalConventions/7.9.1.js +++ /dev/null @@ -1,157 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '7.9.1.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 402386; -var summary = 'Automatic Semicolon insertion in postfix expressions'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - var expr; - var code; - - // LeftHandSideExpression [no LineTerminator here] ++ - - code = 'expr ++'; - expr = 0; - expect = 1; - - try - { - eval(code); - actual = expr; - } - catch(ex) - { - actual = ex + ''; - } - reportCompare(expect, actual, summary + ': ' + code); - - code = 'expr\n++'; - expr = 0; - expect = 'SyntaxError: syntax error'; - - try - { - eval(code); - actual = expr; - } - catch(ex) - { - actual = ex + ''; - } - reportCompare(expect, actual, summary + ': ' + code); - - // LeftHandSideExpression [no LineTerminator here] -- - - code = 'expr --'; - expr = 0; - expect = -1; - - try - { - eval(code); - actual = expr; - } - catch(ex) - { - actual = ex + ''; - } - reportCompare(expect, actual, summary + ': ' + code); - - code = 'expr\n--'; - expr = 0; - expect = 'SyntaxError: syntax error'; - - try - { - eval(code); - actual = expr; - } - catch(ex) - { - actual = ex + ''; - } - reportCompare(expect, actual, summary + ': ' + code); - - // - - var x = 1; - var y = 1; - code = '(x\n)-- y'; - expect = 'SyntaxError: missing ; before statement'; - - try - { - eval(code); - actual = expr; - } - catch(ex) - { - actual = ex + ''; - } - reportCompare(expect, actual, summary + ': ' + code); - - code = '(x)-- y'; - expect = 'SyntaxError: missing ; before statement'; - - try - { - eval(code); - actual = expr; - } - catch(ex) - { - actual = ex + ''; - } - reportCompare(expect, actual, summary + ': ' + code); - - exitFunc ('test'); -} - diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/LexicalConventions/browser.js b/tests/auto/declarative/parserstress/tests/ecma_3/LexicalConventions/browser.js deleted file mode 100644 index e69de29bb2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/LexicalConventions/browser.js +++ /dev/null diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/LexicalConventions/shell.js b/tests/auto/declarative/parserstress/tests/ecma_3/LexicalConventions/shell.js deleted file mode 100644 index 4e1d61d68a..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/LexicalConventions/shell.js +++ /dev/null @@ -1 +0,0 @@ -gTestsubsuite = 'LexicalConventions'; diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Number/15.7.4.2-01.js b/tests/auto/declarative/parserstress/tests/ecma_3/Number/15.7.4.2-01.js deleted file mode 100644 index 36d63ed7e4..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Number/15.7.4.2-01.js +++ /dev/null @@ -1,77 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Jeff Walden. - * Portions created by the Initial Developer are Copyright (C) 2008 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '15.7.4.2-01.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = "411889"; -var summary = "num.toString(), num.toString(10), and num.toString(undefined)" + - " should all be equivalent"; -var actual, expect; - -printBugNumber(BUGNUMBER); -printStatus(summary); - -/************** - * BEGIN TEST * - **************/ - -var failed = false; - -try -{ - var noargs = 3.3.toString(); - var tenarg = 3.3.toString(10); - var undefarg = 3.3.toString(undefined); - - if (noargs !== tenarg) - throw "() !== (10): " + noargs + " !== " + tenarg; - if (tenarg !== undefarg) - throw "(10) !== (undefined): " + tenarg + " !== " + undefarg; -} -catch (e) -{ - failed = e; -} - -expect = false; -actual = failed; - -reportCompare(expect, actual, summary); - -expect = 1; -actual = 3.3.toString.length; -reportCompare(expect, actual, '3.3.toString.length should be 1'); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Number/15.7.4.3-01.js b/tests/auto/declarative/parserstress/tests/ecma_3/Number/15.7.4.3-01.js deleted file mode 100644 index 7c4cba753d..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Number/15.7.4.3-01.js +++ /dev/null @@ -1,69 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Jeff Walden. - * Portions created by the Initial Developer are Copyright (C) 2008 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '15.7.4.3-01.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = "412068"; -var summary = "num.toLocaleString incorrectly accesses its first argument " + - "even when no first argument has been given"; -var actual, expect; - -printBugNumber(BUGNUMBER); -printStatus(summary); - -/************** - * BEGIN TEST * - **************/ - -var failed = false; - -try -{ - if ("3" !== 3..toLocaleString()) - throw '"3" should equal 3..toLocaleString()'; - if ("9" !== 9..toLocaleString(8)) - throw 'Number.prototype.toLocaleString should ignore its first argument'; -} -catch (e) -{ - failed = e; -} - -expect = false; -actual = failed; - -reportCompare(expect, actual, summary); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Number/15.7.4.3-02.js b/tests/auto/declarative/parserstress/tests/ecma_3/Number/15.7.4.3-02.js deleted file mode 100644 index 72e7c56141..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Number/15.7.4.3-02.js +++ /dev/null @@ -1,53 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Jeff Walden. - * Portions created by the Initial Developer are Copyright (C) 2008 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Philip Taylor - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '15.7.4.3-02.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = "446494"; -var summary = "num.toLocaleString should handle exponents"; -var actual, expect; - -printBugNumber(BUGNUMBER); -printStatus(summary); - -expect = '1e-10'; -actual = 1e-10.toLocaleString(); -reportCompare(expect, actual, summary + ': ' + expect); - -expect = 'Infinity'; -actual = Infinity.toLocaleString(); -reportCompare(expect, actual, summary + ': ' + expect); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Number/15.7.4.5-1.js b/tests/auto/declarative/parserstress/tests/ecma_3/Number/15.7.4.5-1.js deleted file mode 100644 index c21efa0b66..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Number/15.7.4.5-1.js +++ /dev/null @@ -1,145 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 2001-07-15 - * - * SUMMARY: Testing Number.prototype.toFixed(fractionDigits) - * See EMCA 262 Edition 3 Section 15.7.4.5 - * - * Also see http://bugzilla.mozilla.org/show_bug.cgi?id=90551 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = '15.7.4.5-1.js'; -var UBound = 0; -var BUGNUMBER = '(none)'; -var summary = 'Testing Number.prototype.toFixed(fractionDigits)'; -var cnIsRangeError = 'instanceof RangeError'; -var cnNotRangeError = 'NOT instanceof RangeError'; -var cnNoErrorCaught = 'NO ERROR CAUGHT...'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; -var testNum = 234.2040506; - - -status = 'Section A of test: no error intended!'; -actual = testNum.toFixed(4); -expect = '234.2041'; -captureThis(); - - -/////////////////////////// OOPS.... /////////////////////////////// -/************************************************************************* - * 15.7.4.5 Number.prototype.toFixed(fractionDigits) - * - * An implementation is permitted to extend the behaviour of toFixed - * for values of fractionDigits less than 0 or greater than 20. In this - * case toFixed would not necessarily throw RangeError for such values. - -status = 'Section B of test: expect RangeError because fractionDigits < 0'; -actual = catchError('testNum.toFixed(-4)'); -expect = cnIsRangeError; -captureThis(); - -status = 'Section C of test: expect RangeError because fractionDigits > 20 '; -actual = catchError('testNum.toFixed(21)'); -expect = cnIsRangeError; -captureThis(); -*************************************************************************/ - - -status = 'Section D of test: no error intended!'; -actual = 0.00001.toFixed(2); -expect = '0.00'; -captureThis(); - -status = 'Section E of test: no error intended!'; -actual = 0.000000000000000000001.toFixed(20); -expect = '0.00000000000000000000'; -captureThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - -function captureThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} - - -function catchError(sEval) -{ - try {eval(sEval);} - catch(e) {return isRangeError(e);} - return cnNoErrorCaught; -} - - -function isRangeError(obj) -{ - if (obj instanceof RangeError) - return cnIsRangeError; - return cnNotRangeError; -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Number/15.7.4.6-1.js b/tests/auto/declarative/parserstress/tests/ecma_3/Number/15.7.4.6-1.js deleted file mode 100644 index dec9ed6a90..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Number/15.7.4.6-1.js +++ /dev/null @@ -1,134 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 2001-07-15 - * - * SUMMARY: Testing Number.prototype.toExponential(fractionDigits) - * See EMCA 262 Edition 3 Section 15.7.4.6 - * - * Also see http://bugzilla.mozilla.org/show_bug.cgi?id=90551 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = '15.7.4.6-1.js'; -var UBound = 0; -var BUGNUMBER = '(none)'; -var summary = 'Testing Number.prototype.toExponential(fractionDigits)'; -var cnIsRangeError = 'instanceof RangeError'; -var cnNotRangeError = 'NOT instanceof RangeError'; -var cnNoErrorCaught = 'NO ERROR CAUGHT...'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; -var testNum = 77.1234; - - -status = 'Section A of test: no error intended!'; -actual = testNum.toExponential(4); -expect = '7.7123e+1'; -captureThis(); - - -/////////////////////////// OOPS.... /////////////////////////////// -/************************************************************************* - * 15.7.4.6 Number.prototype.toExponential(fractionDigits) - * - * An implementation is permitted to extend the behaviour of toExponential - * for values of fractionDigits less than 0 or greater than 20. In this - * case toExponential would not necessarily throw RangeError for such values. - -status = 'Section B of test: expect RangeError because fractionDigits < 0'; -actual = catchError('testNum.toExponential(-4)'); -expect = cnIsRangeError; -captureThis(); - -status = 'Section C of test: expect RangeError because fractionDigits > 20 '; -actual = catchError('testNum.toExponential(21)'); -expect = cnIsRangeError; -captureThis(); -*************************************************************************/ - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - -function captureThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} - - -function catchError(sEval) -{ - try {eval(sEval);} - catch(e) {return isRangeError(e);} - return cnNoErrorCaught; -} - - -function isRangeError(obj) -{ - if (obj instanceof RangeError) - return cnIsRangeError; - return cnNotRangeError; -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Number/15.7.4.7-1.js b/tests/auto/declarative/parserstress/tests/ecma_3/Number/15.7.4.7-1.js deleted file mode 100644 index 5aa0724a46..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Number/15.7.4.7-1.js +++ /dev/null @@ -1,139 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 2001-07-15 - * - * SUMMARY: Testing Number.prototype.toPrecision(precision) - * See EMCA 262 Edition 3 Section 15.7.4.7 - * - * Also see http://bugzilla.mozilla.org/show_bug.cgi?id=90551 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = '15.7.4.7-1.js'; -var UBound = 0; -var BUGNUMBER = '(none)'; -var summary = 'Testing Number.prototype.toPrecision(precision)'; -var cnIsRangeError = 'instanceof RangeError'; -var cnNotRangeError = 'NOT instanceof RangeError'; -var cnNoErrorCaught = 'NO ERROR CAUGHT...'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; -var testNum = 5.123456; - - -status = 'Section A of test: no error intended!'; -actual = testNum.toPrecision(4); -expect = '5.123'; -captureThis(); - - -/////////////////////////// OOPS.... /////////////////////////////// -/************************************************************************* - * 15.7.4.7 Number.prototype.toPrecision(precision) - * - * An implementation is permitted to extend the behaviour of toPrecision - * for values of precision less than 1 or greater than 21. In this - * case toPrecision would not necessarily throw RangeError for such values. - -status = 'Section B of test: expect RangeError because precision < 1'; -actual = catchError('testNum.toPrecision(0)'); -expect = cnIsRangeError; -captureThis(); - -status = 'Section C of test: expect RangeError because precision < 1'; -actual = catchError('testNum.toPrecision(-4)'); -expect = cnIsRangeError; -captureThis(); - -status = 'Section D of test: expect RangeError because precision > 21 '; -actual = catchError('testNum.toPrecision(22)'); -expect = cnIsRangeError; -captureThis(); -*************************************************************************/ - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - -function captureThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} - - -function catchError(sEval) -{ - try {eval(sEval);} - catch(e) {return isRangeError(e);} - return cnNoErrorCaught; -} - - -function isRangeError(obj) -{ - if (obj instanceof RangeError) - return cnIsRangeError; - return cnNotRangeError; -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Number/15.7.4.7-2.js b/tests/auto/declarative/parserstress/tests/ecma_3/Number/15.7.4.7-2.js deleted file mode 100644 index 5c8ff396e4..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Number/15.7.4.7-2.js +++ /dev/null @@ -1,72 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Jeff Walden. - * Portions created by the Initial Developer are Copyright (C) 2008 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '15.7.4.7-2.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = "411893"; -var summary = "num.toPrecision(undefined) should equal num.toString()"; -var actual, expect; - -printBugNumber(BUGNUMBER); -printStatus(summary); - -/************** - * BEGIN TEST * - **************/ - -var failed = false; - -try -{ - var prec = 3.3.toPrecision(undefined); - var str = 3.3.toString(); - if (prec !== str) - { - throw "not equal! " + - "3.3.toPrecision(undefined) === '" + prec + "', " + - "3.3.toString() === '" + str + "'"; - } -} -catch (e) -{ - failed = e; -} - -expect = false; -actual = failed; - -reportCompare(expect, actual, summary); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Number/browser.js b/tests/auto/declarative/parserstress/tests/ecma_3/Number/browser.js deleted file mode 100644 index e69de29bb2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Number/browser.js +++ /dev/null diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Number/regress-442242-01.js b/tests/auto/declarative/parserstress/tests/ecma_3/Number/regress-442242-01.js deleted file mode 100755 index e3fa070e5a..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Number/regress-442242-01.js +++ /dev/null @@ -1,62 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2008 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Igor Bukanov - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-442242-01.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 442242; -var summary = 'Do not assert: INT_FITS_IN_JSVAL(i)'; -var actual = 'No Crash'; -var expect = 'No Crash'; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - var i = 28800000; - -i; - - reportCompare(expect, actual, summary); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Number/shell.js b/tests/auto/declarative/parserstress/tests/ecma_3/Number/shell.js deleted file mode 100644 index 03cca1d551..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Number/shell.js +++ /dev/null @@ -1 +0,0 @@ -gTestsubsuite = 'Number'; diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/NumberFormatting/browser.js b/tests/auto/declarative/parserstress/tests/ecma_3/NumberFormatting/browser.js deleted file mode 100644 index e69de29bb2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/NumberFormatting/browser.js +++ /dev/null diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/NumberFormatting/shell.js b/tests/auto/declarative/parserstress/tests/ecma_3/NumberFormatting/shell.js deleted file mode 100644 index 1847703bf3..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/NumberFormatting/shell.js +++ /dev/null @@ -1 +0,0 @@ -gTestsubsuite = 'NumberFormatting'; diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/NumberFormatting/tostring-001.js b/tests/auto/declarative/parserstress/tests/ecma_3/NumberFormatting/tostring-001.js deleted file mode 100644 index 34152aa5c0..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/NumberFormatting/tostring-001.js +++ /dev/null @@ -1,60 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Rob Ginda rginda@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'tostring-001.js'; - -test(); - -function test() -{ - var n0 = 1e23; - var n1 = 5e22; - var n2 = 1.6e24; - - printStatus ("Number formatting test."); - printBugNumber ("11178"); - - reportCompare ("1e+23", n0.toString(), "1e23 toString()"); - reportCompare ("5e+22", n1.toString(), "5e22 toString()"); - reportCompare ("1.6e+24", n2.toString(), "1.6e24 toString()"); - -} - - diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Object/8.6.1-01.js b/tests/auto/declarative/parserstress/tests/ecma_3/Object/8.6.1-01.js deleted file mode 100755 index 2897ece555..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Object/8.6.1-01.js +++ /dev/null @@ -1,113 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Michael Daumling <daumling@adobe.com> - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '8.6.1-01.js'; -//----------------------------------------------------------------------------- - -var BUGNUMBER = 315436; -var summary = 'In strict mode, setting a read-only property should generate a warning'; - -printBugNumber(BUGNUMBER); -printStatus (summary); - -enterFunc (String (BUGNUMBER)); - -// should throw an error in strict mode -var actual = ''; -var expect = 's.length is read-only'; -var status = summary + ': Throw if STRICT and WERROR is enabled'; - -if (!options().match(/strict/)) -{ - options('strict'); -} -if (!options().match(/werror/)) -{ - options('werror'); -} - -try -{ - var s = new String ('abc'); - s.length = 0; -} -catch (e) -{ - actual = e.message; -} - -reportCompare(expect, actual, status); - -// should not throw an error if in strict mode and WERROR is false - -actual = 'did not throw'; -expect = 'did not throw'; -var status = summary + ': Do not throw if STRICT is enabled and WERROR is disabled'; - -// toggle werror off -options('werror'); - -try -{ - s.length = 0; -} -catch (e) -{ - actual = e.message; -} - -reportCompare(expect, actual, status); - -// should not throw an error if not in strict mode - -actual = 'did not throw'; -expect = 'did not throw'; -var status = summary + ': Do not throw if not in strict mode'; - -// toggle strict off -options('strict'); - -try -{ - s.length = 0; -} -catch (e) -{ - actual = e.message; -} - -reportCompare(expect, actual, status); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Object/8.6.2.6-001.js b/tests/auto/declarative/parserstress/tests/ecma_3/Object/8.6.2.6-001.js deleted file mode 100644 index 8fe2b23f4a..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Object/8.6.2.6-001.js +++ /dev/null @@ -1,113 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 09 September 2002 - * SUMMARY: Test for TypeError on invalid default string value of object - * See ECMA reference at http://bugzilla.mozilla.org/show_bug.cgi?id=167325 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = '8.6.2.6-001.js'; -var UBound = 0; -var BUGNUMBER = 167325; -var summary = "Test for TypeError on invalid default string value of object"; -var TEST_PASSED = 'TypeError'; -var TEST_FAILED = 'Generated an error, but NOT a TypeError!'; -var TEST_FAILED_BADLY = 'Did not generate ANY error!!!'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -status = inSection(1); -expect = TEST_PASSED; -actual = TEST_FAILED_BADLY; -/* - * This should generate a TypeError. See ECMA reference - * at http://bugzilla.mozilla.org/show_bug.cgi?id=167325 - */ -try -{ - var obj = {toString: function() {return new Object();}} - obj == 'abc'; -} -catch(e) -{ - if (e instanceof TypeError) - actual = TEST_PASSED; - else - actual = TEST_FAILED; -} -addThis(); - - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Object/browser.js b/tests/auto/declarative/parserstress/tests/ecma_3/Object/browser.js deleted file mode 100644 index 0e57d1fcd0..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Object/browser.js +++ /dev/null @@ -1,7 +0,0 @@ -var GLOBAL = 'Window'; - -function isObject(obj) -{ - return obj instanceof Object || obj == window; -} - diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Object/class-001.js b/tests/auto/declarative/parserstress/tests/ecma_3/Object/class-001.js deleted file mode 100644 index faa2f4fceb..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Object/class-001.js +++ /dev/null @@ -1,156 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 14 Mar 2001 - * - * SUMMARY: Testing the internal [[Class]] property of objects - * See ECMA-262 Edition 3 13-Oct-1999, Section 8.6.2 - * - * The getJSClass() function we use is in a utility file, e.g. "shell.js". - */ -//----------------------------------------------------------------------------- -var gTestfile = 'class-001.js'; -var i = 0; -var UBound = 0; -var BUGNUMBER = '(none)'; -var summary = 'Testing the internal [[Class]] property of objects'; -var statprefix = 'Current object is: '; -var status = ''; var statusList = [ ]; -var actual = ''; var actualvalue = [ ]; -var expect= ''; var expectedvalue = [ ]; - - -status = 'the global object'; -actual = getJSClass(this); -expect = GLOBAL; -if (expect == 'Window' && actual == 'XPCCrossOriginWrapper') -{ - print('Skipping global object due to XPCCrossOriginWrapper. See bug 390946'); -} -else -{ - addThis(); -} - -status = 'new Object()'; -actual = getJSClass(new Object()); -expect = 'Object'; -addThis(); - -status = 'new Function()'; -actual = getJSClass(new Function()); -expect = 'Function'; -addThis(); - -status = 'new Array()'; -actual = getJSClass(new Array()); -expect = 'Array'; -addThis(); - -status = 'new String()'; -actual = getJSClass(new String()); -expect = 'String'; -addThis(); - -status = 'new Boolean()'; -actual = getJSClass(new Boolean()); -expect = 'Boolean'; -addThis(); - -status = 'new Number()'; -actual = getJSClass(new Number()); -expect = 'Number'; -addThis(); - -status = 'Math'; -actual = getJSClass(Math); // can't use 'new' with the Math object (EMCA3, 15.8) -expect = 'Math'; -addThis(); - -status = 'new Date()'; -actual = getJSClass(new Date()); -expect = 'Date'; -addThis(); - -status = 'new RegExp()'; -actual = getJSClass(new RegExp()); -expect = 'RegExp'; -addThis(); - -status = 'new Error()'; -actual = getJSClass(new Error()); -expect = 'Error'; -addThis(); - - - -//--------------------------------------------------------------------------------- -test(); -//--------------------------------------------------------------------------------- - - - -function addThis() -{ - statusList[UBound] = status; - actualvalue[UBound] = actual; - expectedvalue[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (i = 0; i < UBound; i++) - { - reportCompare(expectedvalue[i], actualvalue[i], getStatus(i)); - } - - exitFunc ('test'); -} - - -function getStatus(i) -{ - return statprefix + statusList[i]; -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Object/class-002.js b/tests/auto/declarative/parserstress/tests/ecma_3/Object/class-002.js deleted file mode 100644 index 0b49ffd9db..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Object/class-002.js +++ /dev/null @@ -1,146 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 14 Mar 2001 - * - * SUMMARY: Testing the [[Class]] property of native constructors. - * See ECMA-262 Edition 3 13-Oct-1999, Section 8.6.2 re [[Class]] property. - * - * Same as class-001.js - but testing the constructors here, not - * object instances. Therefore we expect the [[Class]] property to - * equal 'Function' in each case. - * - * The getJSClass() function we use is in a utility file, e.g. "shell.js" - */ -//----------------------------------------------------------------------------- -var gTestfile = 'class-002.js'; -var i = 0; -var UBound = 0; -var BUGNUMBER = '(none)'; -var summary = 'Testing the internal [[Class]] property of native constructors'; -var statprefix = 'Current constructor is: '; -var status = ''; var statusList = [ ]; -var actual = ''; var actualvalue = [ ]; -var expect= ''; var expectedvalue = [ ]; - -/* - * We set the expect variable each time only for readability. - * We expect 'Function' every time; see discussion above - - */ -status = 'Object'; -actual = getJSClass(Object); -expect = 'Function'; -addThis(); - -status = 'Function'; -actual = getJSClass(Function); -expect = 'Function'; -addThis(); - -status = 'Array'; -actual = getJSClass(Array); -expect = 'Function'; -addThis(); - -status = 'String'; -actual = getJSClass(String); -expect = 'Function'; -addThis(); - -status = 'Boolean'; -actual = getJSClass(Boolean); -expect = 'Function'; -addThis(); - -status = 'Number'; -actual = getJSClass(Number); -expect = 'Function'; -addThis(); - -status = 'Date'; -actual = getJSClass(Date); -expect = 'Function'; -addThis(); - -status = 'RegExp'; -actual = getJSClass(RegExp); -expect = 'Function'; -addThis(); - -status = 'Error'; -actual = getJSClass(Error); -expect = 'Function'; -addThis(); - - - -//--------------------------------------------------------------------------------- -test(); -//--------------------------------------------------------------------------------- - - - -function addThis() -{ - statusList[UBound] = status; - actualvalue[UBound] = actual; - expectedvalue[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (i = 0; i < UBound; i++) - { - reportCompare(expectedvalue[i], actualvalue[i], getStatus(i)); - } - - exitFunc ('test'); -} - - -function getStatus(i) -{ - return statprefix + statusList[i]; -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Object/class-003.js b/tests/auto/declarative/parserstress/tests/ecma_3/Object/class-003.js deleted file mode 100644 index 7afedb2985..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Object/class-003.js +++ /dev/null @@ -1,139 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 14 Mar 2001 - * - * SUMMARY: Testing the [[Class]] property of native error types. - * See ECMA-262 Edition 3, Section 8.6.2 for the [[Class]] property. - * - * Same as class-001.js - but testing only the native error types here. - * See ECMA-262 Edition 3, Section 15.11.6 for a list of these types. - * - * ECMA expects the [[Class]] property to equal 'Error' in each case. - * See ECMA-262 Edition 3, Sections 15.11.1.1 and 15.11.7.2 for this. - * See http://bugzilla.mozilla.org/show_bug.cgi?id=56868 - * - * The getJSClass() function we use is in a utility file, e.g. "shell.js" - */ -//----------------------------------------------------------------------------- -var gTestfile = 'class-003.js'; -var i = 0; -var UBound = 0; -var BUGNUMBER = 56868; -var summary = 'Testing the internal [[Class]] property of native error types'; -var statprefix = 'Current object is: '; -var status = ''; var statusList = [ ]; -var actual = ''; var actualvalue = [ ]; -var expect= ''; var expectedvalue = [ ]; - -/* - * We set the expect variable each time only for readability. - * We expect 'Error' every time; see discussion above - - */ -status = 'new Error()'; -actual = getJSClass(new Error()); -expect = 'Error'; -addThis(); - -status = 'new EvalError()'; -actual = getJSClass(new EvalError()); -expect = 'Error'; -addThis(); - -status = 'new RangeError()'; -actual = getJSClass(new RangeError()); -expect = 'Error'; -addThis(); - -status = 'new ReferenceError()'; -actual = getJSClass(new ReferenceError()); -expect = 'Error'; -addThis(); - -status = 'new SyntaxError()'; -actual = getJSClass(new SyntaxError()); -expect = 'Error'; -addThis(); - -status = 'new TypeError()'; -actual = getJSClass(new TypeError()); -expect = 'Error'; -addThis(); - -status = 'new URIError()'; -actual = getJSClass(new URIError()); -expect = 'Error'; -addThis(); - - - -//--------------------------------------------------------------------------------- -test(); -//--------------------------------------------------------------------------------- - - - -function addThis() -{ - statusList[UBound] = status; - actualvalue[UBound] = actual; - expectedvalue[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (i = 0; i < UBound; i++) - { - reportCompare(expectedvalue[i], actualvalue[i], getStatus(i)); - } - - exitFunc ('test'); -} - - -function getStatus(i) -{ - return statprefix + statusList[i]; -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Object/class-004.js b/tests/auto/declarative/parserstress/tests/ecma_3/Object/class-004.js deleted file mode 100644 index 729b041086..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Object/class-004.js +++ /dev/null @@ -1,139 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 14 Mar 2001 - * - * SUMMARY: Testing [[Class]] property of native error constructors. - * See ECMA-262 Edition 3, Section 8.6.2 for the [[Class]] property. - * - * See ECMA-262 Edition 3, Section 15.11.6 for the native error types. - * See http://bugzilla.mozilla.org/show_bug.cgi?id=56868 - * - * Same as class-003.js - but testing the constructors here, not - * object instances. Therefore we expect the [[Class]] property to - * equal 'Function' in each case. - * - * The getJSClass() function we use is in a utility file, e.g. "shell.js" - */ -//----------------------------------------------------------------------------- -var gTestfile = 'class-004.js'; -var i = 0; -var UBound = 0; -var BUGNUMBER = 56868; -var summary = 'Testing the internal [[Class]] property of native error constructors'; -var statprefix = 'Current constructor is: '; -var status = ''; var statusList = [ ]; -var actual = ''; var actualvalue = [ ]; -var expect= ''; var expectedvalue = [ ]; - -/* - * We set the expect variable each time only for readability. - * We expect 'Function' every time; see discussion above - - */ -status = 'Error'; -actual = getJSClass(Error); -expect = 'Function'; -addThis(); - -status = 'EvalError'; -actual = getJSClass(EvalError); -expect = 'Function'; -addThis(); - -status = 'RangeError'; -actual = getJSClass(RangeError); -expect = 'Function'; -addThis(); - -status = 'ReferenceError'; -actual = getJSClass(ReferenceError); -expect = 'Function'; -addThis(); - -status = 'SyntaxError'; -actual = getJSClass(SyntaxError); -expect = 'Function'; -addThis(); - -status = 'TypeError'; -actual = getJSClass(TypeError); -expect = 'Function'; -addThis(); - -status = 'URIError'; -actual = getJSClass(URIError); -expect = 'Function'; -addThis(); - - - -//--------------------------------------------------------------------------------- -test(); -//--------------------------------------------------------------------------------- - - - -function addThis() -{ - statusList[UBound] = status; - actualvalue[UBound] = actual; - expectedvalue[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (i = 0; i < UBound; i++) - { - reportCompare(expectedvalue[i], actualvalue[i], getStatus(i)); - } - - exitFunc ('test'); -} - - -function getStatus(i) -{ - return statprefix + statusList[i]; -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Object/class-005.js b/tests/auto/declarative/parserstress/tests/ecma_3/Object/class-005.js deleted file mode 100644 index f57d0681cf..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Object/class-005.js +++ /dev/null @@ -1,124 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 14 Mar 2001 - * - * SUMMARY: Testing the internal [[Class]] property of user-defined types. - * See ECMA-262 Edition 3 13-Oct-1999, Section 8.6.2 re [[Class]] property. - * - * Same as class-001.js - but testing user-defined types here, not - * native types. Therefore we expect the [[Class]] property to equal - * 'Object' in each case - - * - * The getJSClass() function we use is in a utility file, e.g. "shell.js" - */ -//----------------------------------------------------------------------------- -var gTestfile = 'class-005.js'; -var i = 0; -var UBound = 0; -var BUGNUMBER = '(none)'; -var summary = 'Testing the internal [[Class]] property of user-defined types'; -var statprefix = 'Current user-defined type is: '; -var status = ''; var statusList = [ ]; -var actual = ''; var actualvalue = [ ]; -var expect= ''; var expectedvalue = [ ]; - - -Calf.prototype= new Cow(); - -/* - * We set the expect variable each time only for readability. - * We expect 'Object' every time; see discussion above - - */ -status = 'new Cow()'; -actual = getJSClass(new Cow()); -expect = 'Object'; -addThis(); - -status = 'new Calf()'; -actual = getJSClass(new Calf()); -expect = 'Object'; -addThis(); - - -//--------------------------------------------------------------------------------- -test(); -//--------------------------------------------------------------------------------- - - -function addThis() -{ - statusList[UBound] = status; - actualvalue[UBound] = actual; - expectedvalue[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (i = 0; i < UBound; i++) - { - reportCompare(expectedvalue[i], actualvalue[i], getStatus(i)); - } - - exitFunc ('test'); -} - - -function getStatus(i) -{ - return statprefix + statusList[i]; -} - - -function Cow(name) -{ - this.name=name; -} - - -function Calf(name) -{ - this.name=name; -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Object/regress-361274.js b/tests/auto/declarative/parserstress/tests/ecma_3/Object/regress-361274.js deleted file mode 100755 index d3962004e3..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Object/regress-361274.js +++ /dev/null @@ -1,66 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2006 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Jason Sachs - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-361274.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 361274; -var summary = 'Embedded nulls in property names'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - var x='123'+'\0'+'456'; - var y='123'+'\0'+'789'; - var a={}; - a[x]=1; - a[y]=2; - - reportCompare(1, a[x], summary + ': 123\\0456'); - reportCompare(2, a[y], summary + ': 123\\0789'); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Object/regress-385393-07.js b/tests/auto/declarative/parserstress/tests/ecma_3/Object/regress-385393-07.js deleted file mode 100755 index 0473fe4956..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Object/regress-385393-07.js +++ /dev/null @@ -1,67 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Jesse Ruderman - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-385393-07.js'; - -//----------------------------------------------------------------------------- -var BUGNUMBER = 385393; -var summary = 'Regression test for bug 385393'; -var actual = 'No Crash'; -var expect = 'No Crash'; - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - try - { - (2).eval(); - } - catch(ex) - { - } - - reportCompare(expect, actual, summary); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Object/regress-72773.js b/tests/auto/declarative/parserstress/tests/ecma_3/Object/regress-72773.js deleted file mode 100644 index 5b0dee62bf..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Object/regress-72773.js +++ /dev/null @@ -1,97 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 09 May 2001 - * - * SUMMARY: Regression test: we shouldn't crash on this code - * See http://bugzilla.mozilla.org/show_bug.cgi?id=72773 - * - * See ECMA-262 Edition 3 13-Oct-1999, Section 8.6.2 re [[Class]] property. - * - * Same as class-001.js - but testing user-defined types here, not - * native types. Therefore we expect the [[Class]] property to equal - * 'Object' in each case - - * - * The getJSClass() function we use is in a utility file, e.g. "shell.js" - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-72773.js'; -var BUGNUMBER = 72773; -var summary = "Regression test: we shouldn't crash on this code"; -var status = ''; -var actual = ''; -var expect = ''; -var sToEval = ''; - -/* - * This code should produce an error, but not a crash. - * 'TypeError: Function.prototype.toString called on incompatible object' - */ -sToEval += 'function Cow(name){this.name = name;}' -sToEval += 'function Calf(str){this.name = str;}' -sToEval += 'Calf.prototype = Cow;' -sToEval += 'new Calf().toString();' - -status = 'Trying to catch an expected error'; -try -{ - eval(sToEval); -} -catch(e) -{ - actual = getJSClass(e); - expect = 'Error'; -} - - -//---------------------------------------------------------------------------------------------- -test(); -//---------------------------------------------------------------------------------------------- - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - reportCompare(expect, actual, status); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Object/regress-79129-001.js b/tests/auto/declarative/parserstress/tests/ecma_3/Object/regress-79129-001.js deleted file mode 100644 index efafed8047..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Object/regress-79129-001.js +++ /dev/null @@ -1,80 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 06 May 2001 - * - * SUMMARY: Regression test: we shouldn't crash on this code - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=79129 - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-79129-001.js'; -var BUGNUMBER = 79129; -var summary = "Regression test: we shouldn't crash on this code"; - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - tryThis(); - reportCompare('No Crash', 'No Crash', 'Should not crash'); - exitFunc ('test'); -} - - -function tryThis() -{ - obj={}; - obj.a = obj.b = obj.c = 1; - delete obj.a; - delete obj.b; - delete obj.c; - obj.d = obj.e = 1; - obj.a=1; - obj.b=1; - obj.c=1; - obj.d=1; - obj.e=1; -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Object/shell.js b/tests/auto/declarative/parserstress/tests/ecma_3/Object/shell.js deleted file mode 100644 index d0ee054485..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Object/shell.js +++ /dev/null @@ -1,105 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 14 Mar 2001 - * - * SUMMARY: Utility functions for testing objects - - * - * Suppose obj is an instance of a native type, e.g. Number. - * Then obj.toString() invokes Number.prototype.toString(). - * We would also like to access Object.prototype.toString(). - * - * The difference is this: suppose obj = new Number(7). - * Invoking Number.prototype.toString() on this just returns 7. - * Object.prototype.toString() on this returns '[object Number]'. - * - * The getJSType() function below will return '[object Number]' for us. - * The getJSClass() function returns 'Number', the [[Class]] property of obj. - * See ECMA-262 Edition 3, 13-Oct-1999, Section 8.6.2 - */ -//----------------------------------------------------------------------------- - -gTestsubsuite = 'Object'; - -var cnNoObject = 'Unexpected Error!!! Parameter to this function must be an object'; -var cnNoClass = 'Unexpected Error!!! Cannot find Class property'; -var cnObjectToString = Object.prototype.toString; -var GLOBAL = 'global'; - -// checks that it's safe to call findType() -function getJSType(obj) -{ - if (isObject(obj)) - return findType(obj); - return cnNoObject; -} - - -// checks that it's safe to call findType() -function getJSClass(obj) -{ - if (isObject(obj)) - return findClass(findType(obj)); - return cnNoObject; -} - - -function findType(obj) -{ - return cnObjectToString.apply(obj); -} - - -// given '[object Number]', return 'Number' -function findClass(sType) -{ - var re = /^\[.*\s+(\w+)\s*\]$/; - var a = sType.match(re); - - if (a && a[1]) - return a[1]; - return cnNoClass; -} - - -function isObject(obj) -{ - return obj instanceof Object; -} - diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Operators/11.13.1-001.js b/tests/auto/declarative/parserstress/tests/ecma_3/Operators/11.13.1-001.js deleted file mode 100644 index 935eed2de1..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Operators/11.13.1-001.js +++ /dev/null @@ -1,152 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * brendan@mozilla.org, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 08 May 2003 - * SUMMARY: JS should evaluate RHS before binding LHS implicit variable - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=204919 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = '11.13.1-001.js'; -var UBound = 0; -var BUGNUMBER = 204919; -var summary = 'JS should evaluate RHS before binding LHS implicit variable'; -var TEST_PASSED = 'ReferenceError'; -var TEST_FAILED = 'Generated an error, but NOT a ReferenceError!'; -var TEST_FAILED_BADLY = 'Did not generate ANY error!!!'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -/* - * global scope - - */ -status = inSection(1); -try -{ - x = x; - actual = TEST_FAILED_BADLY; -} -catch(e) -{ - if (e instanceof ReferenceError) - actual = TEST_PASSED; - else - actual = TEST_FAILED; -} -expect = TEST_PASSED; -addThis(); - - -/* - * function scope - - */ -status = inSection(2); -try -{ - (function() {y = y;})(); - actual = TEST_FAILED_BADLY; -} -catch(e) -{ - if (e instanceof ReferenceError) - actual = TEST_PASSED; - else - actual = TEST_FAILED; -} -expect = TEST_PASSED; -addThis(); - - -/* - * eval scope - - */ -status = inSection(3); -try -{ - eval('z = z'); - actual = TEST_FAILED_BADLY; -} -catch(e) -{ - if (e instanceof ReferenceError) - actual = TEST_PASSED; - else - actual = TEST_FAILED; -} -expect = TEST_PASSED; -addThis(); - - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Operators/11.13.1-002.js b/tests/auto/declarative/parserstress/tests/ecma_3/Operators/11.13.1-002.js deleted file mode 100755 index 5d3307e4a7..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Operators/11.13.1-002.js +++ /dev/null @@ -1,57 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Seno.Aiko@gmail.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '11.13.1-002.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 312354; -var summary = '11.13.1 Simple Assignment should return type of RHS'; -var actual = ''; -var expect = ''; - -// XXX this test should really test each property of the native -// objects, but I'm too lazy. Patches accepted. - -printBugNumber(BUGNUMBER); -printStatus (summary); - -var re = /x/g; -var y = re.lastIndex = "7"; - -expect = "string"; -actual = typeof y; - -reportCompare(expect, actual, summary); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Operators/11.4.1-001.js b/tests/auto/declarative/parserstress/tests/ecma_3/Operators/11.4.1-001.js deleted file mode 100644 index 7a5ed8f915..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Operators/11.4.1-001.js +++ /dev/null @@ -1,120 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * igor@fastmail.fm, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 14 April 2003 - * SUMMARY: |delete x.y| should return |true| if |x| has no property |y| - * See http://bugzilla.mozilla.org/show_bug.cgi?id=201987 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = '11.4.1-001.js'; -var UBound = 0; -var BUGNUMBER = 201987; -var summary = '|delete x.y| should return |true| if |x| has no property |y|'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -status = inSection(1); -var x = {}; -actual = delete x.y; -expect = true; -addThis(); - -status = inSection(2); -actual = delete {}.y; -expect = true; -addThis(); - -status = inSection(3); -actual = delete "".y; -expect = true; -addThis(); - -status = inSection(4); -actual = delete /abc/.y; -expect = true; -addThis(); - -status = inSection(5); -actual = delete (new Date()).y; -expect = true; -addThis(); - -status = inSection(6); -var x = 99; -actual = delete x.y; -expect = true; -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Operators/11.4.1-002.js b/tests/auto/declarative/parserstress/tests/ecma_3/Operators/11.4.1-002.js deleted file mode 100755 index c48565ba5f..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Operators/11.4.1-002.js +++ /dev/null @@ -1,72 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): x0 - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '11.4.1-002.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 423300; -var summary = '11.4.1 - The delete Operator - delete f()'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function f() {} - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - expect = true; - - try - { - actual = delete f(); - } - catch(ex) - { - actual = ex + ''; - } - - reportCompare(expect, actual, summary); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Operators/browser.js b/tests/auto/declarative/parserstress/tests/ecma_3/Operators/browser.js deleted file mode 100644 index e69de29bb2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Operators/browser.js +++ /dev/null diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Operators/order-01.js b/tests/auto/declarative/parserstress/tests/ecma_3/Operators/order-01.js deleted file mode 100755 index 671faceb81..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Operators/order-01.js +++ /dev/null @@ -1,108 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2008 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'order-01.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 433672; -var summary = 'operator evaluation order'; -var actual = ''; -var expect = ''; - -function makeObject(label) -{ - var o = (function (){}); - - o.label = label; - o.valueOf = (function() { actual += this.label + ' valueOf, '; return Object.prototype.valueOf.call(this); }); - o.toString = (function() { actual += this.label + ' toString, '; return Object.prototype.toString.call(this); }); - - return o; -} - -operators = [ - {section: '11.5.1', operator: '*'}, - {section: '11.5.2', operator: '/'}, - {section: '11.5.3', operator: '%'}, - {section: '11.6.1', operator: '+'}, - {section: '11.6.2', operator: '-'}, - {section: '11.7.1', operator: '<<'}, - {section: '11.7.2', operator: '>>'}, - {section: '11.7.3', operator: '>>>'}, - {section: '11.8.1', operator: '<'}, - {section: '11.8.2', operator: '>'}, - {section: '11.8.3', operator: '<='}, - {section: '11.8.4', operator: '>='}, - {section: '11.10', operator: '&'}, - {section: '11.10', operator: '^'}, - {section: '11.10', operator: '|'}, - {section: '11.13.2', operator: '*='}, - {section: '11.13.2', operator: '/='}, - {section: '11.13.2', operator: '%='}, - {section: '11.13.2', operator: '+='}, - {section: '11.13.2', operator: '<<='}, - {section: '11.13.2', operator: '>>='}, - {section: '11.13.2', operator: '>>>='}, - {section: '11.13.2', operator: '&='}, - {section: '11.13.2', operator: '^='}, - {section: '11.13.2', operator: '|='}, - ]; - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < operators.length; i++) - { - expect = 'left valueOf, left toString, right valueOf, right toString, '; - actual = ''; - - var left = makeObject('left'); - var right = makeObject('right'); - - eval('left ' + operators[i].operator + ' right'); - - reportCompare(expect, actual, summary + ': ' + operators[i].section + ' ' + operators[i].operator); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Operators/shell.js b/tests/auto/declarative/parserstress/tests/ecma_3/Operators/shell.js deleted file mode 100644 index 910515cfe4..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Operators/shell.js +++ /dev/null @@ -1 +0,0 @@ -gTestsubsuite = 'Operators'; diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/README b/tests/auto/declarative/parserstress/tests/ecma_3/README deleted file mode 100755 index eebd421c2e..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/README +++ /dev/null @@ -1 +0,0 @@ -ECMA 262 Edition 3 diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.2-1.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.2-1.js deleted file mode 100644 index 9439a2ccd6..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.2-1.js +++ /dev/null @@ -1,181 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * rogerl@netscape.com, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 09 July 2002 - * SUMMARY: RegExp conformance test - * - * These gTestcases are derived from the examples in the ECMA-262 Ed.3 spec - * scattered through section 15.10.2. - * - */ -//----------------------------------------------------------------------------- -var gTestfile = '15.10.2-1.js'; -var i = 0; -var BUGNUMBER = '(none)'; -var summary = 'RegExp conformance test'; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -status = inSection(1); -pattern = /a|ab/; -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = Array('a'); -addThis(); - -status = inSection(2); -pattern = /((a)|(ab))((c)|(bc))/; -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abc', 'a', 'a', undefined, 'bc', undefined, 'bc'); -addThis(); - -status = inSection(3); -pattern = /a[a-z]{2,4}/; -string = 'abcdefghi'; -actualmatch = string.match(pattern); -expectedmatch = Array('abcde'); -addThis(); - -status = inSection(4); -pattern = /a[a-z]{2,4}?/; -string = 'abcdefghi'; -actualmatch = string.match(pattern); -expectedmatch = Array('abc'); -addThis(); - -status = inSection(5); -pattern = /(aa|aabaac|ba|b|c)*/; -string = 'aabaac'; -actualmatch = string.match(pattern); -expectedmatch = Array('aaba', 'ba'); -addThis(); - -status = inSection(6); -pattern = /^(a+)\1*,\1+$/; -string = 'aaaaaaaaaa,aaaaaaaaaaaaaaa'; -actualmatch = string.match(pattern); -expectedmatch = Array('aaaaaaaaaa,aaaaaaaaaaaaaaa', 'aaaaa'); -addThis(); - -status = inSection(7); -pattern = /(z)((a+)?(b+)?(c))*/; -string = 'zaacbbbcac'; -actualmatch = string.match(pattern); -expectedmatch = Array('zaacbbbcac', 'z', 'ac', 'a', undefined, 'c'); -addThis(); - -status = inSection(8); -pattern = /(a*)*/; -string = 'b'; -actualmatch = string.match(pattern); -expectedmatch = Array('', undefined); -addThis(); - -status = inSection(9); -pattern = /(a*)b\1+/; -string = 'baaaac'; -actualmatch = string.match(pattern); -expectedmatch = Array('b', ''); -addThis(); - -status = inSection(10); -pattern = /(?=(a+))/; -string = 'baaabac'; -actualmatch = string.match(pattern); -expectedmatch = Array('', 'aaa'); -addThis(); - -status = inSection(11); -pattern = /(?=(a+))a*b\1/; -string = 'baaabac'; -actualmatch = string.match(pattern); -expectedmatch = Array('aba', 'a'); -addThis(); - -status = inSection(12); -pattern = /(.*?)a(?!(a+)b\2c)\2(.*)/; -string = 'baaabaac'; -actualmatch = string.match(pattern); -expectedmatch = Array('baaabaac', 'ba', undefined, 'abaac'); -addThis(); - -status = inSection(13); -pattern = /(?=(a+))/; -string = 'baaabac'; -actualmatch = string.match(pattern); -expectedmatch = Array('', 'aaa'); -addThis(); - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.2.12.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.2.12.js deleted file mode 100755 index d68b86c2ed..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.2.12.js +++ /dev/null @@ -1,63 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Igor Tandetnik - * Martin Honnen - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '15.10.2.12.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 378738; -var summary = '15.10.2.12 - CharacterClassEscape \d'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - expect = false; - actual = /\d/.test("\uFF11"); - - reportCompare(expect, actual, summary); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.3.1-1.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.3.1-1.js deleted file mode 100644 index 7286cea297..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.3.1-1.js +++ /dev/null @@ -1,136 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 26 November 2000 - * - * - * SUMMARY: Passing (RegExp object, flag) to RegExp() function. - * This test arose from Bugzilla bug 61266. The ECMA3 section is: - * - * 15.10.3 The RegExp Constructor Called as a Function - * - * 15.10.3.1 RegExp(pattern, flags) - * - * If pattern is an object R whose [[Class]] property is "RegExp" - * and flags is undefined, then return R unchanged. Otherwise - * call the RegExp constructor (section 15.10.4.1), passing it the - * pattern and flags arguments and return the object constructed - * by that constructor. - * - * - * The current test will check the first scenario outlined above: - * - * "pattern" is itself a RegExp object R - * "flags" is undefined - * - * The flags parameter will be undefined in the sense of not being - * provided. We check that RegExp(R) returns R - - */ -//----------------------------------------------------------------------------- -var gTestfile = '15.10.3.1-1.js'; -var BUGNUMBER = '61266'; -var summary = 'Passing (RegExp object,flag) to RegExp() function'; -var statprefix = 'RegExp(new RegExp('; -var comma = ', '; var singlequote = "'"; var closeparens = '))'; -var cnSUCCESS = 'RegExp() returned the supplied RegExp object'; -var cnFAILURE = 'RegExp() did NOT return the supplied RegExp object'; -var i = -1; var j = -1; var s = ''; var f = ''; -var obj = {}; -var status = ''; var actual = ''; var expect = ''; -var patterns = new Array(); -var flags = new Array(); - - -// various regular expressions to try - -patterns[0] = ''; -patterns[1] = 'abc'; -patterns[2] = '(.*)(3-1)\s\w'; -patterns[3] = '(.*)(...)\\s\\w'; -patterns[4] = '[^A-Za-z0-9_]'; -patterns[5] = '[^\f\n\r\t\v](123.5)([4 - 8]$)'; - -// various flags to try - -flags[0] = 'i'; -flags[1] = 'g'; -flags[2] = 'm'; -flags[3] = undefined; - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (i in patterns) - { - s = patterns[i]; - - for (j in flags) - { - f = flags[j]; - status = getStatus(s, f); - obj = new RegExp(s, f); - - actual = (obj == RegExp(obj))? cnSUCCESS : cnFAILURE; - expect = cnSUCCESS; - reportCompare (expect, actual, status); - } - } - - exitFunc ('test'); -} - - -function getStatus(regexp, flag) -{ - return (statprefix + quote(regexp) + comma + flag + closeparens); -} - - -function quote(text) -{ - return (singlequote + text + singlequote); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.3.1-2.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.3.1-2.js deleted file mode 100644 index d78be13c25..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.3.1-2.js +++ /dev/null @@ -1,144 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 26 November 2000 - * - * - * SUMMARY: Passing (RegExp object, flag) to RegExp() function. - * This test arose from Bugzilla bug 61266. The ECMA3 section is: - * - * 15.10.3 The RegExp Constructor Called as a Function - * - * 15.10.3.1 RegExp(pattern, flags) - * - * If pattern is an object R whose [[Class]] property is "RegExp" - * and flags is undefined, then return R unchanged. Otherwise - * call the RegExp constructor (section 15.10.4.1), passing it the - * pattern and flags arguments and return the object constructed - * by that constructor. - * - * - * The current test will check the first scenario outlined above: - * - * "pattern" is itself a RegExp object R - * "flags" is undefined - * - * This test is identical to test 15.10.3.1-1.js, except here we do: - * - * RegExp(R, undefined); - * - * instead of: - * - * RegExp(R); - * - * - * We check that RegExp(R, undefined) returns R - - */ -//----------------------------------------------------------------------------- -var gTestfile = '15.10.3.1-2.js'; -var BUGNUMBER = '61266'; -var summary = 'Passing (RegExp object,flag) to RegExp() function'; -var statprefix = 'RegExp(new RegExp('; -var comma = ', '; var singlequote = "'"; var closeparens = '))'; -var cnSUCCESS = 'RegExp() returned the supplied RegExp object'; -var cnFAILURE = 'RegExp() did NOT return the supplied RegExp object'; -var i = -1; var j = -1; var s = ''; var f = ''; -var obj = {}; -var status = ''; var actual = ''; var expect = ''; -var patterns = new Array(); -var flags = new Array(); - - -// various regular expressions to try - -patterns[0] = ''; -patterns[1] = 'abc'; -patterns[2] = '(.*)(3-1)\s\w'; -patterns[3] = '(.*)(...)\\s\\w'; -patterns[4] = '[^A-Za-z0-9_]'; -patterns[5] = '[^\f\n\r\t\v](123.5)([4 - 8]$)'; - -// various flags to try - -flags[0] = 'i'; -flags[1] = 'g'; -flags[2] = 'm'; -flags[3] = undefined; - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (i in patterns) - { - s = patterns[i]; - - for (j in flags) - { - f = flags[j]; - status = getStatus(s, f); - obj = new RegExp(s, f); - - actual = (obj == RegExp(obj, undefined))? cnSUCCESS : cnFAILURE ; - expect = cnSUCCESS; - reportCompare (expect, actual, status); - } - } - - exitFunc ('test'); -} - - -function getStatus(regexp, flag) -{ - return (statprefix + quote(regexp) + comma + flag + closeparens); -} - - -function quote(text) -{ - return (singlequote + text + singlequote); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.4.1-1.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.4.1-1.js deleted file mode 100644 index 47faf0051b..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.4.1-1.js +++ /dev/null @@ -1,127 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 26 November 2000 - * - * - *SUMMARY: Passing a RegExp object to a RegExp() constructor. - *This test arose from Bugzilla bug 61266. The ECMA3 section is: - * - * 15.10.4.1 new RegExp(pattern, flags) - * - * If pattern is an object R whose [[Class]] property is "RegExp" and - * flags is undefined, then let P be the pattern used to construct R - * and let F be the flags used to construct R. If pattern is an object R - * whose [[Class]] property is "RegExp" and flags is not undefined, - * then throw a TypeError exception. Otherwise, let P be the empty string - * if pattern is undefined and ToString(pattern) otherwise, and let F be - * the empty string if flags is undefined and ToString(flags) otherwise. - * - * - *The current test will check the first scenario outlined above: - * - * "pattern" is itself a RegExp object R - * "flags" is undefined - * - * We check that a new RegExp object obj2 defined from these parameters - * is morally the same as the original RegExp object obj1. Of course, they - * can't be equal as objects - so we check their enumerable properties... - * - * In this test, the initial RegExp object obj1 will not include a - * flag. The flags parameter for obj2 will be undefined in the sense - * of not being provided. - */ -//----------------------------------------------------------------------------- -var gTestfile = '15.10.4.1-1.js'; -var BUGNUMBER = '61266'; -var summary = 'Passing a RegExp object to a RegExp() constructor'; -var statprefix = 'Applying RegExp() twice to pattern '; -var statsuffix = '; testing property '; -var singlequote = "'"; -var i = -1; var s = ''; -var obj1 = {}; var obj2 = {}; -var status = ''; var actual = ''; var expect = ''; var msg = ''; -var patterns = new Array(); - - -// various regular expressions to try - -patterns[0] = ''; -patterns[1] = 'abc'; -patterns[2] = '(.*)(3-1)\s\w'; -patterns[3] = '(.*)(...)\\s\\w'; -patterns[4] = '[^A-Za-z0-9_]'; -patterns[5] = '[^\f\n\r\t\v](123.5)([4 - 8]$)'; - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (i in patterns) - { - s = patterns[i]; - status =getStatus(s); - obj1 = new RegExp(s); - obj2 = new RegExp(obj1); - - reportCompare (obj1 + '', obj2 + '', status); - } - - exitFunc ('test'); -} - - -function getStatus(regexp) -{ - return (statprefix + quote(regexp) + statsuffix); -} - - -function quote(text) -{ - return (singlequote + text + singlequote); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.4.1-2.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.4.1-2.js deleted file mode 100644 index 1d67b8afe6..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.4.1-2.js +++ /dev/null @@ -1,133 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 26 November 2000 - * - * - *SUMMARY: Passing a RegExp object to a RegExp() constructor. - *This test arose from Bugzilla bug 61266. The ECMA3 section is: - * - * 15.10.4.1 new RegExp(pattern, flags) - * - * If pattern is an object R whose [[Class]] property is "RegExp" and - * flags is undefined, then let P be the pattern used to construct R - * and let F be the flags used to construct R. If pattern is an object R - * whose [[Class]] property is "RegExp" and flags is not undefined, - * then throw a TypeError exception. Otherwise, let P be the empty string - * if pattern is undefined and ToString(pattern) otherwise, and let F be - * the empty string if flags is undefined and ToString(flags) otherwise. - * - * - *The current test will check the first scenario outlined above: - * - * "pattern" is itself a RegExp object R - * "flags" is undefined - * - * We check that a new RegExp object obj2 defined from these parameters - * is morally the same as the original RegExp object obj1. Of course, they - * can't be equal as objects - so we check their enumerable properties... - * - * In this test, the initial RegExp object obj1 will not include a - * flag. This test is identical to test 15.10.4.1-1.js, except that - * here we use this syntax: - * - * obj2 = new RegExp(obj1, undefined); - * - * instead of: - * - * obj2 = new RegExp(obj1); - */ -//----------------------------------------------------------------------------- -var gTestfile = '15.10.4.1-2.js'; -var BUGNUMBER = '61266'; -var summary = 'Passing a RegExp object to a RegExp() constructor'; -var statprefix = 'Applying RegExp() twice to pattern '; -var statsuffix = '; testing property '; -var singlequote = "'"; -var i = -1; var s = ''; -var obj1 = {}; var obj2 = {}; -var status = ''; var actual = ''; var expect = ''; var msg = ''; -var patterns = new Array(); - - -// various regular expressions to try - -patterns[0] = ''; -patterns[1] = 'abc'; -patterns[2] = '(.*)(3-1)\s\w'; -patterns[3] = '(.*)(...)\\s\\w'; -patterns[4] = '[^A-Za-z0-9_]'; -patterns[5] = '[^\f\n\r\t\v](123.5)([4 - 8]$)'; - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (i in patterns) - { - s = patterns[i]; - status =getStatus(s); - obj1 = new RegExp(s); - obj2 = new RegExp(obj1, undefined); // see introduction to bug - - reportCompare (obj1 + '', obj2 + '', status); - } - - exitFunc ('test'); -} - - -function getStatus(regexp) -{ - return (statprefix + quote(regexp) + statsuffix); -} - - -function quote(text) -{ - return (singlequote + text + singlequote); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.4.1-3.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.4.1-3.js deleted file mode 100644 index 12ef46bde8..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.4.1-3.js +++ /dev/null @@ -1,139 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 26 November 2000 - * - * - *SUMMARY: Passing a RegExp object to a RegExp() constructor. - *This test arose from Bugzilla bug 61266. The ECMA3 section is: - * - * 15.10.4.1 new RegExp(pattern, flags) - * - * If pattern is an object R whose [[Class]] property is "RegExp" and - * flags is undefined, then let P be the pattern used to construct R - * and let F be the flags used to construct R. If pattern is an object R - * whose [[Class]] property is "RegExp" and flags is not undefined, - * then throw a TypeError exception. Otherwise, let P be the empty string - * if pattern is undefined and ToString(pattern) otherwise, and let F be - * the empty string if flags is undefined and ToString(flags) otherwise. - * - * - *The current test will check the first scenario outlined above: - * - * "pattern" is itself a RegExp object R - * "flags" is undefined - * - * We check that a new RegExp object obj2 defined from these parameters - * is morally the same as the original RegExp object obj1. Of course, they - * can't be equal as objects - so we check their enumerable properties... - * - * In this test, the initial RegExp obj1 will include a flag. The flags - * parameter for obj2 will be undefined in the sense of not being provided. - */ -//----------------------------------------------------------------------------- -var gTestfile = '15.10.4.1-3.js'; -var BUGNUMBER = '61266'; -var summary = 'Passing a RegExp object to a RegExp() constructor'; -var statprefix = 'Applying RegExp() twice to pattern '; -var statmiddle = ' and flag '; -var statsuffix = '; testing property '; -var singlequote = "'"; -var i = -1; var j = -1; var s = ''; -var obj1 = {}; var obj2 = {}; -var status = ''; var actual = ''; var expect = ''; var msg = ''; -var patterns = new Array(); -var flags = new Array(); - - -// various regular expressions to try - -patterns[0] = ''; -patterns[1] = 'abc'; -patterns[2] = '(.*)(3-1)\s\w'; -patterns[3] = '(.*)(...)\\s\\w'; -patterns[4] = '[^A-Za-z0-9_]'; -patterns[5] = '[^\f\n\r\t\v](123.5)([4 - 8]$)'; - -// various flags to try - -flags[0] = 'i'; -flags[1] = 'g'; -flags[2] = 'm'; -flags[3] = undefined; - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (i in patterns) - { - s = patterns[i]; - - for (j in flags) - { - f = flags[j]; - status = getStatus(s, f); - obj1 = new RegExp(s, f); - obj2 = new RegExp(obj1); - - reportCompare (obj1 + '', obj2 + '', status); - } - } - - exitFunc ('test'); -} - - -function getStatus(regexp, flag) -{ - return (statprefix + quote(regexp) + statmiddle + flag + statsuffix); -} - - -function quote(text) -{ - return (singlequote + text + singlequote); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.4.1-4.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.4.1-4.js deleted file mode 100644 index 3b4245851e..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.4.1-4.js +++ /dev/null @@ -1,146 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 26 November 2000 - * - * - *SUMMARY: Passing a RegExp object to a RegExp() constructor. - *This test arose from Bugzilla bug 61266. The ECMA3 section is: - * - * 15.10.4.1 new RegExp(pattern, flags) - * - * If pattern is an object R whose [[Class]] property is "RegExp" and - * flags is undefined, then let P be the pattern used to construct R - * and let F be the flags used to construct R. If pattern is an object R - * whose [[Class]] property is "RegExp" and flags is not undefined, - * then throw a TypeError exception. Otherwise, let P be the empty string - * if pattern is undefined and ToString(pattern) otherwise, and let F be - * the empty string if flags is undefined and ToString(flags) otherwise. - * - * - *The current test will check the first scenario outlined above: - * - * "pattern" is itself a RegExp object R - * "flags" is undefined - * - * We check that a new RegExp object obj2 defined from these parameters - * is morally the same as the original RegExp object obj1. Of course, they - * can't be equal as objects - so we check their enumerable properties... - * - * In this test, the initial RegExp object obj1 will include a - * flag. This test is identical to test 15.10.4.1-3.js, except that - * here we use this syntax: - * - * obj2 = new RegExp(obj1, undefined); - * - * instead of: - * - * obj2 = new RegExp(obj1); - */ -//----------------------------------------------------------------------------- -var gTestfile = '15.10.4.1-4.js'; -var BUGNUMBER = '61266'; -var summary = 'Passing a RegExp object to a RegExp() constructor'; -var statprefix = 'Applying RegExp() twice to pattern '; -var statmiddle = ' and flag '; -var statsuffix = '; testing property '; -var singlequote = "'"; -var i = -1; var j = -1; var s = ''; -var obj1 = {}; var obj2 = {}; -var status = ''; var actual = ''; var expect = ''; var msg = ''; -var patterns = new Array(); -var flags = new Array(); - - -// various regular expressions to try - -patterns[0] = ''; -patterns[1] = 'abc'; -patterns[2] = '(.*)(3-1)\s\w'; -patterns[3] = '(.*)(...)\\s\\w'; -patterns[4] = '[^A-Za-z0-9_]'; -patterns[5] = '[^\f\n\r\t\v](123.5)([4 - 8]$)'; - -// various flags to try - -flags[0] = 'i'; -flags[1] = 'g'; -flags[2] = 'm'; -flags[3] = undefined; - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (i in patterns) - { - s = patterns[i]; - - for (j in flags) - { - f = flags[j]; - status = getStatus(s, f); - obj1 = new RegExp(s, f); - obj2 = new RegExp(obj1, undefined); // see introduction to bug - - reportCompare (obj1 + '', obj2 + '', status); - } - } - - exitFunc ('test'); -} - - -function getStatus(regexp, flag) -{ - return (statprefix + quote(regexp) + statmiddle + flag + statsuffix); -} - - -function quote(text) -{ - return (singlequote + text + singlequote); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.4.1-5-n.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.4.1-5-n.js deleted file mode 100644 index 592fb03ac7..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.4.1-5-n.js +++ /dev/null @@ -1,139 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '15.10.4.1-5-n.js'; -/* - * - * Date: 26 November 2000 - * - * - *SUMMARY: Passing a RegExp object to a RegExp() constructor. - *This test arose from Bugzilla bug 61266. The ECMA3 section is: - * - * 15.10.4.1 new RegExp(pattern, flags) - * - * If pattern is an object R whose [[Class]] property is "RegExp" and - * flags is undefined, then let P be the pattern used to construct R - * and let F be the flags used to construct R. If pattern is an object R - * whose [[Class]] property is "RegExp" and flags is not undefined, - * then throw a TypeError exception. Otherwise, let P be the empty string - * if pattern is undefined and ToString(pattern) otherwise, and let F be - * the empty string if flags is undefined and ToString(flags) otherwise. - * - * - *The current test will check the second scenario outlined above: - * - * "pattern" is itself a RegExp object R - * "flags" is NOT undefined - * - * This should throw an exception ... we test for this. - * - */ - -//------------------------------------------------------------------------------------------------- -var BUGNUMBER = '61266'; -var summary = 'Negative test: Passing (RegExp object, flag) to RegExp() constructor'; -var statprefix = 'Passing RegExp object on pattern '; -var statsuffix = '; passing flag '; -var cnFAILURE = 'Expected an exception to be thrown, but none was -'; -var singlequote = "'"; -var i = -1; var j = -1; var s = ''; var f = ''; -var obj1 = {}; var obj2 = {}; -var patterns = new Array(); -var flags = new Array(); - - -// various regular expressions to try - -patterns[0] = ''; -patterns[1] = 'abc'; -patterns[2] = '(.*)(3-1)\s\w'; -patterns[3] = '(.*)(...)\\s\\w'; -patterns[4] = '[^A-Za-z0-9_]'; -patterns[5] = '[^\f\n\r\t\v](123.5)([4 - 8]$)'; - -// various flags to try - -flags[0] = 'i'; -flags[1] = 'g'; -flags[2] = 'm'; - - -DESCRIPTION = "Negative test: Passing (RegExp object, flag) to RegExp() constructor" - EXPECTED = "error"; - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (i in patterns) - { - s = patterns[i]; - - for (j in flags) - { - f = flags[j]; - printStatus(getStatus(s, f)); - obj1 = new RegExp(s, f); - obj2 = new RegExp(obj1, f); // this should cause an exception - - // WE SHOULD NEVER REACH THIS POINT - - reportCompare('PASS', 'FAIL', cnFAILURE); - } - } - - exitFunc ('test'); -} - - -function getStatus(regexp, flag) -{ - return (statprefix + quote(regexp) + statsuffix + flag); -} - - -function quote(text) -{ - return (singlequote + text + singlequote); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.6.2-1.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.6.2-1.js deleted file mode 100644 index 8203da4967..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.6.2-1.js +++ /dev/null @@ -1,140 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 23 October 2001 - * - * SUMMARY: Testing regexps with the global flag set. - * NOT every substring fitting the given pattern will be matched. - * The parent string is CONSUMED as successive matches are found. - * - * From the ECMA-262 Final spec: - * - * 15.10.6.2 RegExp.prototype.exec(string) - * Performs a regular expression match of string against the regular - * expression and returns an Array object containing the results of - * the match, or null if the string did not match. - * - * The string ToString(string) is searched for an occurrence of the - * regular expression pattern as follows: - * - * 1. Let S be the value of ToString(string). - * 2. Let length be the length of S. - * 3. Let lastIndex be the value of the lastIndex property. - * 4. Let i be the value of ToInteger(lastIndex). - * 5. If the global property is false, let i = 0. - * 6. If i < 0 or i > length then set lastIndex to 0 and return null. - * 7. Call [[Match]], giving it the arguments S and i. - * If [[Match]] returned failure, go to step 8; - * otherwise let r be its State result and go to step 10. - * 8. Let i = i+1. - * 9. Go to step 6. - * 10. Let e be r's endIndex value. - * 11. If the global property is true, set lastIndex to e. - * - * etc. - * - * - * So when the global flag is set, |lastIndex| is incremented every time - * there is a match; not from i to i+1, but from i to "endIndex" e: - * - * e = (index of last input character matched so far by the pattern) + 1 - * - * Thus in the example below, the first endIndex e occurs after the - * first match 'a b'. The next match will begin AFTER this, and so - * will NOT be 'b c', but rather 'c d'. Similarly, 'd e' won't be matched. - */ -//----------------------------------------------------------------------------- -var gTestfile = '15.10.6.2-1.js'; -var i = 0; -var BUGNUMBER = '(none)'; -var summary = 'Testing regexps with the global flag set'; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -status = inSection(1); -string = 'a b c d e'; -pattern = /\w\s\w/g; -actualmatch = string.match(pattern); -expectedmatch = ['a b','c d']; // see above explanation - -addThis(); - - -status = inSection(2); -string = '12345678'; -pattern = /\d\d\d/g; -actualmatch = string.match(pattern); -expectedmatch = ['123','456']; -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.6.2-2.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.6.2-2.js deleted file mode 100644 index e6fd6c6311..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/15.10.6.2-2.js +++ /dev/null @@ -1,367 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 18 Feb 2002 - * SUMMARY: Testing re.exec(str) when re.lastIndex is < 0 or > str.length - * - * Case 1: If re has the global flag set, then re(str) should be null - * Case 2: If re doesn't have this set, then re(str) should be unaffected - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=76717 - * - * - * From the ECMA-262 Final spec: - * - * 15.10.6.2 RegExp.prototype.exec(string) - * Performs a regular expression match of string against the regular - * expression and returns an Array object containing the results of - * the match, or null if the string did not match. - * - * The string ToString(string) is searched for an occurrence of the - * regular expression pattern as follows: - * - * 1. Let S be the value of ToString(string). - * 2. Let length be the length of S. - * 3. Let lastIndex be the value of the lastIndex property. - * 4. Let i be the value of ToInteger(lastIndex). - * 5. If the global property is false, let i = 0. - * 6. If i < 0 or i > length then set lastIndex to 0 and return null. - * 7. Call [[Match]], giving it the arguments S and i. - * If [[Match]] returned failure, go to step 8; - * otherwise let r be its State result and go to step 10. - * 8. Let i = i+1. - * 9. Go to step 6. - * 10. Let e be r's endIndex value. - * 11. If the global property is true, set lastIndex to e. - * - * etc. - * - * - * So: - * - * A. If the global flag is not set, |lastIndex| is set to 0 - * before the match is attempted; thus the match is unaffected. - * - * B. If the global flag IS set and re.lastIndex is >= 0 and <= str.length, - * |lastIndex| is incremented every time there is a match; not from - * i to i+1, but from i to "endIndex" e: - * - * e = (index of last input character matched so far by the pattern) + 1 - * - * The match is then attempted from this position in the string (Step 7). - * - * C. When the global flag IS set and re.lastIndex is < 0 or > str.length, - * |lastIndex| is set to 0 and the match returns null. - * - * - * Note the |lastIndex| property is writeable, and may be set arbitrarily - * by the programmer - and we will do that below. - * - */ -//----------------------------------------------------------------------------- -var gTestfile = '15.10.6.2-2.js'; -var i = 0; -var BUGNUMBER = 76717; -var summary = 'Testing re.exec(str) when re.lastIndex is < 0 or > str.length'; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -/****************************************************************************** - * - * Case 1 : when the global flag is set - - * - *****************************************************************************/ -pattern = /abc/gi; -string = 'AbcaBcabC'; - -status = inSection(1); -actualmatch = pattern.exec(string); -expectedmatch = Array('Abc'); -addThis(); - -status = inSection(2); -actualmatch = pattern.exec(string); -expectedmatch = Array('aBc'); -addThis(); - -status = inSection(3); -actualmatch = pattern.exec(string); -expectedmatch = Array('abC'); -addThis(); - -/* - * At this point |lastIndex| is > string.length, so the match should be null - - */ -status = inSection(4); -actualmatch = pattern.exec(string); -expectedmatch = null; -addThis(); - -/* - * Now let's set |lastIndex| to -1, so the match should again be null - - */ -status = inSection(5); -pattern.lastIndex = -1; -actualmatch = pattern.exec(string); -expectedmatch = null; -addThis(); - -/* - * Now try some edge-case values. Thanks to the work done in - * http://bugzilla.mozilla.org/show_bug.cgi?id=124339, |lastIndex| - * is now stored as a double instead of a uint32 (unsigned integer). - * - * Note 2^32 -1 is the upper bound for uint32's, but doubles can go - * all the way up to Number.MAX_VALUE. So that's why we need cases - * between those two numbers. - */ -status = inSection(6); -pattern.lastIndex = Math.pow(2,32); -actualmatch = pattern.exec(string); -expectedmatch = null; -addThis(); - -status = inSection(7); -pattern.lastIndex = -Math.pow(2,32); -actualmatch = pattern.exec(string); -expectedmatch = null; -addThis(); - -status = inSection(8); -pattern.lastIndex = Math.pow(2,32) + 1; -actualmatch = pattern.exec(string); -expectedmatch = null; -addThis(); - -status = inSection(9); -pattern.lastIndex = -(Math.pow(2,32) + 1); -actualmatch = pattern.exec(string); -expectedmatch = null; -addThis(); - -status = inSection(10); -pattern.lastIndex = Math.pow(2,32) * 2; -actualmatch = pattern.exec(string); -expectedmatch = null; -addThis(); - -status = inSection(11); -pattern.lastIndex = -Math.pow(2,32) * 2; -actualmatch = pattern.exec(string); -expectedmatch = null; -addThis(); - -status = inSection(12); -pattern.lastIndex = Math.pow(2,40); -actualmatch = pattern.exec(string); -expectedmatch = null; -addThis(); - -status = inSection(13); -pattern.lastIndex = -Math.pow(2,40); -actualmatch = pattern.exec(string); -expectedmatch = null; -addThis(); - -status = inSection(14); -pattern.lastIndex = Number.MAX_VALUE; -actualmatch = pattern.exec(string); -expectedmatch = null; -addThis(); - -status = inSection(15); -pattern.lastIndex = -Number.MAX_VALUE; -actualmatch = pattern.exec(string); -expectedmatch = null; -addThis(); - - - -/****************************************************************************** - * - * Case 2: repeat all the above cases WITHOUT the global flag set. - * According to EMCA. |lastIndex| should get set to 0 before the match. - * - * Therefore re.exec(str) should be unaffected; thus our expected values - * below are now DIFFERENT when |lastIndex| is < 0 or > str.length - * - *****************************************************************************/ - -pattern = /abc/i; -string = 'AbcaBcabC'; - -status = inSection(16); -actualmatch = pattern.exec(string); -expectedmatch = Array('Abc'); -addThis(); - -status = inSection(17); -actualmatch = pattern.exec(string); -expectedmatch = Array('Abc'); // NOT Array('aBc') as before - -addThis(); - -status = inSection(18); -actualmatch = pattern.exec(string); -expectedmatch = Array('Abc'); // NOT Array('abC') as before - -addThis(); - -/* - * At this point above, |lastIndex| WAS > string.length, but not here - - */ -status = inSection(19); -actualmatch = pattern.exec(string); -expectedmatch = Array('Abc') // NOT null as before - - addThis(); - -/* - * Now let's set |lastIndex| to -1 - */ -status = inSection(20); -pattern.lastIndex = -1; -actualmatch = pattern.exec(string); -expectedmatch = Array('Abc') // NOT null as before - - addThis(); - -/* - * Now try some edge-case values. Thanks to the work done in - * http://bugzilla.mozilla.org/show_bug.cgi?id=124339, |lastIndex| - * is now stored as a double instead of a uint32 (unsigned integer). - * - * Note 2^32 -1 is the upper bound for uint32's, but doubles can go - * all the way up to Number.MAX_VALUE. So that's why we need cases - * between those two numbers. - */ -status = inSection(21); -pattern.lastIndex = Math.pow(2,32); -actualmatch = pattern.exec(string); -expectedmatch = Array('Abc') // NOT null as before - - addThis(); - -status = inSection(22); -pattern.lastIndex = -Math.pow(2,32); -actualmatch = pattern.exec(string); -expectedmatch = Array('Abc') // NOT null as before - - addThis(); - -status = inSection(23); -pattern.lastIndex = Math.pow(2,32) + 1; -actualmatch = pattern.exec(string); -expectedmatch = Array('Abc') // NOT null as before - - addThis(); - -status = inSection(24); -pattern.lastIndex = -(Math.pow(2,32) + 1); -actualmatch = pattern.exec(string); -expectedmatch = Array('Abc') // NOT null as before - - addThis(); - -status = inSection(25); -pattern.lastIndex = Math.pow(2,32) * 2; -actualmatch = pattern.exec(string); -expectedmatch = Array('Abc') // NOT null as before - - addThis(); - -status = inSection(26); -pattern.lastIndex = -Math.pow(2,32) * 2; -actualmatch = pattern.exec(string); -expectedmatch = Array('Abc') // NOT null as before - - addThis(); - -status = inSection(27); -pattern.lastIndex = Math.pow(2,40); -actualmatch = pattern.exec(string); -expectedmatch = Array('Abc') // NOT null as before -; - addThis(); - -status = inSection(28); -pattern.lastIndex = -Math.pow(2,40); -actualmatch = pattern.exec(string); -expectedmatch = Array('Abc') // NOT null as before - - addThis(); - -status = inSection(29); -pattern.lastIndex = Number.MAX_VALUE; -actualmatch = pattern.exec(string); -expectedmatch = Array('Abc') // NOT null as before - - addThis(); - -status = inSection(30); -pattern.lastIndex = -Number.MAX_VALUE; -actualmatch = pattern.exec(string); -expectedmatch = Array('Abc') // NOT null as before - - addThis(); - - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/browser.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/browser.js deleted file mode 100644 index e69de29bb2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/browser.js +++ /dev/null diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/octal-001.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/octal-001.js deleted file mode 100644 index f35724e47b..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/octal-001.js +++ /dev/null @@ -1,136 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 18 July 2002 - * SUMMARY: Testing octal sequences in regexps - * See http://bugzilla.mozilla.org/show_bug.cgi?id=141078 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'octal-001.js'; -var i = 0; -var BUGNUMBER = 141078; -var summary = 'Testing octal sequences in regexps'; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -status = inSection(1); -pattern = /\240/; -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -/* - * In the following sections, we test the octal escape sequence '\052'. - * This is character code 42, representing the asterisk character '*'. - * The Unicode escape for it would be '\u002A', the hex escape '\x2A'. - */ -status = inSection(2); -pattern = /ab\052c/; -string = 'ab*c'; -actualmatch = string.match(pattern); -expectedmatch = Array('ab*c'); -addThis(); - -status = inSection(3); -pattern = /ab\052*c/; -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abc'); -addThis(); - -status = inSection(4); -pattern = /ab(\052)+c/; -string = 'ab****c'; -actualmatch = string.match(pattern); -expectedmatch = Array('ab****c', '*'); -addThis(); - -status = inSection(5); -pattern = /ab((\052)+)c/; -string = 'ab****c'; -actualmatch = string.match(pattern); -expectedmatch = Array('ab****c', '****', '*'); -addThis(); - -status = inSection(6); -pattern = /(?:\052)c/; -string = 'ab****c'; -actualmatch = string.match(pattern); -expectedmatch = Array('*c'); -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/octal-002.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/octal-002.js deleted file mode 100644 index 401ad43c11..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/octal-002.js +++ /dev/null @@ -1,218 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 31 July 2002 - * SUMMARY: Testing regexps containing octal escape sequences - * This is an elaboration of mozilla/js/tests/ecma_2/RegExp/octal-003.js - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=141078 - * for a reference on octal escape sequences in regexps. - * - * NOTE: - * We will use the identities '\011' === '\u0009' === '\x09' === '\t' - * - * The first is an octal escape sequence (\(0-3)OO; O an octal digit). - * See ECMA-262 Edition 2, Section 7.7.4 "String Literals". These were - * dropped in Edition 3 but we support them for backward compatibility. - * - * The second is a Unicode escape sequence (\uHHHH; H a hex digit). - * Since octal 11 = hex 9, the two escapes define the same character. - * - * The third is a hex escape sequence (\xHH; H a hex digit). - * Since hex 09 = hex 0009, this defines the same character. - * - * The fourth is the familiar escape sequence for a horizontal tab, - * defined in the ECMA spec as having Unicode value \u0009. - */ -//----------------------------------------------------------------------------- -var gTestfile = 'octal-002.js'; -var i = 0; -var BUGNUMBER = 141078; -var summary = 'Testing regexps containing octal escape sequences'; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -/* - * Test a string containing the null character '\0' followed by the string '11' - * - * 'a' + String.fromCharCode(0) + '11'; - * - * Note we can't simply write 'a\011', because '\011' would be interpreted - * as the octal escape sequence for the tab character (see above). - * - * We should get no match from the regexp /.\011/, because it should be - * looking for the octal escape sequence \011, i.e. the tab character - - * - */ -status = inSection(1); -pattern = /.\011/; -string = 'a' + String.fromCharCode(0) + '11'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - - -/* - * Try same thing with 'xx' in place of '11'. - * - * Should get a match now, because the octal escape sequence in the regexp - * has been reduced from \011 to \0, and '\0' is present in the string - - */ -status = inSection(2); -pattern = /.\0xx/; -string = 'a' + String.fromCharCode(0) + 'xx'; -actualmatch = string.match(pattern); -expectedmatch = Array(string); -addThis(); - - -/* - * Same thing; don't use |String.fromCharCode(0)| this time. - * There is no ambiguity in '\0xx': it is the null character - * followed by two x's, no other interpretation is possible. - */ -status = inSection(3); -pattern = /.\0xx/; -string = 'a\0xx'; -actualmatch = string.match(pattern); -expectedmatch = Array(string); -addThis(); - - -/* - * This one should produce a match. The two-character string - * 'a' + '\011' is duplicated in the pattern and test string: - */ -status = inSection(4); -pattern = /.\011/; -string = 'a\011'; -actualmatch = string.match(pattern); -expectedmatch = Array(string); -addThis(); - - -/* - * Same as above, only now, for the second character of the string, - * use the Unicode escape '\u0009' instead of the octal escape '\011' - */ -status = inSection(5); -pattern = /.\011/; -string = 'a\u0009'; -actualmatch = string.match(pattern); -expectedmatch = Array(string); -addThis(); - - -/* - * Same as above, only now for the second character of the string, - * use the hex escape '\x09' instead of the octal escape '\011' - */ -status = inSection(6); -pattern = /.\011/; -string = 'a\x09'; -actualmatch = string.match(pattern); -expectedmatch = Array(string); -addThis(); - - -/* - * Same as above, only now for the second character of the string, - * use the escape '\t' instead of the octal escape '\011' - */ -status = inSection(7); -pattern = /.\011/; -string = 'a\t'; -actualmatch = string.match(pattern); -expectedmatch = Array(string); -addThis(); - - -/* - * Return to the string from Section 1. - * - * Unlike Section 1, use the RegExp() function to create the - * regexp pattern: null character followed by the string '11'. - * - * Since this is exactly what the string is, we should get a match - - */ -status = inSection(8); -string = 'a' + String.fromCharCode(0) + '11'; -pattern = RegExp(string); -actualmatch = string.match(pattern); -expectedmatch = Array(string); -addThis(); - - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/perlstress-001.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/perlstress-001.js deleted file mode 100644 index 0b27529a32..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/perlstress-001.js +++ /dev/null @@ -1,3230 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com, rogerl@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 2002-07-07 - * SUMMARY: Testing JS RegExp engine against Perl 5 RegExp engine. - * Adjust cnLBOUND, cnUBOUND below to restrict which sections are tested. - * - * This test was created by running various patterns and strings through the - * Perl 5 RegExp engine. We saved the results below to test the JS engine. - * - * NOTE: ECMA/JS and Perl do differ on certain points. We have either commented - * out such sections altogether, or modified them to fit what we expect from JS. - * - * EXAMPLES: - * - * - In JS, regexp captures (/(a) etc./) must hold |undefined| if not used. - * See http://bugzilla.mozilla.org/show_bug.cgi?id=123437. - * By contrast, in Perl, unmatched captures hold the empty string. - * We have modified such sections accordingly. Example: - - pattern = /^([^a-z])|(\^)$/; - string = '.'; - actualmatch = string.match(pattern); - //expectedmatch = Array('.', '.', ''); <<<--- Perl - expectedmatch = Array('.', '.', undefined); <<<--- JS - addThis(); - - - * - In JS, you can't refer to a capture before it's encountered & completed - * - * - Perl supports ] & ^] inside a [], ECMA does not - * - * - ECMA does support (?: (?= and (?! operators, but doesn't support (?< etc. - * - * - ECMA doesn't support (?imsx or (?-imsx - * - * - ECMA doesn't support (?(condition) - * - * - Perl has \Z has end-of-line, ECMA doesn't - * - * - In ECMA, ^ matches only the empty string before the first character - * - * - In ECMA, $ matches only the empty string at end of input (unless multiline) - * - * - ECMA spec says that each atom in a range must be a single character - * - * - ECMA doesn't support \A - * - * - ECMA doesn't have rules for [: - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'perlstress-001.js'; -var i = 0; -var BUGNUMBER = 85721; -var summary = 'Testing regular expression edge cases'; -var cnSingleSpace = ' '; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); -var cnLBOUND = 1; -var cnUBOUND = 1000; - - -status = inSection(1); -pattern = /abc/; -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abc'); -addThis(); - -status = inSection(2); -pattern = /abc/; -string = 'xabcy'; -actualmatch = string.match(pattern); -expectedmatch = Array('abc'); -addThis(); - -status = inSection(3); -pattern = /abc/; -string = 'ababc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abc'); -addThis(); - -status = inSection(4); -pattern = /ab*c/; -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abc'); -addThis(); - -status = inSection(5); -pattern = /ab*bc/; -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abc'); -addThis(); - -status = inSection(6); -pattern = /ab*bc/; -string = 'abbc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abbc'); -addThis(); - -status = inSection(7); -pattern = /ab*bc/; -string = 'abbbbc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abbbbc'); -addThis(); - -status = inSection(8); -pattern = /.{1}/; -string = 'abbbbc'; -actualmatch = string.match(pattern); -expectedmatch = Array('a'); -addThis(); - -status = inSection(9); -pattern = /.{3,4}/; -string = 'abbbbc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abbb'); -addThis(); - -status = inSection(10); -pattern = /ab{0,}bc/; -string = 'abbbbc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abbbbc'); -addThis(); - -status = inSection(11); -pattern = /ab+bc/; -string = 'abbc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abbc'); -addThis(); - -status = inSection(12); -pattern = /ab+bc/; -string = 'abbbbc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abbbbc'); -addThis(); - -status = inSection(13); -pattern = /ab{1,}bc/; -string = 'abbbbc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abbbbc'); -addThis(); - -status = inSection(14); -pattern = /ab{1,3}bc/; -string = 'abbbbc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abbbbc'); -addThis(); - -status = inSection(15); -pattern = /ab{3,4}bc/; -string = 'abbbbc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abbbbc'); -addThis(); - -status = inSection(16); -pattern = /ab?bc/; -string = 'abbc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abbc'); -addThis(); - -status = inSection(17); -pattern = /ab?bc/; -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abc'); -addThis(); - -status = inSection(18); -pattern = /ab{0,1}bc/; -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abc'); -addThis(); - -status = inSection(19); -pattern = /ab?c/; -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abc'); -addThis(); - -status = inSection(20); -pattern = /ab{0,1}c/; -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abc'); -addThis(); - -status = inSection(21); -pattern = /^abc$/; -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abc'); -addThis(); - -status = inSection(22); -pattern = /^abc/; -string = 'abcc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abc'); -addThis(); - -status = inSection(23); -pattern = /abc$/; -string = 'aabc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abc'); -addThis(); - -status = inSection(24); -pattern = /^/; -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = Array(''); -addThis(); - -status = inSection(25); -pattern = /$/; -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = Array(''); -addThis(); - -status = inSection(26); -pattern = /a.c/; -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abc'); -addThis(); - -status = inSection(27); -pattern = /a.c/; -string = 'axc'; -actualmatch = string.match(pattern); -expectedmatch = Array('axc'); -addThis(); - -status = inSection(28); -pattern = /a.*c/; -string = 'axyzc'; -actualmatch = string.match(pattern); -expectedmatch = Array('axyzc'); -addThis(); - -status = inSection(29); -pattern = /a[bc]d/; -string = 'abd'; -actualmatch = string.match(pattern); -expectedmatch = Array('abd'); -addThis(); - -status = inSection(30); -pattern = /a[b-d]e/; -string = 'ace'; -actualmatch = string.match(pattern); -expectedmatch = Array('ace'); -addThis(); - -status = inSection(31); -pattern = /a[b-d]/; -string = 'aac'; -actualmatch = string.match(pattern); -expectedmatch = Array('ac'); -addThis(); - -status = inSection(32); -pattern = /a[-b]/; -string = 'a-'; -actualmatch = string.match(pattern); -expectedmatch = Array('a-'); -addThis(); - -status = inSection(33); -pattern = /a[b-]/; -string = 'a-'; -actualmatch = string.match(pattern); -expectedmatch = Array('a-'); -addThis(); - -status = inSection(34); -pattern = /a]/; -string = 'a]'; -actualmatch = string.match(pattern); -expectedmatch = Array('a]'); -addThis(); - -/* Perl supports ] & ^] inside a [], ECMA does not - pattern = /a[]]b/; - status = inSection(35); - string = 'a]b'; - actualmatch = string.match(pattern); - expectedmatch = Array('a]b'); - addThis(); -*/ - -status = inSection(36); -pattern = /a[^bc]d/; -string = 'aed'; -actualmatch = string.match(pattern); -expectedmatch = Array('aed'); -addThis(); - -status = inSection(37); -pattern = /a[^-b]c/; -string = 'adc'; -actualmatch = string.match(pattern); -expectedmatch = Array('adc'); -addThis(); - -/* Perl supports ] & ^] inside a [], ECMA does not - status = inSection(38); - pattern = /a[^]b]c/; - string = 'adc'; - actualmatch = string.match(pattern); - expectedmatch = Array('adc'); - addThis(); -*/ - -status = inSection(39); -pattern = /\ba\b/; -string = 'a-'; -actualmatch = string.match(pattern); -expectedmatch = Array('a'); -addThis(); - -status = inSection(40); -pattern = /\ba\b/; -string = '-a'; -actualmatch = string.match(pattern); -expectedmatch = Array('a'); -addThis(); - -status = inSection(41); -pattern = /\ba\b/; -string = '-a-'; -actualmatch = string.match(pattern); -expectedmatch = Array('a'); -addThis(); - -status = inSection(42); -pattern = /\By\b/; -string = 'xy'; -actualmatch = string.match(pattern); -expectedmatch = Array('y'); -addThis(); - -status = inSection(43); -pattern = /\by\B/; -string = 'yz'; -actualmatch = string.match(pattern); -expectedmatch = Array('y'); -addThis(); - -status = inSection(44); -pattern = /\By\B/; -string = 'xyz'; -actualmatch = string.match(pattern); -expectedmatch = Array('y'); -addThis(); - -status = inSection(45); -pattern = /\w/; -string = 'a'; -actualmatch = string.match(pattern); -expectedmatch = Array('a'); -addThis(); - -status = inSection(46); -pattern = /\W/; -string = '-'; -actualmatch = string.match(pattern); -expectedmatch = Array('-'); -addThis(); - -status = inSection(47); -pattern = /a\Sb/; -string = 'a-b'; -actualmatch = string.match(pattern); -expectedmatch = Array('a-b'); -addThis(); - -status = inSection(48); -pattern = /\d/; -string = '1'; -actualmatch = string.match(pattern); -expectedmatch = Array('1'); -addThis(); - -status = inSection(49); -pattern = /\D/; -string = '-'; -actualmatch = string.match(pattern); -expectedmatch = Array('-'); -addThis(); - -status = inSection(50); -pattern = /[\w]/; -string = 'a'; -actualmatch = string.match(pattern); -expectedmatch = Array('a'); -addThis(); - -status = inSection(51); -pattern = /[\W]/; -string = '-'; -actualmatch = string.match(pattern); -expectedmatch = Array('-'); -addThis(); - -status = inSection(52); -pattern = /a[\S]b/; -string = 'a-b'; -actualmatch = string.match(pattern); -expectedmatch = Array('a-b'); -addThis(); - -status = inSection(53); -pattern = /[\d]/; -string = '1'; -actualmatch = string.match(pattern); -expectedmatch = Array('1'); -addThis(); - -status = inSection(54); -pattern = /[\D]/; -string = '-'; -actualmatch = string.match(pattern); -expectedmatch = Array('-'); -addThis(); - -status = inSection(55); -pattern = /ab|cd/; -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = Array('ab'); -addThis(); - -status = inSection(56); -pattern = /ab|cd/; -string = 'abcd'; -actualmatch = string.match(pattern); -expectedmatch = Array('ab'); -addThis(); - -status = inSection(57); -pattern = /()ef/; -string = 'def'; -actualmatch = string.match(pattern); -expectedmatch = Array('ef', ''); -addThis(); - -status = inSection(58); -pattern = /a\(b/; -string = 'a(b'; -actualmatch = string.match(pattern); -expectedmatch = Array('a(b'); -addThis(); - -status = inSection(59); -pattern = /a\(*b/; -string = 'ab'; -actualmatch = string.match(pattern); -expectedmatch = Array('ab'); -addThis(); - -status = inSection(60); -pattern = /a\(*b/; -string = 'a((b'; -actualmatch = string.match(pattern); -expectedmatch = Array('a((b'); -addThis(); - -status = inSection(61); -pattern = /a\\b/; -string = 'a\\b'; -actualmatch = string.match(pattern); -expectedmatch = Array('a\\b'); -addThis(); - -status = inSection(62); -pattern = /((a))/; -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = Array('a', 'a', 'a'); -addThis(); - -status = inSection(63); -pattern = /(a)b(c)/; -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abc', 'a', 'c'); -addThis(); - -status = inSection(64); -pattern = /a+b+c/; -string = 'aabbabc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abc'); -addThis(); - -status = inSection(65); -pattern = /a{1,}b{1,}c/; -string = 'aabbabc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abc'); -addThis(); - -status = inSection(66); -pattern = /a.+?c/; -string = 'abcabc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abc'); -addThis(); - -status = inSection(67); -pattern = /(a+|b)*/; -string = 'ab'; -actualmatch = string.match(pattern); -expectedmatch = Array('ab', 'b'); -addThis(); - -status = inSection(68); -pattern = /(a+|b){0,}/; -string = 'ab'; -actualmatch = string.match(pattern); -expectedmatch = Array('ab', 'b'); -addThis(); - -status = inSection(69); -pattern = /(a+|b)+/; -string = 'ab'; -actualmatch = string.match(pattern); -expectedmatch = Array('ab', 'b'); -addThis(); - -status = inSection(70); -pattern = /(a+|b){1,}/; -string = 'ab'; -actualmatch = string.match(pattern); -expectedmatch = Array('ab', 'b'); -addThis(); - -status = inSection(71); -pattern = /(a+|b)?/; -string = 'ab'; -actualmatch = string.match(pattern); -expectedmatch = Array('a', 'a'); -addThis(); - -status = inSection(72); -pattern = /(a+|b){0,1}/; -string = 'ab'; -actualmatch = string.match(pattern); -expectedmatch = Array('a', 'a'); -addThis(); - -status = inSection(73); -pattern = /[^ab]*/; -string = 'cde'; -actualmatch = string.match(pattern); -expectedmatch = Array('cde'); -addThis(); - -status = inSection(74); -pattern = /([abc])*d/; -string = 'abbbcd'; -actualmatch = string.match(pattern); -expectedmatch = Array('abbbcd', 'c'); -addThis(); - -status = inSection(75); -pattern = /([abc])*bcd/; -string = 'abcd'; -actualmatch = string.match(pattern); -expectedmatch = Array('abcd', 'a'); -addThis(); - -status = inSection(76); -pattern = /a|b|c|d|e/; -string = 'e'; -actualmatch = string.match(pattern); -expectedmatch = Array('e'); -addThis(); - -status = inSection(77); -pattern = /(a|b|c|d|e)f/; -string = 'ef'; -actualmatch = string.match(pattern); -expectedmatch = Array('ef', 'e'); -addThis(); - -status = inSection(78); -pattern = /abcd*efg/; -string = 'abcdefg'; -actualmatch = string.match(pattern); -expectedmatch = Array('abcdefg'); -addThis(); - -status = inSection(79); -pattern = /ab*/; -string = 'xabyabbbz'; -actualmatch = string.match(pattern); -expectedmatch = Array('ab'); -addThis(); - -status = inSection(80); -pattern = /ab*/; -string = 'xayabbbz'; -actualmatch = string.match(pattern); -expectedmatch = Array('a'); -addThis(); - -status = inSection(81); -pattern = /(ab|cd)e/; -string = 'abcde'; -actualmatch = string.match(pattern); -expectedmatch = Array('cde', 'cd'); -addThis(); - -status = inSection(82); -pattern = /[abhgefdc]ij/; -string = 'hij'; -actualmatch = string.match(pattern); -expectedmatch = Array('hij'); -addThis(); - -status = inSection(83); -pattern = /(abc|)ef/; -string = 'abcdef'; -actualmatch = string.match(pattern); -expectedmatch = Array('ef', ''); -addThis(); - -status = inSection(84); -pattern = /(a|b)c*d/; -string = 'abcd'; -actualmatch = string.match(pattern); -expectedmatch = Array('bcd', 'b'); -addThis(); - -status = inSection(85); -pattern = /(ab|ab*)bc/; -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abc', 'a'); -addThis(); - -status = inSection(86); -pattern = /a([bc]*)c*/; -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abc', 'bc'); -addThis(); - -status = inSection(87); -pattern = /a([bc]*)(c*d)/; -string = 'abcd'; -actualmatch = string.match(pattern); -expectedmatch = Array('abcd', 'bc', 'd'); -addThis(); - -status = inSection(88); -pattern = /a([bc]+)(c*d)/; -string = 'abcd'; -actualmatch = string.match(pattern); -expectedmatch = Array('abcd', 'bc', 'd'); -addThis(); - -status = inSection(89); -pattern = /a([bc]*)(c+d)/; -string = 'abcd'; -actualmatch = string.match(pattern); -expectedmatch = Array('abcd', 'b', 'cd'); -addThis(); - -status = inSection(90); -pattern = /a[bcd]*dcdcde/; -string = 'adcdcde'; -actualmatch = string.match(pattern); -expectedmatch = Array('adcdcde'); -addThis(); - -status = inSection(91); -pattern = /(ab|a)b*c/; -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abc', 'ab'); -addThis(); - -status = inSection(92); -pattern = /((a)(b)c)(d)/; -string = 'abcd'; -actualmatch = string.match(pattern); -expectedmatch = Array('abcd', 'abc', 'a', 'b', 'd'); -addThis(); - -status = inSection(93); -pattern = /[a-zA-Z_][a-zA-Z0-9_]*/; -string = 'alpha'; -actualmatch = string.match(pattern); -expectedmatch = Array('alpha'); -addThis(); - -status = inSection(94); -pattern = /^a(bc+|b[eh])g|.h$/; -string = 'abh'; -actualmatch = string.match(pattern); -expectedmatch = Array('bh', undefined); -addThis(); - -status = inSection(95); -pattern = /(bc+d$|ef*g.|h?i(j|k))/; -string = 'effgz'; -actualmatch = string.match(pattern); -expectedmatch = Array('effgz', 'effgz', undefined); -addThis(); - -status = inSection(96); -pattern = /(bc+d$|ef*g.|h?i(j|k))/; -string = 'ij'; -actualmatch = string.match(pattern); -expectedmatch = Array('ij', 'ij', 'j'); -addThis(); - -status = inSection(97); -pattern = /(bc+d$|ef*g.|h?i(j|k))/; -string = 'reffgz'; -actualmatch = string.match(pattern); -expectedmatch = Array('effgz', 'effgz', undefined); -addThis(); - -status = inSection(98); -pattern = /((((((((((a))))))))))/; -string = 'a'; -actualmatch = string.match(pattern); -expectedmatch = Array('a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a'); -addThis(); - -status = inSection(99); -pattern = /((((((((((a))))))))))\10/; -string = 'aa'; -actualmatch = string.match(pattern); -expectedmatch = Array('aa', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a'); -addThis(); - -status = inSection(100); -pattern = /((((((((((a))))))))))/; -string = 'a!'; -actualmatch = string.match(pattern); -expectedmatch = Array('a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a'); -addThis(); - -status = inSection(101); -pattern = /(((((((((a)))))))))/; -string = 'a'; -actualmatch = string.match(pattern); -expectedmatch = Array('a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a'); -addThis(); - -status = inSection(102); -pattern = /(.*)c(.*)/; -string = 'abcde'; -actualmatch = string.match(pattern); -expectedmatch = Array('abcde', 'ab', 'de'); -addThis(); - -status = inSection(103); -pattern = /abcd/; -string = 'abcd'; -actualmatch = string.match(pattern); -expectedmatch = Array('abcd'); -addThis(); - -status = inSection(104); -pattern = /a(bc)d/; -string = 'abcd'; -actualmatch = string.match(pattern); -expectedmatch = Array('abcd', 'bc'); -addThis(); - -status = inSection(105); -pattern = /a[-]?c/; -string = 'ac'; -actualmatch = string.match(pattern); -expectedmatch = Array('ac'); -addThis(); - -status = inSection(106); -pattern = /(abc)\1/; -string = 'abcabc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abcabc', 'abc'); -addThis(); - -status = inSection(107); -pattern = /([a-c]*)\1/; -string = 'abcabc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abcabc', 'abc'); -addThis(); - -status = inSection(108); -pattern = /(a)|\1/; -string = 'a'; -actualmatch = string.match(pattern); -expectedmatch = Array('a', 'a'); -addThis(); - -status = inSection(109); -pattern = /(([a-c])b*?\2)*/; -string = 'ababbbcbc'; -actualmatch = string.match(pattern); -expectedmatch = Array('ababb', 'bb', 'b'); -addThis(); - -status = inSection(110); -pattern = /(([a-c])b*?\2){3}/; -string = 'ababbbcbc'; -actualmatch = string.match(pattern); -expectedmatch = Array('ababbbcbc', 'cbc', 'c'); -addThis(); - -/* Can't refer to a capture before it's encountered & completed - status = inSection(111); - pattern = /((\3|b)\2(a)x)+/; - string = 'aaaxabaxbaaxbbax'; - actualmatch = string.match(pattern); - expectedmatch = Array('bbax', 'bbax', 'b', 'a'); - addThis(); - - status = inSection(112); - pattern = /((\3|b)\2(a)){2,}/; - string = 'bbaababbabaaaaabbaaaabba'; - actualmatch = string.match(pattern); - expectedmatch = Array('bbaaaabba', 'bba', 'b', 'a'); - addThis(); -*/ - -status = inSection(113); -pattern = /abc/i; -string = 'ABC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABC'); -addThis(); - -status = inSection(114); -pattern = /abc/i; -string = 'XABCY'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABC'); -addThis(); - -status = inSection(115); -pattern = /abc/i; -string = 'ABABC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABC'); -addThis(); - -status = inSection(116); -pattern = /ab*c/i; -string = 'ABC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABC'); -addThis(); - -status = inSection(117); -pattern = /ab*bc/i; -string = 'ABC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABC'); -addThis(); - -status = inSection(118); -pattern = /ab*bc/i; -string = 'ABBC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABBC'); -addThis(); - -status = inSection(119); -pattern = /ab*?bc/i; -string = 'ABBBBC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABBBBC'); -addThis(); - -status = inSection(120); -pattern = /ab{0,}?bc/i; -string = 'ABBBBC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABBBBC'); -addThis(); - -status = inSection(121); -pattern = /ab+?bc/i; -string = 'ABBC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABBC'); -addThis(); - -status = inSection(122); -pattern = /ab+bc/i; -string = 'ABBBBC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABBBBC'); -addThis(); - -status = inSection(123); -pattern = /ab{1,}?bc/i; -string = 'ABBBBC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABBBBC'); -addThis(); - -status = inSection(124); -pattern = /ab{1,3}?bc/i; -string = 'ABBBBC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABBBBC'); -addThis(); - -status = inSection(125); -pattern = /ab{3,4}?bc/i; -string = 'ABBBBC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABBBBC'); -addThis(); - -status = inSection(126); -pattern = /ab??bc/i; -string = 'ABBC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABBC'); -addThis(); - -status = inSection(127); -pattern = /ab??bc/i; -string = 'ABC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABC'); -addThis(); - -status = inSection(128); -pattern = /ab{0,1}?bc/i; -string = 'ABC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABC'); -addThis(); - -status = inSection(129); -pattern = /ab??c/i; -string = 'ABC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABC'); -addThis(); - -status = inSection(130); -pattern = /ab{0,1}?c/i; -string = 'ABC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABC'); -addThis(); - -status = inSection(131); -pattern = /^abc$/i; -string = 'ABC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABC'); -addThis(); - -status = inSection(132); -pattern = /^abc/i; -string = 'ABCC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABC'); -addThis(); - -status = inSection(133); -pattern = /abc$/i; -string = 'AABC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABC'); -addThis(); - -status = inSection(134); -pattern = /^/i; -string = 'ABC'; -actualmatch = string.match(pattern); -expectedmatch = Array(''); -addThis(); - -status = inSection(135); -pattern = /$/i; -string = 'ABC'; -actualmatch = string.match(pattern); -expectedmatch = Array(''); -addThis(); - -status = inSection(136); -pattern = /a.c/i; -string = 'ABC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABC'); -addThis(); - -status = inSection(137); -pattern = /a.c/i; -string = 'AXC'; -actualmatch = string.match(pattern); -expectedmatch = Array('AXC'); -addThis(); - -status = inSection(138); -pattern = /a.*?c/i; -string = 'AXYZC'; -actualmatch = string.match(pattern); -expectedmatch = Array('AXYZC'); -addThis(); - -status = inSection(139); -pattern = /a[bc]d/i; -string = 'ABD'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABD'); -addThis(); - -status = inSection(140); -pattern = /a[b-d]e/i; -string = 'ACE'; -actualmatch = string.match(pattern); -expectedmatch = Array('ACE'); -addThis(); - -status = inSection(141); -pattern = /a[b-d]/i; -string = 'AAC'; -actualmatch = string.match(pattern); -expectedmatch = Array('AC'); -addThis(); - -status = inSection(142); -pattern = /a[-b]/i; -string = 'A-'; -actualmatch = string.match(pattern); -expectedmatch = Array('A-'); -addThis(); - -status = inSection(143); -pattern = /a[b-]/i; -string = 'A-'; -actualmatch = string.match(pattern); -expectedmatch = Array('A-'); -addThis(); - -status = inSection(144); -pattern = /a]/i; -string = 'A]'; -actualmatch = string.match(pattern); -expectedmatch = Array('A]'); -addThis(); - -/* Perl supports ] & ^] inside a [], ECMA does not - status = inSection(145); - pattern = /a[]]b/i; - string = 'A]B'; - actualmatch = string.match(pattern); - expectedmatch = Array('A]B'); - addThis(); -*/ - -status = inSection(146); -pattern = /a[^bc]d/i; -string = 'AED'; -actualmatch = string.match(pattern); -expectedmatch = Array('AED'); -addThis(); - -status = inSection(147); -pattern = /a[^-b]c/i; -string = 'ADC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ADC'); -addThis(); - -/* Perl supports ] & ^] inside a [], ECMA does not - status = inSection(148); - pattern = /a[^]b]c/i; - string = 'ADC'; - actualmatch = string.match(pattern); - expectedmatch = Array('ADC'); - addThis(); -*/ - -status = inSection(149); -pattern = /ab|cd/i; -string = 'ABC'; -actualmatch = string.match(pattern); -expectedmatch = Array('AB'); -addThis(); - -status = inSection(150); -pattern = /ab|cd/i; -string = 'ABCD'; -actualmatch = string.match(pattern); -expectedmatch = Array('AB'); -addThis(); - -status = inSection(151); -pattern = /()ef/i; -string = 'DEF'; -actualmatch = string.match(pattern); -expectedmatch = Array('EF', ''); -addThis(); - -status = inSection(152); -pattern = /a\(b/i; -string = 'A(B'; -actualmatch = string.match(pattern); -expectedmatch = Array('A(B'); -addThis(); - -status = inSection(153); -pattern = /a\(*b/i; -string = 'AB'; -actualmatch = string.match(pattern); -expectedmatch = Array('AB'); -addThis(); - -status = inSection(154); -pattern = /a\(*b/i; -string = 'A((B'; -actualmatch = string.match(pattern); -expectedmatch = Array('A((B'); -addThis(); - -status = inSection(155); -pattern = /a\\b/i; -string = 'A\\B'; -actualmatch = string.match(pattern); -expectedmatch = Array('A\\B'); -addThis(); - -status = inSection(156); -pattern = /((a))/i; -string = 'ABC'; -actualmatch = string.match(pattern); -expectedmatch = Array('A', 'A', 'A'); -addThis(); - -status = inSection(157); -pattern = /(a)b(c)/i; -string = 'ABC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABC', 'A', 'C'); -addThis(); - -status = inSection(158); -pattern = /a+b+c/i; -string = 'AABBABC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABC'); -addThis(); - -status = inSection(159); -pattern = /a{1,}b{1,}c/i; -string = 'AABBABC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABC'); -addThis(); - -status = inSection(160); -pattern = /a.+?c/i; -string = 'ABCABC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABC'); -addThis(); - -status = inSection(161); -pattern = /a.*?c/i; -string = 'ABCABC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABC'); -addThis(); - -status = inSection(162); -pattern = /a.{0,5}?c/i; -string = 'ABCABC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABC'); -addThis(); - -status = inSection(163); -pattern = /(a+|b)*/i; -string = 'AB'; -actualmatch = string.match(pattern); -expectedmatch = Array('AB', 'B'); -addThis(); - -status = inSection(164); -pattern = /(a+|b){0,}/i; -string = 'AB'; -actualmatch = string.match(pattern); -expectedmatch = Array('AB', 'B'); -addThis(); - -status = inSection(165); -pattern = /(a+|b)+/i; -string = 'AB'; -actualmatch = string.match(pattern); -expectedmatch = Array('AB', 'B'); -addThis(); - -status = inSection(166); -pattern = /(a+|b){1,}/i; -string = 'AB'; -actualmatch = string.match(pattern); -expectedmatch = Array('AB', 'B'); -addThis(); - -status = inSection(167); -pattern = /(a+|b)?/i; -string = 'AB'; -actualmatch = string.match(pattern); -expectedmatch = Array('A', 'A'); -addThis(); - -status = inSection(168); -pattern = /(a+|b){0,1}/i; -string = 'AB'; -actualmatch = string.match(pattern); -expectedmatch = Array('A', 'A'); -addThis(); - -status = inSection(169); -pattern = /(a+|b){0,1}?/i; -string = 'AB'; -actualmatch = string.match(pattern); -expectedmatch = Array('', undefined); -addThis(); - -status = inSection(170); -pattern = /[^ab]*/i; -string = 'CDE'; -actualmatch = string.match(pattern); -expectedmatch = Array('CDE'); -addThis(); - -status = inSection(171); -pattern = /([abc])*d/i; -string = 'ABBBCD'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABBBCD', 'C'); -addThis(); - -status = inSection(172); -pattern = /([abc])*bcd/i; -string = 'ABCD'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABCD', 'A'); -addThis(); - -status = inSection(173); -pattern = /a|b|c|d|e/i; -string = 'E'; -actualmatch = string.match(pattern); -expectedmatch = Array('E'); -addThis(); - -status = inSection(174); -pattern = /(a|b|c|d|e)f/i; -string = 'EF'; -actualmatch = string.match(pattern); -expectedmatch = Array('EF', 'E'); -addThis(); - -status = inSection(175); -pattern = /abcd*efg/i; -string = 'ABCDEFG'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABCDEFG'); -addThis(); - -status = inSection(176); -pattern = /ab*/i; -string = 'XABYABBBZ'; -actualmatch = string.match(pattern); -expectedmatch = Array('AB'); -addThis(); - -status = inSection(177); -pattern = /ab*/i; -string = 'XAYABBBZ'; -actualmatch = string.match(pattern); -expectedmatch = Array('A'); -addThis(); - -status = inSection(178); -pattern = /(ab|cd)e/i; -string = 'ABCDE'; -actualmatch = string.match(pattern); -expectedmatch = Array('CDE', 'CD'); -addThis(); - -status = inSection(179); -pattern = /[abhgefdc]ij/i; -string = 'HIJ'; -actualmatch = string.match(pattern); -expectedmatch = Array('HIJ'); -addThis(); - -status = inSection(180); -pattern = /(abc|)ef/i; -string = 'ABCDEF'; -actualmatch = string.match(pattern); -expectedmatch = Array('EF', ''); -addThis(); - -status = inSection(181); -pattern = /(a|b)c*d/i; -string = 'ABCD'; -actualmatch = string.match(pattern); -expectedmatch = Array('BCD', 'B'); -addThis(); - -status = inSection(182); -pattern = /(ab|ab*)bc/i; -string = 'ABC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABC', 'A'); -addThis(); - -status = inSection(183); -pattern = /a([bc]*)c*/i; -string = 'ABC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABC', 'BC'); -addThis(); - -status = inSection(184); -pattern = /a([bc]*)(c*d)/i; -string = 'ABCD'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABCD', 'BC', 'D'); -addThis(); - -status = inSection(185); -pattern = /a([bc]+)(c*d)/i; -string = 'ABCD'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABCD', 'BC', 'D'); -addThis(); - -status = inSection(186); -pattern = /a([bc]*)(c+d)/i; -string = 'ABCD'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABCD', 'B', 'CD'); -addThis(); - -status = inSection(187); -pattern = /a[bcd]*dcdcde/i; -string = 'ADCDCDE'; -actualmatch = string.match(pattern); -expectedmatch = Array('ADCDCDE'); -addThis(); - -status = inSection(188); -pattern = /(ab|a)b*c/i; -string = 'ABC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABC', 'AB'); -addThis(); - -status = inSection(189); -pattern = /((a)(b)c)(d)/i; -string = 'ABCD'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABCD', 'ABC', 'A', 'B', 'D'); -addThis(); - -status = inSection(190); -pattern = /[a-zA-Z_][a-zA-Z0-9_]*/i; -string = 'ALPHA'; -actualmatch = string.match(pattern); -expectedmatch = Array('ALPHA'); -addThis(); - -status = inSection(191); -pattern = /^a(bc+|b[eh])g|.h$/i; -string = 'ABH'; -actualmatch = string.match(pattern); -expectedmatch = Array('BH', undefined); -addThis(); - -status = inSection(192); -pattern = /(bc+d$|ef*g.|h?i(j|k))/i; -string = 'EFFGZ'; -actualmatch = string.match(pattern); -expectedmatch = Array('EFFGZ', 'EFFGZ', undefined); -addThis(); - -status = inSection(193); -pattern = /(bc+d$|ef*g.|h?i(j|k))/i; -string = 'IJ'; -actualmatch = string.match(pattern); -expectedmatch = Array('IJ', 'IJ', 'J'); -addThis(); - -status = inSection(194); -pattern = /(bc+d$|ef*g.|h?i(j|k))/i; -string = 'REFFGZ'; -actualmatch = string.match(pattern); -expectedmatch = Array('EFFGZ', 'EFFGZ', undefined); -addThis(); - -status = inSection(195); -pattern = /((((((((((a))))))))))/i; -string = 'A'; -actualmatch = string.match(pattern); -expectedmatch = Array('A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A'); -addThis(); - -status = inSection(196); -pattern = /((((((((((a))))))))))\10/i; -string = 'AA'; -actualmatch = string.match(pattern); -expectedmatch = Array('AA', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A'); -addThis(); - -status = inSection(197); -pattern = /((((((((((a))))))))))/i; -string = 'A!'; -actualmatch = string.match(pattern); -expectedmatch = Array('A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A'); -addThis(); - -status = inSection(198); -pattern = /(((((((((a)))))))))/i; -string = 'A'; -actualmatch = string.match(pattern); -expectedmatch = Array('A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A'); -addThis(); - -status = inSection(199); -pattern = /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i; -string = 'A'; -actualmatch = string.match(pattern); -expectedmatch = Array('A', 'A'); -addThis(); - -status = inSection(200); -pattern = /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i; -string = 'C'; -actualmatch = string.match(pattern); -expectedmatch = Array('C', 'C'); -addThis(); - -status = inSection(201); -pattern = /(.*)c(.*)/i; -string = 'ABCDE'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABCDE', 'AB', 'DE'); -addThis(); - -status = inSection(202); -pattern = /abcd/i; -string = 'ABCD'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABCD'); -addThis(); - -status = inSection(203); -pattern = /a(bc)d/i; -string = 'ABCD'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABCD', 'BC'); -addThis(); - -status = inSection(204); -pattern = /a[-]?c/i; -string = 'AC'; -actualmatch = string.match(pattern); -expectedmatch = Array('AC'); -addThis(); - -status = inSection(205); -pattern = /(abc)\1/i; -string = 'ABCABC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABCABC', 'ABC'); -addThis(); - -status = inSection(206); -pattern = /([a-c]*)\1/i; -string = 'ABCABC'; -actualmatch = string.match(pattern); -expectedmatch = Array('ABCABC', 'ABC'); -addThis(); - -status = inSection(207); -pattern = /a(?!b)./; -string = 'abad'; -actualmatch = string.match(pattern); -expectedmatch = Array('ad'); -addThis(); - -status = inSection(208); -pattern = /a(?=d)./; -string = 'abad'; -actualmatch = string.match(pattern); -expectedmatch = Array('ad'); -addThis(); - -status = inSection(209); -pattern = /a(?=c|d)./; -string = 'abad'; -actualmatch = string.match(pattern); -expectedmatch = Array('ad'); -addThis(); - -status = inSection(210); -pattern = /a(?:b|c|d)(.)/; -string = 'ace'; -actualmatch = string.match(pattern); -expectedmatch = Array('ace', 'e'); -addThis(); - -status = inSection(211); -pattern = /a(?:b|c|d)*(.)/; -string = 'ace'; -actualmatch = string.match(pattern); -expectedmatch = Array('ace', 'e'); -addThis(); - -status = inSection(212); -pattern = /a(?:b|c|d)+?(.)/; -string = 'ace'; -actualmatch = string.match(pattern); -expectedmatch = Array('ace', 'e'); -addThis(); - -status = inSection(213); -pattern = /a(?:b|c|d)+?(.)/; -string = 'acdbcdbe'; -actualmatch = string.match(pattern); -expectedmatch = Array('acd', 'd'); -addThis(); - -status = inSection(214); -pattern = /a(?:b|c|d)+(.)/; -string = 'acdbcdbe'; -actualmatch = string.match(pattern); -expectedmatch = Array('acdbcdbe', 'e'); -addThis(); - -status = inSection(215); -pattern = /a(?:b|c|d){2}(.)/; -string = 'acdbcdbe'; -actualmatch = string.match(pattern); -expectedmatch = Array('acdb', 'b'); -addThis(); - -status = inSection(216); -pattern = /a(?:b|c|d){4,5}(.)/; -string = 'acdbcdbe'; -actualmatch = string.match(pattern); -expectedmatch = Array('acdbcdb', 'b'); -addThis(); - -status = inSection(217); -pattern = /a(?:b|c|d){4,5}?(.)/; -string = 'acdbcdbe'; -actualmatch = string.match(pattern); -expectedmatch = Array('acdbcd', 'd'); -addThis(); - -// MODIFIED - ECMA has different rules for paren contents -status = inSection(218); -pattern = /((foo)|(bar))*/; -string = 'foobar'; -actualmatch = string.match(pattern); -//expectedmatch = Array('foobar', 'bar', 'foo', 'bar'); -expectedmatch = Array('foobar', 'bar', undefined, 'bar'); -addThis(); - -status = inSection(219); -pattern = /a(?:b|c|d){6,7}(.)/; -string = 'acdbcdbe'; -actualmatch = string.match(pattern); -expectedmatch = Array('acdbcdbe', 'e'); -addThis(); - -status = inSection(220); -pattern = /a(?:b|c|d){6,7}?(.)/; -string = 'acdbcdbe'; -actualmatch = string.match(pattern); -expectedmatch = Array('acdbcdbe', 'e'); -addThis(); - -status = inSection(221); -pattern = /a(?:b|c|d){5,6}(.)/; -string = 'acdbcdbe'; -actualmatch = string.match(pattern); -expectedmatch = Array('acdbcdbe', 'e'); -addThis(); - -status = inSection(222); -pattern = /a(?:b|c|d){5,6}?(.)/; -string = 'acdbcdbe'; -actualmatch = string.match(pattern); -expectedmatch = Array('acdbcdb', 'b'); -addThis(); - -status = inSection(223); -pattern = /a(?:b|c|d){5,7}(.)/; -string = 'acdbcdbe'; -actualmatch = string.match(pattern); -expectedmatch = Array('acdbcdbe', 'e'); -addThis(); - -status = inSection(224); -pattern = /a(?:b|c|d){5,7}?(.)/; -string = 'acdbcdbe'; -actualmatch = string.match(pattern); -expectedmatch = Array('acdbcdb', 'b'); -addThis(); - -status = inSection(225); -pattern = /a(?:b|(c|e){1,2}?|d)+?(.)/; -string = 'ace'; -actualmatch = string.match(pattern); -expectedmatch = Array('ace', 'c', 'e'); -addThis(); - -status = inSection(226); -pattern = /^(.+)?B/; -string = 'AB'; -actualmatch = string.match(pattern); -expectedmatch = Array('AB', 'A'); -addThis(); - -/* MODIFIED - ECMA has different rules for paren contents */ -status = inSection(227); -pattern = /^([^a-z])|(\^)$/; -string = '.'; -actualmatch = string.match(pattern); -//expectedmatch = Array('.', '.', ''); -expectedmatch = Array('.', '.', undefined); -addThis(); - -status = inSection(228); -pattern = /^[<>]&/; -string = '<&OUT'; -actualmatch = string.match(pattern); -expectedmatch = Array('<&'); -addThis(); - -/* Can't refer to a capture before it's encountered & completed - status = inSection(229); - pattern = /^(a\1?){4}$/; - string = 'aaaaaaaaaa'; - actualmatch = string.match(pattern); - expectedmatch = Array('aaaaaaaaaa', 'aaaa'); - addThis(); - - status = inSection(230); - pattern = /^(a(?(1)\1)){4}$/; - string = 'aaaaaaaaaa'; - actualmatch = string.match(pattern); - expectedmatch = Array('aaaaaaaaaa', 'aaaa'); - addThis(); -*/ - -status = inSection(231); -pattern = /((a{4})+)/; -string = 'aaaaaaaaa'; -actualmatch = string.match(pattern); -expectedmatch = Array('aaaaaaaa', 'aaaaaaaa', 'aaaa'); -addThis(); - -status = inSection(232); -pattern = /(((aa){2})+)/; -string = 'aaaaaaaaaa'; -actualmatch = string.match(pattern); -expectedmatch = Array('aaaaaaaa', 'aaaaaaaa', 'aaaa', 'aa'); -addThis(); - -status = inSection(233); -pattern = /(((a{2}){2})+)/; -string = 'aaaaaaaaaa'; -actualmatch = string.match(pattern); -expectedmatch = Array('aaaaaaaa', 'aaaaaaaa', 'aaaa', 'aa'); -addThis(); - -status = inSection(234); -pattern = /(?:(f)(o)(o)|(b)(a)(r))*/; -string = 'foobar'; -actualmatch = string.match(pattern); -//expectedmatch = Array('foobar', 'f', 'o', 'o', 'b', 'a', 'r'); -expectedmatch = Array('foobar', undefined, undefined, undefined, 'b', 'a', 'r'); -addThis(); - -/* ECMA supports (?: (?= and (?! but doesn't support (?< etc. - status = inSection(235); - pattern = /(?<=a)b/; - string = 'ab'; - actualmatch = string.match(pattern); - expectedmatch = Array('b'); - addThis(); - - status = inSection(236); - pattern = /(?<!c)b/; - string = 'ab'; - actualmatch = string.match(pattern); - expectedmatch = Array('b'); - addThis(); - - status = inSection(237); - pattern = /(?<!c)b/; - string = 'b'; - actualmatch = string.match(pattern); - expectedmatch = Array('b'); - addThis(); - - status = inSection(238); - pattern = /(?<!c)b/; - string = 'b'; - actualmatch = string.match(pattern); - expectedmatch = Array('b'); - addThis(); -*/ - -status = inSection(239); -pattern = /(?:..)*a/; -string = 'aba'; -actualmatch = string.match(pattern); -expectedmatch = Array('aba'); -addThis(); - -status = inSection(240); -pattern = /(?:..)*?a/; -string = 'aba'; -actualmatch = string.match(pattern); -expectedmatch = Array('a'); -addThis(); - -/* - * MODIFIED - ECMA has different rules for paren contents. Note - * this regexp has two non-capturing parens, and one capturing - * - * The issue: shouldn't the match be ['ab', undefined]? Because the - * '\1' matches the undefined value of the second iteration of the '*' - * (in which the 'b' part of the '|' matches). But Perl wants ['ab','b']. - * - * Answer: waldemar@netscape.com: - * - * The correct answer is ['ab', undefined]. Perl doesn't match - * ECMAScript here, and I'd say that Perl is wrong in this case. - */ -status = inSection(241); -pattern = /^(?:b|a(?=(.)))*\1/; -string = 'abc'; -actualmatch = string.match(pattern); -//expectedmatch = Array('ab', 'b'); -expectedmatch = Array('ab', undefined); -addThis(); - -status = inSection(242); -pattern = /^(){3,5}/; -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = Array('', ''); -addThis(); - -status = inSection(243); -pattern = /^(a+)*ax/; -string = 'aax'; -actualmatch = string.match(pattern); -expectedmatch = Array('aax', 'a'); -addThis(); - -status = inSection(244); -pattern = /^((a|b)+)*ax/; -string = 'aax'; -actualmatch = string.match(pattern); -expectedmatch = Array('aax', 'a', 'a'); -addThis(); - -status = inSection(245); -pattern = /^((a|bc)+)*ax/; -string = 'aax'; -actualmatch = string.match(pattern); -expectedmatch = Array('aax', 'a', 'a'); -addThis(); - -/* MODIFIED - ECMA has different rules for paren contents */ -status = inSection(246); -pattern = /(a|x)*ab/; -string = 'cab'; -actualmatch = string.match(pattern); -//expectedmatch = Array('ab', ''); -expectedmatch = Array('ab', undefined); -addThis(); - -status = inSection(247); -pattern = /(a)*ab/; -string = 'cab'; -actualmatch = string.match(pattern); -expectedmatch = Array('ab', undefined); -addThis(); - -/* ECMA doesn't support (?imsx or (?-imsx - status = inSection(248); - pattern = /(?:(?i)a)b/; - string = 'ab'; - actualmatch = string.match(pattern); - expectedmatch = Array('ab'); - addThis(); - - status = inSection(249); - pattern = /((?i)a)b/; - string = 'ab'; - actualmatch = string.match(pattern); - expectedmatch = Array('ab', 'a'); - addThis(); - - status = inSection(250); - pattern = /(?:(?i)a)b/; - string = 'Ab'; - actualmatch = string.match(pattern); - expectedmatch = Array('Ab'); - addThis(); - - status = inSection(251); - pattern = /((?i)a)b/; - string = 'Ab'; - actualmatch = string.match(pattern); - expectedmatch = Array('Ab', 'A'); - addThis(); - - status = inSection(252); - pattern = /(?i:a)b/; - string = 'ab'; - actualmatch = string.match(pattern); - expectedmatch = Array('ab'); - addThis(); - - status = inSection(253); - pattern = /((?i:a))b/; - string = 'ab'; - actualmatch = string.match(pattern); - expectedmatch = Array('ab', 'a'); - addThis(); - - status = inSection(254); - pattern = /(?i:a)b/; - string = 'Ab'; - actualmatch = string.match(pattern); - expectedmatch = Array('Ab'); - addThis(); - - status = inSection(255); - pattern = /((?i:a))b/; - string = 'Ab'; - actualmatch = string.match(pattern); - expectedmatch = Array('Ab', 'A'); - addThis(); - - status = inSection(256); - pattern = /(?:(?-i)a)b/i; - string = 'ab'; - actualmatch = string.match(pattern); - expectedmatch = Array('ab'); - addThis(); - - status = inSection(257); - pattern = /((?-i)a)b/i; - string = 'ab'; - actualmatch = string.match(pattern); - expectedmatch = Array('ab', 'a'); - addThis(); - - status = inSection(258); - pattern = /(?:(?-i)a)b/i; - string = 'aB'; - actualmatch = string.match(pattern); - expectedmatch = Array('aB'); - addThis(); - - status = inSection(259); - pattern = /((?-i)a)b/i; - string = 'aB'; - actualmatch = string.match(pattern); - expectedmatch = Array('aB', 'a'); - addThis(); - - status = inSection(260); - pattern = /(?:(?-i)a)b/i; - string = 'aB'; - actualmatch = string.match(pattern); - expectedmatch = Array('aB'); - addThis(); - - status = inSection(261); - pattern = /((?-i)a)b/i; - string = 'aB'; - actualmatch = string.match(pattern); - expectedmatch = Array('aB', 'a'); - addThis(); - - status = inSection(262); - pattern = /(?-i:a)b/i; - string = 'ab'; - actualmatch = string.match(pattern); - expectedmatch = Array('ab'); - addThis(); - - status = inSection(263); - pattern = /((?-i:a))b/i; - string = 'ab'; - actualmatch = string.match(pattern); - expectedmatch = Array('ab', 'a'); - addThis(); - - status = inSection(264); - pattern = /(?-i:a)b/i; - string = 'aB'; - actualmatch = string.match(pattern); - expectedmatch = Array('aB'); - addThis(); - - status = inSection(265); - pattern = /((?-i:a))b/i; - string = 'aB'; - actualmatch = string.match(pattern); - expectedmatch = Array('aB', 'a'); - addThis(); - - status = inSection(266); - pattern = /(?-i:a)b/i; - string = 'aB'; - actualmatch = string.match(pattern); - expectedmatch = Array('aB'); - addThis(); - - status = inSection(267); - pattern = /((?-i:a))b/i; - string = 'aB'; - actualmatch = string.match(pattern); - expectedmatch = Array('aB', 'a'); - addThis(); - - status = inSection(268); - pattern = /((?s-i:a.))b/i; - string = 'a\nB'; - actualmatch = string.match(pattern); - expectedmatch = Array('a\nB', 'a\n'); - addThis(); -*/ - -status = inSection(269); -pattern = /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/; -string = 'cabbbb'; -actualmatch = string.match(pattern); -expectedmatch = Array('cabbbb'); -addThis(); - -status = inSection(270); -pattern = /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/; -string = 'caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'; -actualmatch = string.match(pattern); -expectedmatch = Array('caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'); -addThis(); - -status = inSection(271); -pattern = /(ab)\d\1/i; -string = 'Ab4ab'; -actualmatch = string.match(pattern); -expectedmatch = Array('Ab4ab', 'Ab'); -addThis(); - -status = inSection(272); -pattern = /(ab)\d\1/i; -string = 'ab4Ab'; -actualmatch = string.match(pattern); -expectedmatch = Array('ab4Ab', 'ab'); -addThis(); - -status = inSection(273); -pattern = /foo\w*\d{4}baz/; -string = 'foobar1234baz'; -actualmatch = string.match(pattern); -expectedmatch = Array('foobar1234baz'); -addThis(); - -status = inSection(274); -pattern = /x(~~)*(?:(?:F)?)?/; -string = 'x~~'; -actualmatch = string.match(pattern); -expectedmatch = Array('x~~', '~~'); -addThis(); - -/* Perl supports (?# but JS doesn't - status = inSection(275); - pattern = /^a(?#xxx){3}c/; - string = 'aaac'; - actualmatch = string.match(pattern); - expectedmatch = Array('aaac'); - addThis(); -*/ - -/* ECMA doesn't support (?< etc - status = inSection(276); - pattern = /(?<![cd])[ab]/; - string = 'dbaacb'; - actualmatch = string.match(pattern); - expectedmatch = Array('a'); - addThis(); - - status = inSection(277); - pattern = /(?<!(c|d))[ab]/; - string = 'dbaacb'; - actualmatch = string.match(pattern); - expectedmatch = Array('a'); - addThis(); - - status = inSection(278); - pattern = /(?<!cd)[ab]/; - string = 'cdaccb'; - actualmatch = string.match(pattern); - expectedmatch = Array('b'); - addThis(); - - status = inSection(279); - pattern = /((?s)^a(.))((?m)^b$)/; - string = 'a\nb\nc\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('a\nb', 'a\n', '\n', 'b'); - addThis(); - - status = inSection(280); - pattern = /((?m)^b$)/; - string = 'a\nb\nc\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('b', 'b'); - addThis(); - - status = inSection(281); - pattern = /(?m)^b/; - string = 'a\nb\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('b'); - addThis(); - - status = inSection(282); - pattern = /(?m)^(b)/; - string = 'a\nb\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('b', 'b'); - addThis(); - - status = inSection(283); - pattern = /((?m)^b)/; - string = 'a\nb\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('b', 'b'); - addThis(); - - status = inSection(284); - pattern = /\n((?m)^b)/; - string = 'a\nb\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('\nb', 'b'); - addThis(); - - status = inSection(285); - pattern = /((?s).)c(?!.)/; - string = 'a\nb\nc\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('\nc', '\n'); - addThis(); - - status = inSection(286); - pattern = /((?s).)c(?!.)/; - string = 'a\nb\nc\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('\nc', '\n'); - addThis(); - - status = inSection(287); - pattern = /((?s)b.)c(?!.)/; - string = 'a\nb\nc\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('b\nc', 'b\n'); - addThis(); - - status = inSection(288); - pattern = /((?s)b.)c(?!.)/; - string = 'a\nb\nc\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('b\nc', 'b\n'); - addThis(); - - status = inSection(289); - pattern = /((?m)^b)/; - string = 'a\nb\nc\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('b', 'b'); - addThis(); -*/ - -/* ECMA doesn't support (?(condition) - status = inSection(290); - pattern = /(?(1)b|a)/; - string = 'a'; - actualmatch = string.match(pattern); - expectedmatch = Array('a'); - addThis(); - - status = inSection(291); - pattern = /(x)?(?(1)b|a)/; - string = 'a'; - actualmatch = string.match(pattern); - expectedmatch = Array('a'); - addThis(); - - status = inSection(292); - pattern = /()?(?(1)b|a)/; - string = 'a'; - actualmatch = string.match(pattern); - expectedmatch = Array('a'); - addThis(); - - status = inSection(293); - pattern = /()?(?(1)a|b)/; - string = 'a'; - actualmatch = string.match(pattern); - expectedmatch = Array('a'); - addThis(); - - status = inSection(294); - pattern = /^(\()?blah(?(1)(\)))$/; - string = '(blah)'; - actualmatch = string.match(pattern); - expectedmatch = Array('(blah)', '(', ')'); - addThis(); - - status = inSection(295); - pattern = /^(\()?blah(?(1)(\)))$/; - string = 'blah'; - actualmatch = string.match(pattern); - expectedmatch = Array('blah'); - addThis(); - - status = inSection(296); - pattern = /^(\(+)?blah(?(1)(\)))$/; - string = '(blah)'; - actualmatch = string.match(pattern); - expectedmatch = Array('(blah)', '(', ')'); - addThis(); - - status = inSection(297); - pattern = /^(\(+)?blah(?(1)(\)))$/; - string = 'blah'; - actualmatch = string.match(pattern); - expectedmatch = Array('blah'); - addThis(); - - status = inSection(298); - pattern = /(?(?!a)b|a)/; - string = 'a'; - actualmatch = string.match(pattern); - expectedmatch = Array('a'); - addThis(); - - status = inSection(299); - pattern = /(?(?=a)a|b)/; - string = 'a'; - actualmatch = string.match(pattern); - expectedmatch = Array('a'); - addThis(); -*/ - -status = inSection(300); -pattern = /(?=(a+?))(\1ab)/; -string = 'aaab'; -actualmatch = string.match(pattern); -expectedmatch = Array('aab', 'a', 'aab'); -addThis(); - -status = inSection(301); -pattern = /(\w+:)+/; -string = 'one:'; -actualmatch = string.match(pattern); -expectedmatch = Array('one:', 'one:'); -addThis(); - -/* ECMA doesn't support (?< etc - status = inSection(302); - pattern = /$(?<=^(a))/; - string = 'a'; - actualmatch = string.match(pattern); - expectedmatch = Array('', 'a'); - addThis(); -*/ - -status = inSection(303); -pattern = /(?=(a+?))(\1ab)/; -string = 'aaab'; -actualmatch = string.match(pattern); -expectedmatch = Array('aab', 'a', 'aab'); -addThis(); - -/* MODIFIED - ECMA has different rules for paren contents */ -status = inSection(304); -pattern = /([\w:]+::)?(\w+)$/; -string = 'abcd'; -actualmatch = string.match(pattern); -//expectedmatch = Array('abcd', '', 'abcd'); -expectedmatch = Array('abcd', undefined, 'abcd'); -addThis(); - -status = inSection(305); -pattern = /([\w:]+::)?(\w+)$/; -string = 'xy:z:::abcd'; -actualmatch = string.match(pattern); -expectedmatch = Array('xy:z:::abcd', 'xy:z:::', 'abcd'); -addThis(); - -status = inSection(306); -pattern = /^[^bcd]*(c+)/; -string = 'aexycd'; -actualmatch = string.match(pattern); -expectedmatch = Array('aexyc', 'c'); -addThis(); - -status = inSection(307); -pattern = /(a*)b+/; -string = 'caab'; -actualmatch = string.match(pattern); -expectedmatch = Array('aab', 'aa'); -addThis(); - -/* MODIFIED - ECMA has different rules for paren contents */ -status = inSection(308); -pattern = /([\w:]+::)?(\w+)$/; -string = 'abcd'; -actualmatch = string.match(pattern); -//expectedmatch = Array('abcd', '', 'abcd'); -expectedmatch = Array('abcd', undefined, 'abcd'); -addThis(); - -status = inSection(309); -pattern = /([\w:]+::)?(\w+)$/; -string = 'xy:z:::abcd'; -actualmatch = string.match(pattern); -expectedmatch = Array('xy:z:::abcd', 'xy:z:::', 'abcd'); -addThis(); - -status = inSection(310); -pattern = /^[^bcd]*(c+)/; -string = 'aexycd'; -actualmatch = string.match(pattern); -expectedmatch = Array('aexyc', 'c'); -addThis(); - -/* ECMA doesn't support (?> - status = inSection(311); - pattern = /(?>a+)b/; - string = 'aaab'; - actualmatch = string.match(pattern); - expectedmatch = Array('aaab'); - addThis(); -*/ - -status = inSection(312); -pattern = /([[:]+)/; - string = 'a:[b]:'; - actualmatch = string.match(pattern); - expectedmatch = Array(':[', ':['); - addThis(); - - status = inSection(313); - pattern = /([[=]+)/; - string = 'a=[b]='; - actualmatch = string.match(pattern); - expectedmatch = Array('=[', '=['); - addThis(); - - status = inSection(314); - pattern = /([[.]+)/; - string = 'a.[b].'; - actualmatch = string.match(pattern); - expectedmatch = Array('.[', '.['); - addThis(); - -/* ECMA doesn't have rules for [: - status = inSection(315); - pattern = /[a[:]b[:c]/; - string = 'abc'; - actualmatch = string.match(pattern); - expectedmatch = Array('abc'); - addThis(); -*/ - -/* ECMA doesn't support (?> - status = inSection(316); - pattern = /((?>a+)b)/; - string = 'aaab'; - actualmatch = string.match(pattern); - expectedmatch = Array('aaab', 'aaab'); - addThis(); - - status = inSection(317); - pattern = /(?>(a+))b/; - string = 'aaab'; - actualmatch = string.match(pattern); - expectedmatch = Array('aaab', 'aaa'); - addThis(); - - status = inSection(318); - pattern = /((?>[^()]+)|\([^()]*\))+/; - string = '((abc(ade)ufh()()x'; - actualmatch = string.match(pattern); - expectedmatch = Array('abc(ade)ufh()()x', 'x'); - addThis(); -*/ - -/* Perl has \Z has end-of-line, ECMA doesn't - status = inSection(319); - pattern = /\Z/; - string = 'a\nb\n'; - actualmatch = string.match(pattern); - expectedmatch = Array(''); - addThis(); - - status = inSection(320); - pattern = /\z/; - string = 'a\nb\n'; - actualmatch = string.match(pattern); - expectedmatch = Array(''); - addThis(); -*/ - - status = inSection(321); - pattern = /$/; - string = 'a\nb\n'; - actualmatch = string.match(pattern); - expectedmatch = Array(''); - addThis(); - -/* Perl has \Z has end-of-line, ECMA doesn't - status = inSection(322); - pattern = /\Z/; - string = 'b\na\n'; - actualmatch = string.match(pattern); - expectedmatch = Array(''); - addThis(); - - status = inSection(323); - pattern = /\z/; - string = 'b\na\n'; - actualmatch = string.match(pattern); - expectedmatch = Array(''); - addThis(); -*/ - - status = inSection(324); - pattern = /$/; - string = 'b\na\n'; - actualmatch = string.match(pattern); - expectedmatch = Array(''); - addThis(); - -/* Perl has \Z has end-of-line, ECMA doesn't - status = inSection(325); - pattern = /\Z/; - string = 'b\na'; - actualmatch = string.match(pattern); - expectedmatch = Array(''); - addThis(); - - status = inSection(326); - pattern = /\z/; - string = 'b\na'; - actualmatch = string.match(pattern); - expectedmatch = Array(''); - addThis(); -*/ - - status = inSection(327); - pattern = /$/; - string = 'b\na'; - actualmatch = string.match(pattern); - expectedmatch = Array(''); - addThis(); - -/* Perl has \Z has end-of-line, ECMA doesn't - status = inSection(328); - pattern = /\Z/m; - string = 'a\nb\n'; - actualmatch = string.match(pattern); - expectedmatch = Array(''); - addThis(); - - status = inSection(329); - pattern = /\z/m; - string = 'a\nb\n'; - actualmatch = string.match(pattern); - expectedmatch = Array(''); - addThis(); -*/ - - status = inSection(330); - pattern = /$/m; - string = 'a\nb\n'; - actualmatch = string.match(pattern); - expectedmatch = Array(''); - addThis(); - -/* Perl has \Z has end-of-line, ECMA doesn't - status = inSection(331); - pattern = /\Z/m; - string = 'b\na\n'; - actualmatch = string.match(pattern); - expectedmatch = Array(''); - addThis(); - - status = inSection(332); - pattern = /\z/m; - string = 'b\na\n'; - actualmatch = string.match(pattern); - expectedmatch = Array(''); - addThis(); -*/ - - status = inSection(333); - pattern = /$/m; - string = 'b\na\n'; - actualmatch = string.match(pattern); - expectedmatch = Array(''); - addThis(); - -/* Perl has \Z has end-of-line, ECMA doesn't - status = inSection(334); - pattern = /\Z/m; - string = 'b\na'; - actualmatch = string.match(pattern); - expectedmatch = Array(''); - addThis(); - - status = inSection(335); - pattern = /\z/m; - string = 'b\na'; - actualmatch = string.match(pattern); - expectedmatch = Array(''); - addThis(); -*/ - - status = inSection(336); - pattern = /$/m; - string = 'b\na'; - actualmatch = string.match(pattern); - expectedmatch = Array(''); - addThis(); - -/* Perl has \Z has end-of-line, ECMA doesn't - status = inSection(337); - pattern = /a\Z/; - string = 'b\na\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('a'); - addThis(); -*/ - -/* $ only matches end of input unless multiline - status = inSection(338); - pattern = /a$/; - string = 'b\na\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('a'); - addThis(); -*/ - -/* Perl has \Z has end-of-line, ECMA doesn't - status = inSection(339); - pattern = /a\Z/; - string = 'b\na'; - actualmatch = string.match(pattern); - expectedmatch = Array('a'); - addThis(); - - status = inSection(340); - pattern = /a\z/; - string = 'b\na'; - actualmatch = string.match(pattern); - expectedmatch = Array('a'); - addThis(); -*/ - - status = inSection(341); - pattern = /a$/; - string = 'b\na'; - actualmatch = string.match(pattern); - expectedmatch = Array('a'); - addThis(); - - status = inSection(342); - pattern = /a$/m; - string = 'a\nb\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('a'); - addThis(); - -/* Perl has \Z has end-of-line, ECMA doesn't - status = inSection(343); - pattern = /a\Z/m; - string = 'b\na\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('a'); - addThis(); -*/ - - status = inSection(344); - pattern = /a$/m; - string = 'b\na\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('a'); - addThis(); - -/* Perl has \Z has end-of-line, ECMA doesn't - status = inSection(345); - pattern = /a\Z/m; - string = 'b\na'; - actualmatch = string.match(pattern); - expectedmatch = Array('a'); - addThis(); - - status = inSection(346); - pattern = /a\z/m; - string = 'b\na'; - actualmatch = string.match(pattern); - expectedmatch = Array('a'); - addThis(); -*/ - - status = inSection(347); - pattern = /a$/m; - string = 'b\na'; - actualmatch = string.match(pattern); - expectedmatch = Array('a'); - addThis(); - -/* Perl has \Z has end-of-line, ECMA doesn't - status = inSection(348); - pattern = /aa\Z/; - string = 'b\naa\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('aa'); - addThis(); -*/ - -/* $ only matches end of input unless multiline - status = inSection(349); - pattern = /aa$/; - string = 'b\naa\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('aa'); - addThis(); -*/ - -/* Perl has \Z has end-of-line, ECMA doesn't - status = inSection(350); - pattern = /aa\Z/; - string = 'b\naa'; - actualmatch = string.match(pattern); - expectedmatch = Array('aa'); - addThis(); - - status = inSection(351); - pattern = /aa\z/; - string = 'b\naa'; - actualmatch = string.match(pattern); - expectedmatch = Array('aa'); - addThis(); -*/ - - status = inSection(352); - pattern = /aa$/; - string = 'b\naa'; - actualmatch = string.match(pattern); - expectedmatch = Array('aa'); - addThis(); - - status = inSection(353); - pattern = /aa$/m; - string = 'aa\nb\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('aa'); - addThis(); - -/* Perl has \Z has end-of-line, ECMA doesn't - status = inSection(354); - pattern = /aa\Z/m; - string = 'b\naa\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('aa'); - addThis(); -*/ - - status = inSection(355); - pattern = /aa$/m; - string = 'b\naa\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('aa'); - addThis(); - -/* Perl has \Z has end-of-line, ECMA doesn't - status = inSection(356); - pattern = /aa\Z/m; - string = 'b\naa'; - actualmatch = string.match(pattern); - expectedmatch = Array('aa'); - addThis(); - - status = inSection(357); - pattern = /aa\z/m; - string = 'b\naa'; - actualmatch = string.match(pattern); - expectedmatch = Array('aa'); - addThis(); -*/ - - status = inSection(358); - pattern = /aa$/m; - string = 'b\naa'; - actualmatch = string.match(pattern); - expectedmatch = Array('aa'); - addThis(); - -/* Perl has \Z has end-of-line, ECMA doesn't - status = inSection(359); - pattern = /ab\Z/; - string = 'b\nab\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('ab'); - addThis(); -*/ - -/* $ only matches end of input unless multiline - status = inSection(360); - pattern = /ab$/; - string = 'b\nab\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('ab'); - addThis(); -*/ - -/* Perl has \Z has end-of-line, ECMA doesn't - status = inSection(361); - pattern = /ab\Z/; - string = 'b\nab'; - actualmatch = string.match(pattern); - expectedmatch = Array('ab'); - addThis(); - - status = inSection(362); - pattern = /ab\z/; - string = 'b\nab'; - actualmatch = string.match(pattern); - expectedmatch = Array('ab'); - addThis(); -*/ - - status = inSection(363); - pattern = /ab$/; - string = 'b\nab'; - actualmatch = string.match(pattern); - expectedmatch = Array('ab'); - addThis(); - - status = inSection(364); - pattern = /ab$/m; - string = 'ab\nb\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('ab'); - addThis(); - -/* Perl has \Z has end-of-line, ECMA doesn't - status = inSection(365); - pattern = /ab\Z/m; - string = 'b\nab\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('ab'); - addThis(); -*/ - - status = inSection(366); - pattern = /ab$/m; - string = 'b\nab\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('ab'); - addThis(); - -/* Perl has \Z has end-of-line, ECMA doesn't - status = inSection(367); - pattern = /ab\Z/m; - string = 'b\nab'; - actualmatch = string.match(pattern); - expectedmatch = Array('ab'); - addThis(); - - status = inSection(368); - pattern = /ab\z/m; - string = 'b\nab'; - actualmatch = string.match(pattern); - expectedmatch = Array('ab'); - addThis(); -*/ - - status = inSection(369); - pattern = /ab$/m; - string = 'b\nab'; - actualmatch = string.match(pattern); - expectedmatch = Array('ab'); - addThis(); - -/* Perl has \Z has end-of-line, ECMA doesn't - status = inSection(370); - pattern = /abb\Z/; - string = 'b\nabb\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('abb'); - addThis(); -*/ - -/* $ only matches end of input unless multiline - status = inSection(371); - pattern = /abb$/; - string = 'b\nabb\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('abb'); - addThis(); -*/ - -/* Perl has \Z has end-of-line, ECMA doesn't - status = inSection(372); - pattern = /abb\Z/; - string = 'b\nabb'; - actualmatch = string.match(pattern); - expectedmatch = Array('abb'); - addThis(); - - status = inSection(373); - pattern = /abb\z/; - string = 'b\nabb'; - actualmatch = string.match(pattern); - expectedmatch = Array('abb'); - addThis(); -*/ - - status = inSection(374); - pattern = /abb$/; - string = 'b\nabb'; - actualmatch = string.match(pattern); - expectedmatch = Array('abb'); - addThis(); - - status = inSection(375); - pattern = /abb$/m; - string = 'abb\nb\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('abb'); - addThis(); - -/* Perl has \Z has end-of-line, ECMA doesn't - status = inSection(376); - pattern = /abb\Z/m; - string = 'b\nabb\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('abb'); - addThis(); -*/ - - status = inSection(377); - pattern = /abb$/m; - string = 'b\nabb\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('abb'); - addThis(); - -/* Perl has \Z has end-of-line, ECMA doesn't - status = inSection(378); - pattern = /abb\Z/m; - string = 'b\nabb'; - actualmatch = string.match(pattern); - expectedmatch = Array('abb'); - addThis(); - - status = inSection(379); - pattern = /abb\z/m; - string = 'b\nabb'; - actualmatch = string.match(pattern); - expectedmatch = Array('abb'); - addThis(); -*/ - - status = inSection(380); - pattern = /abb$/m; - string = 'b\nabb'; - actualmatch = string.match(pattern); - expectedmatch = Array('abb'); - addThis(); - - status = inSection(381); - pattern = /(^|x)(c)/; - string = 'ca'; - actualmatch = string.match(pattern); - expectedmatch = Array('c', '', 'c'); - addThis(); - - status = inSection(382); - pattern = /foo.bart/; - string = 'foo.bart'; - actualmatch = string.match(pattern); - expectedmatch = Array('foo.bart'); - addThis(); - - status = inSection(383); - pattern = /^d[x][x][x]/m; - string = 'abcd\ndxxx'; - actualmatch = string.match(pattern); - expectedmatch = Array('dxxx'); - addThis(); - - status = inSection(384); - pattern = /tt+$/; - string = 'xxxtt'; - actualmatch = string.match(pattern); - expectedmatch = Array('tt'); - addThis(); - -/* ECMA spec says that each atom in a range must be a single character - status = inSection(385); - pattern = /([a-\d]+)/; - string = 'za-9z'; - actualmatch = string.match(pattern); - expectedmatch = Array('9', '9'); - addThis(); - - status = inSection(386); - pattern = /([\d-z]+)/; - string = 'a0-za'; - actualmatch = string.match(pattern); - expectedmatch = Array('0-z', '0-z'); - addThis(); -*/ - -/* ECMA doesn't support [: - status = inSection(387); - pattern = /([a-[:digit:]]+)/; - string = 'za-9z'; - actualmatch = string.match(pattern); - expectedmatch = Array('a-9', 'a-9'); - addThis(); - - status = inSection(388); - pattern = /([[:digit:]-z]+)/; - string = '=0-z='; - actualmatch = string.match(pattern); - expectedmatch = Array('0-z', '0-z'); - addThis(); - - status = inSection(389); - pattern = /([[:digit:]-[:alpha:]]+)/; - string = '=0-z='; - actualmatch = string.match(pattern); - expectedmatch = Array('0-z', '0-z'); - addThis(); -*/ - - status = inSection(390); - pattern = /(\d+\.\d+)/; - string = '3.1415926'; - actualmatch = string.match(pattern); - expectedmatch = Array('3.1415926', '3.1415926'); - addThis(); - - status = inSection(391); - pattern = /\.c(pp|xx|c)?$/i; - string = 'IO.c'; - actualmatch = string.match(pattern); - expectedmatch = Array('.c', undefined); - addThis(); - - status = inSection(392); - pattern = /(\.c(pp|xx|c)?$)/i; - string = 'IO.c'; - actualmatch = string.match(pattern); - expectedmatch = Array('.c', '.c', undefined); - addThis(); - - status = inSection(393); - pattern = /(^|a)b/; - string = 'ab'; - actualmatch = string.match(pattern); - expectedmatch = Array('ab', 'a'); - addThis(); - - status = inSection(394); - pattern = /^([ab]*?)(b)?(c)$/; - string = 'abac'; - actualmatch = string.match(pattern); - expectedmatch = Array('abac', 'aba', undefined, 'c'); - addThis(); - - status = inSection(395); - pattern = /^(?:.,){2}c/i; - string = 'a,b,c'; - actualmatch = string.match(pattern); - expectedmatch = Array('a,b,c'); - addThis(); - - status = inSection(396); - pattern = /^(.,){2}c/i; - string = 'a,b,c'; - actualmatch = string.match(pattern); - expectedmatch = Array('a,b,c', 'b,'); - addThis(); - - status = inSection(397); - pattern = /^(?:[^,]*,){2}c/; - string = 'a,b,c'; - actualmatch = string.match(pattern); - expectedmatch = Array('a,b,c'); - addThis(); - - status = inSection(398); - pattern = /^([^,]*,){2}c/; - string = 'a,b,c'; - actualmatch = string.match(pattern); - expectedmatch = Array('a,b,c', 'b,'); - addThis(); - - status = inSection(399); - pattern = /^([^,]*,){3}d/; - string = 'aaa,b,c,d'; - actualmatch = string.match(pattern); - expectedmatch = Array('aaa,b,c,d', 'c,'); - addThis(); - - status = inSection(400); - pattern = /^([^,]*,){3,}d/; - string = 'aaa,b,c,d'; - actualmatch = string.match(pattern); - expectedmatch = Array('aaa,b,c,d', 'c,'); - addThis(); - - status = inSection(401); - pattern = /^([^,]*,){0,3}d/; - string = 'aaa,b,c,d'; - actualmatch = string.match(pattern); - expectedmatch = Array('aaa,b,c,d', 'c,'); - addThis(); - - status = inSection(402); - pattern = /^([^,]{1,3},){3}d/i; - string = 'aaa,b,c,d'; - actualmatch = string.match(pattern); - expectedmatch = Array('aaa,b,c,d', 'c,'); - addThis(); - - status = inSection(403); - pattern = /^([^,]{1,3},){3,}d/; - string = 'aaa,b,c,d'; - actualmatch = string.match(pattern); - expectedmatch = Array('aaa,b,c,d', 'c,'); - addThis(); - - status = inSection(404); - pattern = /^([^,]{1,3},){0,3}d/; - string = 'aaa,b,c,d'; - actualmatch = string.match(pattern); - expectedmatch = Array('aaa,b,c,d', 'c,'); - addThis(); - - status = inSection(405); - pattern = /^([^,]{1,},){3}d/; - string = 'aaa,b,c,d'; - actualmatch = string.match(pattern); - expectedmatch = Array('aaa,b,c,d', 'c,'); - addThis(); - - status = inSection(406); - pattern = /^([^,]{1,},){3,}d/; - string = 'aaa,b,c,d'; - actualmatch = string.match(pattern); - expectedmatch = Array('aaa,b,c,d', 'c,'); - addThis(); - - status = inSection(407); - pattern = /^([^,]{1,},){0,3}d/; - string = 'aaa,b,c,d'; - actualmatch = string.match(pattern); - expectedmatch = Array('aaa,b,c,d', 'c,'); - addThis(); - - status = inSection(408); - pattern = /^([^,]{0,3},){3}d/i; - string = 'aaa,b,c,d'; - actualmatch = string.match(pattern); - expectedmatch = Array('aaa,b,c,d', 'c,'); - addThis(); - - status = inSection(409); - pattern = /^([^,]{0,3},){3,}d/; - string = 'aaa,b,c,d'; - actualmatch = string.match(pattern); - expectedmatch = Array('aaa,b,c,d', 'c,'); - addThis(); - - status = inSection(410); - pattern = /^([^,]{0,3},){0,3}d/; - string = 'aaa,b,c,d'; - actualmatch = string.match(pattern); - expectedmatch = Array('aaa,b,c,d', 'c,'); - addThis(); - -/* ECMA doesn't support \A - status = inSection(411); - pattern = /(?!\A)x/m; - string = 'a\nxb\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('\n'); - addThis(); -*/ - - status = inSection(412); - pattern = /^(a(b)?)+$/; - string = 'aba'; - actualmatch = string.match(pattern); - expectedmatch = Array('aba', 'a', undefined); - addThis(); - - status = inSection(413); - pattern = /^(aa(bb)?)+$/; - string = 'aabbaa'; - actualmatch = string.match(pattern); - expectedmatch = Array('aabbaa', 'aa', undefined); - addThis(); - - status = inSection(414); - pattern = /^.{9}abc.*\n/m; - string = '123\nabcabcabcabc\n'; - actualmatch = string.match(pattern); - expectedmatch = Array('abcabcabcabc\n'); - addThis(); - - status = inSection(415); - pattern = /^(a)?a$/; - string = 'a'; - actualmatch = string.match(pattern); - expectedmatch = Array('a', undefined); - addThis(); - - status = inSection(416); - pattern = /^(a\1?)(a\1?)(a\2?)(a\3?)$/; - string = 'aaaaaa'; - actualmatch = string.match(pattern); - expectedmatch = Array('aaaaaa', 'a', 'aa', 'a', 'aa'); - addThis(); - -/* Can't refer to a capture before it's encountered & completed - status = inSection(417); - pattern = /^(a\1?){4}$/; - string = 'aaaaaa'; - actualmatch = string.match(pattern); - expectedmatch = Array('aaaaaa', 'aaa'); - addThis(); -*/ - - status = inSection(418); - pattern = /^(0+)?(?:x(1))?/; - string = 'x1'; - actualmatch = string.match(pattern); - expectedmatch = Array('x1', undefined, '1'); - addThis(); - - status = inSection(419); - pattern = /^([0-9a-fA-F]+)(?:x([0-9a-fA-F]+)?)(?:x([0-9a-fA-F]+))?/; - string = '012cxx0190'; - actualmatch = string.match(pattern); - expectedmatch = Array('012cxx0190', '012c', undefined, '0190'); - addThis(); - - status = inSection(420); - pattern = /^(b+?|a){1,2}c/; - string = 'bbbac'; - actualmatch = string.match(pattern); - expectedmatch = Array('bbbac', 'a'); - addThis(); - - status = inSection(421); - pattern = /^(b+?|a){1,2}c/; - string = 'bbbbac'; - actualmatch = string.match(pattern); - expectedmatch = Array('bbbbac', 'a'); - addThis(); - - status = inSection(422); - pattern = /((?:aaaa|bbbb)cccc)?/; - string = 'aaaacccc'; - actualmatch = string.match(pattern); - expectedmatch = Array('aaaacccc', 'aaaacccc'); - addThis(); - - status = inSection(423); - pattern = /((?:aaaa|bbbb)cccc)?/; - string = 'bbbbcccc'; - actualmatch = string.match(pattern); - expectedmatch = Array('bbbbcccc', 'bbbbcccc'); - addThis(); - - - - -//----------------------------------------------------------------------------- - test(); -//----------------------------------------------------------------------------- - - - - function addThis() - { - if(omitCurrentSection()) - return; - - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; - } - - - function omitCurrentSection() - { - try - { - // current section number is in global status variable - var n = status.match(/(\d+)/)[1]; - return ((n < cnLBOUND) || (n > cnUBOUND)); - } - catch(e) - { - return false; - } - } - - - function test() - { - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); - } diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/perlstress-002.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/perlstress-002.js deleted file mode 100644 index a9b147b977..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/perlstress-002.js +++ /dev/null @@ -1,1842 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com, rogerl@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 2002-07-07 - * SUMMARY: Testing JS RegExp engine against Perl 5 RegExp engine. - * Adjust cnLBOUND, cnUBOUND below to restrict which sections are tested. - * - * This test was created by running various patterns and strings through the - * Perl 5 RegExp engine. We saved the results below to test the JS engine. - * - * Each of the examples below is a negative test; that is, each produces a - * null match in Perl. Thus we set |expectedmatch| = |null| in each section. - * - * NOTE: ECMA/JS and Perl do differ on certain points. We have either commented - * out such sections altogether, or modified them to fit what we expect from JS. - * - * EXAMPLES: - * - * - ECMA does support (?: (?= and (?! operators, but doesn't support (?< etc. - * - * - ECMA doesn't support (?(condition) - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'perlstress-002.js'; -var i = 0; -var BUGNUMBER = 85721; -var summary = 'Testing regular expression edge cases'; -var cnSingleSpace = ' '; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); -var cnLBOUND = 0; -var cnUBOUND = 1000; - - -status = inSection(1); -pattern = /abc/; -string = 'xbc'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(2); -pattern = /abc/; -string = 'axc'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(3); -pattern = /abc/; -string = 'abx'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(4); -pattern = /ab+bc/; -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(5); -pattern = /ab+bc/; -string = 'abq'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(6); -pattern = /ab{1,}bc/; -string = 'abq'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(7); -pattern = /ab{4,5}bc/; -string = 'abbbbc'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(8); -pattern = /ab?bc/; -string = 'abbbbc'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(9); -pattern = /^abc$/; -string = 'abcc'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(10); -pattern = /^abc$/; -string = 'aabc'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(11); -pattern = /abc$/; -string = 'aabcd'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(12); -pattern = /a.*c/; -string = 'axyzd'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(13); -pattern = /a[bc]d/; -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(14); -pattern = /a[b-d]e/; -string = 'abd'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(15); -pattern = /a[^bc]d/; -string = 'abd'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(16); -pattern = /a[^-b]c/; -string = 'a-c'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(17); -pattern = /a[^]b]c/; -string = 'a]c'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(18); -pattern = /\by\b/; -string = 'xy'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(19); -pattern = /\by\b/; -string = 'yz'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(20); -pattern = /\by\b/; -string = 'xyz'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(21); -pattern = /\Ba\B/; -string = 'a-'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(22); -pattern = /\Ba\B/; -string = '-a'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(23); -pattern = /\Ba\B/; -string = '-a-'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(24); -pattern = /\w/; -string = '-'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(25); -pattern = /\W/; -string = 'a'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(26); -pattern = /a\sb/; -string = 'a-b'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(27); -pattern = /\d/; -string = '-'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(28); -pattern = /\D/; -string = '1'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(29); -pattern = /[\w]/; -string = '-'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(30); -pattern = /[\W]/; -string = 'a'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(31); -pattern = /a[\s]b/; -string = 'a-b'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(32); -pattern = /[\d]/; -string = '-'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(33); -pattern = /[\D]/; -string = '1'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(34); -pattern = /$b/; -string = 'b'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(35); -pattern = /^(ab|cd)e/; -string = 'abcde'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(36); -pattern = /a[bcd]+dcdcde/; -string = 'adcdcde'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(37); -pattern = /(bc+d$|ef*g.|h?i(j|k))/; -string = 'effg'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(38); -pattern = /(bc+d$|ef*g.|h?i(j|k))/; -string = 'bcdd'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(39); -pattern = /[k]/; -string = 'ab'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -// MODIFIED - ECMA has different rules for paren contents. -status = inSection(40); -pattern = /(a)|\1/; -string = 'x'; -actualmatch = string.match(pattern); -//expectedmatch = null; -expectedmatch = Array("", undefined); -addThis(); - -// MODIFIED - ECMA has different rules for paren contents. -status = inSection(41); -pattern = /((\3|b)\2(a)x)+/; -string = 'aaxabxbaxbbx'; -actualmatch = string.match(pattern); -//expectedmatch = null; -expectedmatch = Array("ax", "ax", "", "a"); -addThis(); - -status = inSection(42); -pattern = /abc/i; -string = 'XBC'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(43); -pattern = /abc/i; -string = 'AXC'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(44); -pattern = /abc/i; -string = 'ABX'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(45); -pattern = /ab+bc/i; -string = 'ABC'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(46); -pattern = /ab+bc/i; -string = 'ABQ'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(47); -pattern = /ab{1,}bc/i; -string = 'ABQ'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(48); -pattern = /ab{4,5}?bc/i; -string = 'ABBBBC'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(49); -pattern = /ab??bc/i; -string = 'ABBBBC'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(50); -pattern = /^abc$/i; -string = 'ABCC'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(51); -pattern = /^abc$/i; -string = 'AABC'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(52); -pattern = /a.*c/i; -string = 'AXYZD'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(53); -pattern = /a[bc]d/i; -string = 'ABC'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(54); -pattern = /a[b-d]e/i; -string = 'ABD'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(55); -pattern = /a[^bc]d/i; -string = 'ABD'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(56); -pattern = /a[^-b]c/i; -string = 'A-C'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(57); -pattern = /a[^]b]c/i; -string = 'A]C'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(58); -pattern = /$b/i; -string = 'B'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(59); -pattern = /^(ab|cd)e/i; -string = 'ABCDE'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(60); -pattern = /a[bcd]+dcdcde/i; -string = 'ADCDCDE'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(61); -pattern = /(bc+d$|ef*g.|h?i(j|k))/i; -string = 'EFFG'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(62); -pattern = /(bc+d$|ef*g.|h?i(j|k))/i; -string = 'BCDD'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(63); -pattern = /[k]/i; -string = 'AB'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(64); -pattern = /^(a\1?){4}$/; -string = 'aaaaaaaaa'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(65); -pattern = /^(a\1?){4}$/; -string = 'aaaaaaaaaaa'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -/* ECMA doesn't support (?( - status = inSection(66); - pattern = /^(a(?(1)\1)){4}$/; - string = 'aaaaaaaaa'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(67); - pattern = /^(a(?(1)\1)){4}$/; - string = 'aaaaaaaaaaa'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); -*/ - -/* ECMA doesn't support (?< - status = inSection(68); - pattern = /(?<=a)b/; - string = 'cb'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(69); - pattern = /(?<=a)b/; - string = 'b'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(70); - pattern = /(?<!c)b/; - string = 'cb'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); -*/ - -/* ECMA doesn't support (?(condition) - status = inSection(71); - pattern = /(?:(?i)a)b/; - string = 'aB'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(72); - pattern = /((?i)a)b/; - string = 'aB'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(73); - pattern = /(?i:a)b/; - string = 'aB'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(74); - pattern = /((?i:a))b/; - string = 'aB'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(75); - pattern = /(?:(?-i)a)b/i; - string = 'Ab'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(76); - pattern = /((?-i)a)b/i; - string = 'Ab'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(77); - pattern = /(?:(?-i)a)b/i; - string = 'AB'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(78); - pattern = /((?-i)a)b/i; - string = 'AB'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(79); - pattern = /(?-i:a)b/i; - string = 'Ab'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(80); - pattern = /((?-i:a))b/i; - string = 'Ab'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(81); - pattern = /(?-i:a)b/i; - string = 'AB'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(82); - pattern = /((?-i:a))b/i; - string = 'AB'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(83); - pattern = /((?-i:a.))b/i; - string = 'a\nB'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(84); - pattern = /((?s-i:a.))b/i; - string = 'B\nB'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); -*/ - -/* ECMA doesn't support (?< - status = inSection(85); - pattern = /(?<![cd])b/; - string = 'dbcb'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(86); - pattern = /(?<!(c|d))b/; - string = 'dbcb'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); -*/ - -status = inSection(87); -pattern = /^(?:a?b?)*$/; -string = 'a--'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(88); -pattern = /^b/; -string = 'a\nb\nc\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(89); -pattern = /()^b/; -string = 'a\nb\nc\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -/* ECMA doesn't support (?( - status = inSection(90); - pattern = /(?(1)a|b)/; - string = 'a'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(91); - pattern = /(x)?(?(1)a|b)/; - string = 'a'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(92); - pattern = /()(?(1)b|a)/; - string = 'a'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(93); - pattern = /^(\()?blah(?(1)(\)))$/; - string = 'blah)'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(94); - pattern = /^(\()?blah(?(1)(\)))$/; - string = '(blah'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(95); - pattern = /^(\(+)?blah(?(1)(\)))$/; - string = 'blah)'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(96); - pattern = /^(\(+)?blah(?(1)(\)))$/; - string = '(blah'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(97); - pattern = /(?(?{0})a|b)/; - string = 'a'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(98); - pattern = /(?(?{1})b|a)/; - string = 'a'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(99); - pattern = /(?(?!a)a|b)/; - string = 'a'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); - - status = inSection(100); - pattern = /(?(?=a)b|a)/; - string = 'a'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); -*/ - -status = inSection(101); -pattern = /^(?=(a+?))\1ab/; -string = 'aaab'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(102); -pattern = /^(?=(a+?))\1ab/; -string = 'aaab'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(103); -pattern = /([\w:]+::)?(\w+)$/; -string = 'abcd:'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(104); -pattern = /([\w:]+::)?(\w+)$/; -string = 'abcd:'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(105); -pattern = /(>a+)ab/; -string = 'aaab'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(106); -pattern = /a\Z/; -string = 'a\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(107); -pattern = /a\z/; -string = 'a\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(108); -pattern = /a$/; -string = 'a\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(109); -pattern = /a\z/; -string = 'b\na\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(110); -pattern = /a\z/m; -string = 'a\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(111); -pattern = /a\z/m; -string = 'b\na\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(112); -pattern = /aa\Z/; -string = 'aa\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(113); -pattern = /aa\z/; -string = 'aa\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(114); -pattern = /aa$/; -string = 'aa\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(115); -pattern = /aa\z/; -string = 'b\naa\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(116); -pattern = /aa\z/m; -string = 'aa\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(117); -pattern = /aa\z/m; -string = 'b\naa\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(118); -pattern = /aa\Z/; -string = 'ac\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(119); -pattern = /aa\z/; -string = 'ac\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(120); -pattern = /aa$/; -string = 'ac\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(121); -pattern = /aa\Z/; -string = 'b\nac\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(122); -pattern = /aa\z/; -string = 'b\nac\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(123); -pattern = /aa$/; -string = 'b\nac\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(124); -pattern = /aa\Z/; -string = 'b\nac'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(125); -pattern = /aa\z/; -string = 'b\nac'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(126); -pattern = /aa$/; -string = 'b\nac'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(127); -pattern = /aa\Z/m; -string = 'ac\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(128); -pattern = /aa\z/m; -string = 'ac\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(129); -pattern = /aa$/m; -string = 'ac\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(130); -pattern = /aa\Z/m; -string = 'b\nac\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(131); -pattern = /aa\z/m; -string = 'b\nac\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(132); -pattern = /aa$/m; -string = 'b\nac\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(133); -pattern = /aa\Z/m; -string = 'b\nac'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(134); -pattern = /aa\z/m; -string = 'b\nac'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(135); -pattern = /aa$/m; -string = 'b\nac'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(136); -pattern = /aa\Z/; -string = 'ca\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(137); -pattern = /aa\z/; -string = 'ca\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(138); -pattern = /aa$/; -string = 'ca\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(139); -pattern = /aa\Z/; -string = 'b\nca\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(140); -pattern = /aa\z/; -string = 'b\nca\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(141); -pattern = /aa$/; -string = 'b\nca\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(142); -pattern = /aa\Z/; -string = 'b\nca'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(143); -pattern = /aa\z/; -string = 'b\nca'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(144); -pattern = /aa$/; -string = 'b\nca'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(145); -pattern = /aa\Z/m; -string = 'ca\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(146); -pattern = /aa\z/m; -string = 'ca\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(147); -pattern = /aa$/m; -string = 'ca\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(148); -pattern = /aa\Z/m; -string = 'b\nca\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(149); -pattern = /aa\z/m; -string = 'b\nca\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(150); -pattern = /aa$/m; -string = 'b\nca\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(151); -pattern = /aa\Z/m; -string = 'b\nca'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(152); -pattern = /aa\z/m; -string = 'b\nca'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(153); -pattern = /aa$/m; -string = 'b\nca'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(154); -pattern = /ab\Z/; -string = 'ab\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(155); -pattern = /ab\z/; -string = 'ab\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(156); -pattern = /ab$/; -string = 'ab\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(157); -pattern = /ab\z/; -string = 'b\nab\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(158); -pattern = /ab\z/m; -string = 'ab\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(159); -pattern = /ab\z/m; -string = 'b\nab\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(160); -pattern = /ab\Z/; -string = 'ac\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(161); -pattern = /ab\z/; -string = 'ac\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(162); -pattern = /ab$/; -string = 'ac\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(163); -pattern = /ab\Z/; -string = 'b\nac\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(164); -pattern = /ab\z/; -string = 'b\nac\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(165); -pattern = /ab$/; -string = 'b\nac\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(166); -pattern = /ab\Z/; -string = 'b\nac'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(167); -pattern = /ab\z/; -string = 'b\nac'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(168); -pattern = /ab$/; -string = 'b\nac'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(169); -pattern = /ab\Z/m; -string = 'ac\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(170); -pattern = /ab\z/m; -string = 'ac\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(171); -pattern = /ab$/m; -string = 'ac\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(172); -pattern = /ab\Z/m; -string = 'b\nac\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(173); -pattern = /ab\z/m; -string = 'b\nac\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(174); -pattern = /ab$/m; -string = 'b\nac\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(175); -pattern = /ab\Z/m; -string = 'b\nac'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(176); -pattern = /ab\z/m; -string = 'b\nac'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(177); -pattern = /ab$/m; -string = 'b\nac'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(178); -pattern = /ab\Z/; -string = 'ca\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(179); -pattern = /ab\z/; -string = 'ca\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(180); -pattern = /ab$/; -string = 'ca\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(181); -pattern = /ab\Z/; -string = 'b\nca\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(182); -pattern = /ab\z/; -string = 'b\nca\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(183); -pattern = /ab$/; -string = 'b\nca\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(184); -pattern = /ab\Z/; -string = 'b\nca'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(185); -pattern = /ab\z/; -string = 'b\nca'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(186); -pattern = /ab$/; -string = 'b\nca'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(187); -pattern = /ab\Z/m; -string = 'ca\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(188); -pattern = /ab\z/m; -string = 'ca\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(189); -pattern = /ab$/m; -string = 'ca\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(190); -pattern = /ab\Z/m; -string = 'b\nca\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(191); -pattern = /ab\z/m; -string = 'b\nca\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(192); -pattern = /ab$/m; -string = 'b\nca\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(193); -pattern = /ab\Z/m; -string = 'b\nca'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(194); -pattern = /ab\z/m; -string = 'b\nca'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(195); -pattern = /ab$/m; -string = 'b\nca'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(196); -pattern = /abb\Z/; -string = 'abb\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(197); -pattern = /abb\z/; -string = 'abb\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(198); -pattern = /abb$/; -string = 'abb\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(199); -pattern = /abb\z/; -string = 'b\nabb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(200); -pattern = /abb\z/m; -string = 'abb\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(201); -pattern = /abb\z/m; -string = 'b\nabb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(202); -pattern = /abb\Z/; -string = 'ac\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(203); -pattern = /abb\z/; -string = 'ac\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(204); -pattern = /abb$/; -string = 'ac\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(205); -pattern = /abb\Z/; -string = 'b\nac\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(206); -pattern = /abb\z/; -string = 'b\nac\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(207); -pattern = /abb$/; -string = 'b\nac\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(208); -pattern = /abb\Z/; -string = 'b\nac'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(209); -pattern = /abb\z/; -string = 'b\nac'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(210); -pattern = /abb$/; -string = 'b\nac'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(211); -pattern = /abb\Z/m; -string = 'ac\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(212); -pattern = /abb\z/m; -string = 'ac\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(213); -pattern = /abb$/m; -string = 'ac\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(214); -pattern = /abb\Z/m; -string = 'b\nac\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(215); -pattern = /abb\z/m; -string = 'b\nac\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(216); -pattern = /abb$/m; -string = 'b\nac\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(217); -pattern = /abb\Z/m; -string = 'b\nac'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(218); -pattern = /abb\z/m; -string = 'b\nac'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(219); -pattern = /abb$/m; -string = 'b\nac'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(220); -pattern = /abb\Z/; -string = 'ca\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(221); -pattern = /abb\z/; -string = 'ca\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(222); -pattern = /abb$/; -string = 'ca\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(223); -pattern = /abb\Z/; -string = 'b\nca\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(224); -pattern = /abb\z/; -string = 'b\nca\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(225); -pattern = /abb$/; -string = 'b\nca\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(226); -pattern = /abb\Z/; -string = 'b\nca'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(227); -pattern = /abb\z/; -string = 'b\nca'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(228); -pattern = /abb$/; -string = 'b\nca'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(229); -pattern = /abb\Z/m; -string = 'ca\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(230); -pattern = /abb\z/m; -string = 'ca\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(231); -pattern = /abb$/m; -string = 'ca\nb\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(232); -pattern = /abb\Z/m; -string = 'b\nca\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(233); -pattern = /abb\z/m; -string = 'b\nca\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(234); -pattern = /abb$/m; -string = 'b\nca\n'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(235); -pattern = /abb\Z/m; -string = 'b\nca'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(236); -pattern = /abb\z/m; -string = 'b\nca'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(237); -pattern = /abb$/m; -string = 'b\nca'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(238); -pattern = /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/; -string = 'x'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(239); -pattern = /\GX.*X/; -string = 'aaaXbX'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(240); -pattern = /\.c(pp|xx|c)?$/i; -string = 'Changes'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(241); -pattern = /^([a-z]:)/; -string = 'C:/'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(242); -pattern = /(\w)?(abc)\1b/; -string = 'abcab'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -/* ECMA doesn't support (?( - status = inSection(243); - pattern = /^(a)?(?(1)a|b)+$/; - string = 'a'; - actualmatch = string.match(pattern); - expectedmatch = null; - addThis(); -*/ - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - if(omitCurrentSection()) - return; - - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function omitCurrentSection() -{ - try - { - // current section number is in global status variable - var n = status.match(/(\d+)/)[1]; - return ((n < cnLBOUND) || (n > cnUBOUND)); - } - catch(e) - { - return false; - } -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-100199.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-100199.js deleted file mode 100644 index 8c88aa7f52..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-100199.js +++ /dev/null @@ -1,307 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 17 September 2001 - * - * SUMMARY: Regression test for Bugzilla bug 100199 - * See http://bugzilla.mozilla.org/show_bug.cgi?id=100199 - * - * The empty character class [] is a valid RegExp construct: the condition - * that a given character belong to a set containing no characters. As such, - * it can never be met and is always FALSE. Similarly, [^] is a condition - * that matches any given character and is always TRUE. - * - * Neither one of these conditions should cause syntax errors in a RegExp. - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-100199.js'; -var i = 0; -var BUGNUMBER = 100199; -var summary = '[], [^] are valid RegExp conditions. Should not cause errors -'; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -pattern = /[]/; -string = 'abc'; -status = inSection(1); -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -string = ''; -status = inSection(2); -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -string = '['; -status = inSection(3); -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -string = '/'; -status = inSection(4); -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -string = '['; -status = inSection(5); -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -string = ']'; -status = inSection(6); -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -string = '[]'; -status = inSection(7); -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -string = '[ ]'; -status = inSection(8); -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -string = ']['; -status = inSection(9); -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - - -pattern = /a[]/; -string = 'abc'; -status = inSection(10); -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -string = ''; -status = inSection(11); -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -string = 'a['; -status = inSection(12); -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -string = 'a[]'; -status = inSection(13); -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -string = '['; -status = inSection(14); -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -string = ']'; -status = inSection(15); -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -string = '[]'; -status = inSection(16); -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -string = '[ ]'; -status = inSection(17); -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -string = ']['; -status = inSection(18); -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - - -pattern = /[^]/; -string = 'abc'; -status = inSection(19); -actualmatch = string.match(pattern); -expectedmatch = Array('a'); -addThis(); - -string = ''; -status = inSection(20); -actualmatch = string.match(pattern); -expectedmatch = null; //there are no characters to test against the condition -addThis(); - -string = '\/'; -status = inSection(21); -actualmatch = string.match(pattern); -expectedmatch = Array('/'); -addThis(); - -string = '\['; -status = inSection(22); -actualmatch = string.match(pattern); -expectedmatch = Array('['); -addThis(); - -string = '['; -status = inSection(23); -actualmatch = string.match(pattern); -expectedmatch = Array('['); -addThis(); - -string = ']'; -status = inSection(24); -actualmatch = string.match(pattern); -expectedmatch = Array(']'); -addThis(); - -string = '[]'; -status = inSection(25); -actualmatch = string.match(pattern); -expectedmatch = Array('['); -addThis(); - -string = '[ ]'; -status = inSection(26); -actualmatch = string.match(pattern); -expectedmatch = Array('['); -addThis(); - -string = ']['; -status = inSection(27); -actualmatch = string.match(pattern); -expectedmatch = Array(']'); -addThis(); - - -pattern = /a[^]/; -string = 'abc'; -status = inSection(28); -actualmatch = string.match(pattern); -expectedmatch = Array('ab'); -addThis(); - -string = ''; -status = inSection(29); -actualmatch = string.match(pattern); -expectedmatch = null; //there are no characters to test against the condition -addThis(); - -string = 'a['; -status = inSection(30); -actualmatch = string.match(pattern); -expectedmatch = Array('a['); -addThis(); - -string = 'a]'; -status = inSection(31); -actualmatch = string.match(pattern); -expectedmatch = Array('a]'); -addThis(); - -string = 'a[]'; -status = inSection(32); -actualmatch = string.match(pattern); -expectedmatch = Array('a['); -addThis(); - -string = 'a[ ]'; -status = inSection(33); -actualmatch = string.match(pattern); -expectedmatch = Array('a['); -addThis(); - -string = 'a]['; -status = inSection(34); -actualmatch = string.match(pattern); -expectedmatch = Array('a]'); -addThis(); - - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-105972.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-105972.js deleted file mode 100644 index e691c518b4..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-105972.js +++ /dev/null @@ -1,157 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * mozilla@pdavis.cx, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 22 October 2001 - * - * SUMMARY: Regression test for Bugzilla bug 105972: - * "/^.*?$/ will not match anything" - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=105972 - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-105972.js'; -var i = 0; -var BUGNUMBER = 105972; -var summary = 'Regression test for Bugzilla bug 105972'; -var cnEmptyString = ''; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -/* - * The bug: this match was coming up null in Rhino and SpiderMonkey. - * It should match the whole string. The reason: - * - * The * operator is greedy, but *? is non-greedy: it will stop - * at the simplest match it can find. But the pattern here asks us - * to match till the end of the string. So the simplest match must - * go all the way out to the end, and *? has no choice but to do it. - */ -status = inSection(1); -pattern = /^.*?$/; -string = 'Hello World'; -actualmatch = string.match(pattern); -expectedmatch = Array(string); -addThis(); - - -/* - * Leave off the '$' condition - here we expect the empty string. - * Unlike the above pattern, we don't have to match till the end of - * the string, so the non-greedy operator *? doesn't try to... - */ -status = inSection(2); -pattern = /^.*?/; -string = 'Hello World'; -actualmatch = string.match(pattern); -expectedmatch = Array(cnEmptyString); -addThis(); - - -/* - * Try '$' combined with an 'or' operator. - * - * The operator *? will consume the string from left to right, - * attempting to satisfy the condition (:|$). When it hits ':', - * the match will stop because the operator *? is non-greedy. - * - * The submatch $1 = (:|$) will contain the ':' - */ -status = inSection(3); -pattern = /^.*?(:|$)/; -string = 'Hello: World'; -actualmatch = string.match(pattern); -expectedmatch = Array('Hello:', ':'); -addThis(); - - -/* - * Again, '$' combined with an 'or' operator. - * - * The operator * will consume the string from left to right, - * attempting to satisfy the condition (:|$). When it hits ':', - * the match will not stop since * is greedy. The match will - * continue until it hits $, the end-of-string boundary. - * - * The submatch $1 = (:|$) will contain the empty string - * conceived to exist at the end-of-string boundary. - */ -status = inSection(4); -pattern = /^.*(:|$)/; -string = 'Hello: World'; -actualmatch = string.match(pattern); -expectedmatch = Array(string, cnEmptyString); -addThis(); - - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-119909.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-119909.js deleted file mode 100644 index 97f6414bc7..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-119909.js +++ /dev/null @@ -1,92 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2001 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * 1010mozilla@Ostermiller.com, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 14 Jan 2002 - * SUMMARY: Shouldn't crash on regexps with many nested parentheses - * See http://bugzilla.mozilla.org/show_bug.cgi?id=119909 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-119909.js'; -var BUGNUMBER = 119909; -var summary = "Shouldn't crash on regexps with many nested parentheses"; -var NO_BACKREFS = false; -var DO_BACKREFS = true; - - -//-------------------------------------------------- -test(); -//-------------------------------------------------- - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - testThis(500, NO_BACKREFS, 'hello', 'goodbye'); - testThis(500, DO_BACKREFS, 'hello', 'goodbye'); - - reportCompare('No Crash', 'No Crash', ''); - - exitFunc('test'); -} - - -/* - * Creates a regexp pattern like (((((((((hello))))))))) - * and tests str.search(), str.match(), str.replace() - */ -function testThis(numParens, doBackRefs, strOriginal, strReplace) -{ - var openParen = doBackRefs? '(' : '(?:'; - var closeParen = ')'; - var pattern = ''; - - for (var i=0; i<numParens; i++) {pattern += openParen;} - pattern += strOriginal; - for (i=0; i<numParens; i++) {pattern += closeParen;} - var re = new RegExp(pattern); - - var res = strOriginal.search(re); - res = strOriginal.match(re); - res = strOriginal.replace(re, strReplace); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-122076.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-122076.js deleted file mode 100644 index e77f433fc4..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-122076.js +++ /dev/null @@ -1,110 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 12 Feb 2002 - * SUMMARY: Don't crash on invalid regexp literals / \\/ / - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=122076 - * The function checkURL() below sometimes caused a compile-time error: - * - * SyntaxError: unterminated parenthetical (: - * - * However, sometimes it would cause a crash instead. The presence of - * other functions below is merely fodder to help provoke the crash. - * The constant |STRESS| is number of times we'll try to crash on this. - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-122076.js'; -var BUGNUMBER = 122076; -var summary = "Don't crash on invalid regexp literals / \\/ /"; -var STRESS = 10; -var sEval = ''; - -printBugNumber(BUGNUMBER); -printStatus(summary); - - -sEval += 'function checkDate()' -sEval += '{' -sEval += 'return (this.value.search(/^[012]?\d\/[0123]?\d\/[0]\d$/) != -1);' -sEval += '}' - -sEval += 'function checkDNSName()' -sEval += '{' -sEval += ' return (this.value.search(/^([\w\-]+\.)+([\w\-]{2,3})$/) != -1);' -sEval += '}' - -sEval += 'function checkEmail()' -sEval += '{' -sEval += ' return (this.value.search(/^([\w\-]+\.)*[\w\-]+@([\w\-]+\.)+([\w\-]{2,3})$/) != -1);' -sEval += '}' - -sEval += 'function checkHostOrIP()' -sEval += '{' -sEval += ' if (this.value.search(/^([\w\-]+\.)+([\w\-]{2,3})$/) == -1)' -sEval += ' return (this.value.search(/^[1-2]?\d{1,2}\.[1-2]?\d{1,2}\.[1-2]?\d{1,2}\.[1-2]?\d{1,2}$/) != -1);' -sEval += ' else' -sEval += ' return true;' -sEval += '}' - -sEval += 'function checkIPAddress()' -sEval += '{' -sEval += ' return (this.value.search(/^[1-2]?\d{1,2}\.[1-2]?\d{1,2}\.[1-2]?\d{1,2}\.[1-2]?\d{1,2}$/) != -1);' -sEval += '}' - -sEval += 'function checkURL()' -sEval += '{' -sEval += ' return (this.value.search(/^(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,4}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\/\*\$+@&#;`~=%!]*)(\.\w{2,})?)*\/?)$/) != -1);' -sEval += '}' - - -for (var i=0; i<STRESS; i++) -{ - try - { - eval(sEval); - } - catch(e) - { - } -} - -reportCompare('No Crash', 'No Crash', ''); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-123437.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-123437.js deleted file mode 100644 index 745a3a707a..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-123437.js +++ /dev/null @@ -1,112 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * waldemar, rogerl, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 04 Feb 2002 - * SUMMARY: regexp backreferences must hold |undefined| if not used - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=123437 (SpiderMonkey) - * See http://bugzilla.mozilla.org/show_bug.cgi?id=123439 (Rhino) - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-123437.js'; -var i = 0; -var BUGNUMBER = 123437; -var summary = 'regexp backreferences must hold |undefined| if not used'; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -pattern = /(a)?a/; -string = 'a'; -status = inSection(1); -actualmatch = string.match(pattern); -expectedmatch = Array('a', undefined); -addThis(); - -pattern = /a|(b)/; -string = 'a'; -status = inSection(2); -actualmatch = string.match(pattern); -expectedmatch = Array('a', undefined); -addThis(); - -pattern = /(a)?(a)/; -string = 'a'; -status = inSection(3); -actualmatch = string.match(pattern); -expectedmatch = Array('a', undefined, 'a'); -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-165353.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-165353.js deleted file mode 100644 index f7c736ce4d..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-165353.js +++ /dev/null @@ -1,122 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * franky@pacificconnections.com, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 31 August 2002 - * SUMMARY: RegExp conformance test - * See http://bugzilla.mozilla.org/show_bug.cgi?id=165353 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-165353.js'; -var i = 0; -var BUGNUMBER = 165353; -var summary = 'RegExp conformance test'; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -pattern = /^([a-z]+)*[a-z]$/; -status = inSection(1); -string = 'a'; -actualmatch = string.match(pattern); -expectedmatch = Array('a', undefined); -addThis(); - -status = inSection(2); -string = 'ab'; -actualmatch = string.match(pattern); -expectedmatch = Array('ab', 'a'); -addThis(); - -status = inSection(3); -string = 'abc'; -actualmatch = string.match(pattern); -expectedmatch = Array('abc', 'ab'); -addThis(); - - -string = 'www.netscape.com'; -status = inSection(4); -pattern = /^(([a-z]+)*[a-z]\.)+[a-z]{2,}$/; -actualmatch = string.match(pattern); -expectedmatch = Array('www.netscape.com', 'netscape.', 'netscap'); -addThis(); - -// add one more capturing parens to the previous regexp - -status = inSection(5); -pattern = /^(([a-z]+)*([a-z])\.)+[a-z]{2,}$/; -actualmatch = string.match(pattern); -expectedmatch = Array('www.netscape.com', 'netscape.', 'netscap', 'e'); -addThis(); - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-169497.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-169497.js deleted file mode 100644 index 5613a93872..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-169497.js +++ /dev/null @@ -1,105 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * martin.honnen@gmx.de, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 31 August 2002 - * SUMMARY: RegExp conformance test - * See http://bugzilla.mozilla.org/show_bug.cgi?id=169497 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-169497.js'; -var i = 0; -var BUGNUMBER = 169497; -var summary = 'RegExp conformance test'; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var sBody = ''; -var sHTML = ''; -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - -sBody += '<body onXXX="alert(event.type);">\n'; -sBody += '<p>Kibology for all<\/p>\n'; -sBody += '<p>All for Kibology<\/p>\n'; -sBody += '<\/body>'; - -sHTML += '<html>\n'; -sHTML += sBody; -sHTML += '\n<\/html>'; - -status = inSection(1); -string = sHTML; -pattern = /<body.*>((.*\n?)*?)<\/body>/i; -actualmatch = string.match(pattern); -expectedmatch = Array(sBody, '\n<p>Kibology for all</p>\n<p>All for Kibology</p>\n', '<p>All for Kibology</p>\n'); -addThis(); - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-169534.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-169534.js deleted file mode 100644 index c736631bd7..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-169534.js +++ /dev/null @@ -1,95 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 20 Sep 2002 - * SUMMARY: RegExp conformance test - * See http://bugzilla.mozilla.org/show_bug.cgi?id=169534 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-169534.js'; -var UBound = 0; -var BUGNUMBER = 169534; -var summary = 'RegExp conformance test'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -status = inSection(1); -var re = /(\|)([\w\x81-\xff ]*)(\|)([\/a-z][\w:\/\.]*\.[a-z]{3,4})(\|)/ig; -var str = "To sign up click |here|https://www.xxxx.org/subscribe.htm|"; -actual = str.replace(re, '<a href="$4">$2</a>'); -expect = 'To sign up click <a href="https://www.xxxx.org/subscribe.htm">here</a>'; -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-187133.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-187133.js deleted file mode 100644 index 98ec4753bf..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-187133.js +++ /dev/null @@ -1,142 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * ji_bo@yahoo.com, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 06 January 2003 - * SUMMARY: RegExp conformance test - * See http://bugzilla.mozilla.org/show_bug.cgi?id=187133 - * - * The tests here employ the regular expression construct: - * - * (?!pattern) - * - * This is a "zero-width lookahead negative assertion". - * From the Perl documentation: - * - * For example, /foo(?!bar)/ matches any occurrence - * of 'foo' that isn't followed by 'bar'. - * - * It is "zero-width" means that it does not consume any characters and that - * the parens are non-capturing. A non-null match array in the example above - * will have only have length 1, not 2. - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-187133.js'; -var i = 0; -var BUGNUMBER = 187133; -var summary = 'RegExp conformance test'; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -pattern = /(\.(?!com|org)|\/)/; -status = inSection(1); -string = 'ah.info'; -actualmatch = string.match(pattern); -expectedmatch = ['.', '.']; -addThis(); - -status = inSection(2); -string = 'ah/info'; -actualmatch = string.match(pattern); -expectedmatch = ['/', '/']; -addThis(); - -status = inSection(3); -string = 'ah.com'; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - - -pattern = /(?!a|b)|c/; -status = inSection(4); -string = ''; -actualmatch = string.match(pattern); -expectedmatch = ['']; -addThis(); - -status = inSection(5); -string = 'bc'; -actualmatch = string.match(pattern); -expectedmatch = ['']; -addThis(); - -status = inSection(6); -string = 'd'; -actualmatch = string.match(pattern); -expectedmatch = ['']; -addThis(); - - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-188206.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-188206.js deleted file mode 100644 index 308c0ff605..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-188206.js +++ /dev/null @@ -1,219 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * scole@planetweb.com, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 21 January 2003 - * SUMMARY: Invalid use of regexp quantifiers should generate SyntaxErrors - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=188206 - * and http://bugzilla.mozilla.org/show_bug.cgi?id=85721#c48 etc. - * and http://bugzilla.mozilla.org/show_bug.cgi?id=190685 - * and http://bugzilla.mozilla.org/show_bug.cgi?id=197451 - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-188206.js'; -var UBound = 0; -var BUGNUMBER = 188206; -var summary = 'Invalid use of regexp quantifiers should generate SyntaxErrors'; -var TEST_PASSED = 'SyntaxError'; -var TEST_FAILED = 'Generated an error, but NOT a SyntaxError!'; -var TEST_FAILED_BADLY = 'Did not generate ANY error!!!'; -var CHECK_PASSED = 'Should not generate an error'; -var CHECK_FAILED = 'Generated an error!'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -/* - * All the following are invalid uses of regexp quantifiers and - * should generate SyntaxErrors. That's what we're testing for. - * - * To allow the test to compile and run, we have to hide the errors - * inside eval strings, and check they are caught at run-time - - * - */ -status = inSection(1); -testThis(' /a**/ '); - -status = inSection(2); -testThis(' /a***/ '); - -status = inSection(3); -testThis(' /a++/ '); - -status = inSection(4); -testThis(' /a+++/ '); - -/* - * The ? quantifier, unlike * or +, may appear twice in succession. - * Thus we need at least three in a row to provoke a SyntaxError - - */ - -status = inSection(5); -testThis(' /a???/ '); - -status = inSection(6); -testThis(' /a????/ '); - - -/* - * Now do some weird things on the left side of the regexps - - */ -status = inSection(9); -testThis(' /+a/ '); - -status = inSection(10); -testThis(' /++a/ '); - -status = inSection(11); -testThis(' /?a/ '); - -status = inSection(12); -testThis(' /??a/ '); - - -/* - * Misusing the {DecmalDigits} quantifier - according to BOTH ECMA and Perl. - * - * Just as with the * and + quantifiers above, can't have two {DecmalDigits} - * quantifiers in succession - it's a SyntaxError. - */ -status = inSection(28); -testThis(' /x{1}{1}/ '); - -status = inSection(29); -testThis(' /x{1,}{1}/ '); - -status = inSection(30); -testThis(' /x{1,2}{1}/ '); - -status = inSection(31); -testThis(' /x{1}{1,}/ '); - -status = inSection(32); -testThis(' /x{1,}{1,}/ '); - -status = inSection(33); -testThis(' /x{1,2}{1,}/ '); - -status = inSection(34); -testThis(' /x{1}{1,2}/ '); - -status = inSection(35); -testThis(' /x{1,}{1,2}/ '); - -status = inSection(36); -testThis(' /x{1,2}{1,2}/ '); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -/* - * Invalid syntax should generate a SyntaxError - */ -function testThis(sInvalidSyntax) -{ - expect = TEST_PASSED; - actual = TEST_FAILED_BADLY; - - try - { - eval(sInvalidSyntax); - } - catch(e) - { - if (e instanceof SyntaxError) - actual = TEST_PASSED; - else - actual = TEST_FAILED; - } - - statusitems[UBound] = status; - expectedvalues[UBound] = expect; - actualvalues[UBound] = actual; - UBound++; -} - - -/* - * Allowed syntax shouldn't generate any errors - */ -function checkThis(sAllowedSyntax) -{ - expect = CHECK_PASSED; - actual = CHECK_PASSED; - - try - { - eval(sAllowedSyntax); - } - catch(e) - { - actual = CHECK_FAILED; - } - - statusitems[UBound] = status; - expectedvalues[UBound] = expect; - actualvalues[UBound] = actual; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-191479.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-191479.js deleted file mode 100644 index 51d5f14c42..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-191479.js +++ /dev/null @@ -1,198 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * flying@dom.natm.ru, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 31 January 2003 - * SUMMARY: Testing regular expressions of form /(x|y){n,}/ - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=191479 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-191479.js'; -var i = 0; -var BUGNUMBER = 191479; -var summary = 'Testing regular expressions of form /(x|y){n,}/'; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -status = inSection(1); -string = '12 3 45'; -pattern = /(\d|\d\s){2,}/; -actualmatch = string.match(pattern); -expectedmatch = Array('12', '2'); -addThis(); - -status = inSection(2); -string = '12 3 45'; -pattern = /(\d|\d\s){4,}/; -actualmatch = string.match(pattern); -expectedmatch = Array(string, '5'); -addThis(); - -status = inSection(3); -string = '12 3 45'; -pattern = /(\d|\d\s)+/; -actualmatch = string.match(pattern); -expectedmatch = Array('12', '2'); -addThis(); - -status = inSection(4); -string = '12 3 45'; -pattern = /(\d\s?){4,}/; -actualmatch = string.match(pattern); -expectedmatch = Array(string, '5'); -addThis(); - -/* - * Let's reverse the operands in Sections 1-3 above - - */ -status = inSection(5); -string = '12 3 45'; -pattern = /(\d\s|\d){2,}/; -actualmatch = string.match(pattern); -expectedmatch = Array(string, '5'); -addThis(); - -status = inSection(6); -string = '12 3 45'; -pattern = /(\d\s|\d){4,}/; -actualmatch = string.match(pattern); -expectedmatch = Array(string, '5'); -addThis(); - -status = inSection(7); -string = '12 3 45'; -pattern = /(\d\s|\d)+/; -actualmatch = string.match(pattern); -expectedmatch = Array(string, '5'); -addThis(); - - -/* - * Let's take all 7 sections above and make each quantifer non-greedy. - * - * This is done by appending ? to it. It doesn't change the meaning of - * the quantifier, but makes it non-greedy, which affects the results - - */ -status = inSection(8); -string = '12 3 45'; -pattern = /(\d|\d\s){2,}?/; -actualmatch = string.match(pattern); -expectedmatch = Array('12', '2'); -addThis(); - -status = inSection(9); -string = '12 3 45'; -pattern = /(\d|\d\s){4,}?/; -actualmatch = string.match(pattern); -expectedmatch = Array('12 3 4', '4'); -addThis(); - -status = inSection(10); -string = '12 3 45'; -pattern = /(\d|\d\s)+?/; -actualmatch = string.match(pattern); -expectedmatch = Array('1', '1'); -addThis(); - -status = inSection(11); -string = '12 3 45'; -pattern = /(\d\s?){4,}?/; -actualmatch = string.match(pattern); -expectedmatch = Array('12 3 4', '4'); -addThis(); - -status = inSection(12); -string = '12 3 45'; -pattern = /(\d\s|\d){2,}?/; -actualmatch = string.match(pattern); -expectedmatch = Array('12 ', '2 '); -addThis(); - -status = inSection(13); -string = '12 3 45'; -pattern = /(\d\s|\d){4,}?/; -actualmatch = string.match(pattern); -expectedmatch = Array('12 3 4', '4'); -addThis(); - -status = inSection(14); -string = '12 3 45'; -pattern = /(\d\s|\d)+?/; -actualmatch = string.match(pattern); -expectedmatch = Array('1', '1'); -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-202564.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-202564.js deleted file mode 100644 index e0ae0f9948..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-202564.js +++ /dev/null @@ -1,101 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * drbrain-bugzilla@segment7.net, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 18 April 2003 - * SUMMARY: Testing regexp with many backreferences - * See http://bugzilla.mozilla.org/show_bug.cgi?id=202564 - * - * Note that in Section 1 below, we expect the 1st and 4th backreferences - * to hold |undefined| instead of the empty strings one gets in Perl and IE6. - * This is because per ECMA, regexp backreferences must hold |undefined| - * if not used. See http://bugzilla.mozilla.org/show_bug.cgi?id=123437. - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-202564.js'; -var i = 0; -var BUGNUMBER = 202564; -var summary = 'Testing regexp with many backreferences'; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -status = inSection(1); -string = 'Seattle, WA to Buckley, WA'; -pattern = /(?:(.+), )?(.+), (..) to (?:(.+), )?(.+), (..)/; -actualmatch = string.match(pattern); -expectedmatch = Array(string, undefined, "Seattle", "WA", undefined, "Buckley", "WA"); -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-209067.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-209067.js deleted file mode 100644 index 98b4029ce4..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-209067.js +++ /dev/null @@ -1,1106 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 12 June 2003 - * SUMMARY: Testing complicated str.replace() - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=209067 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-209067.js'; -var UBound = 0; -var BUGNUMBER = 209067; -var summary = 'Testing complicated str.replace()'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -function formatHTML(h) -{ - // a replace function used in the succeeding lines - - function S(s) - { - return s.replace(/</g,'<').replace(/>/g,'>'); - } - - h+='\n'; - h=h.replace(/&([^\s]+;)/g,'<&$1>'); - h=h.replace(new RegExp('<!-'+'-[\\s\\S]*-'+'->','g'), S); - h=h.replace(/"[^"]*"/g,S); - h=h.replace(/'[^']*'/g,S); - - - h=h.replace(/<([^>]*)>/g, - function(s,p) - { - if(s.match(/!doctype/i)) - return'<span class=doctype><' + p + '></span>'; - - p=p.replace(/\\'/g,'\\'').replace(/\\"/g,'\\"').replace(/^\s/,''); -p=p.replace(/(\s)([^<]+)$/g, - function(s,p1,p2) - { - p2=p2.replace(/(=)(\s*[^"'][^\s]*)(\s|$)/g,'$1<span class=attribute-value>$2</span>$3'); - p2=p2.replace(/("[^"]*")/g,'<span class=attribute-value>$1</span>'); - p2=p2.replace(/('[^']*')/g,'<span class=attribute-value>$1</span>'); - return p1 + '<span class=attribute-name>'+p2+'</span>'; - } - ) - - return'<<span class=' + (s.match(/<\s*\//)?'end-tag':'start-tag') + '>' + p + '</span>>'; - } - ) - - - h=h.replace(/<(&[^\s]+;)>/g,'<span class=entity>$1</span>'); - h=h.replace(/(<!--[\s\S]*-->)/g,'<span class=comment>$1</span>'); - - - numer=1; - h=h.replace(/(.*\n)/g, - function(s,p) - { - return (numer++) +'. ' + p; - } - ) - - - return'<span class=text>' + h + '</span>'; -} - - - -/* - * sanity check - */ -status = inSection(1); -actual = formatHTML('abc'); -expect = '<span class=text>1. abc\n</span>'; -addThis(); - - -/* - * The real test: can we run this without crashing? - * We are not validating the result, just running it. - */ -status = inSection(2); -var HUGE_TEST_STRING = hugeString(); -formatHTML(HUGE_TEST_STRING); - - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} - - -function hugeString() -{ -var s = ''; - -s += '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'; -s += '<html lang="en">'; -s += '<head>'; -s += ' <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">'; -s += ' <meta http-equiv="refresh" content="1800">'; -s += ' <title>CNN.com</title>'; -s += ' <link rel="Start" href="/">'; -s += ' <link rel="Search" href="/search/">'; -s += ' <link rel="stylesheet" href="http://i.cnn.net/cnn/.element/ssi/css/1.0/main.css" type="text/css">'; -s += ' <script language="JavaScript1.2" src="http://i.cnn.net/cnn/.element/ssi/js/1.0/main.js" type="text/javascript"></script>'; -s += '<script language="JavaScript1.1" src="http://ar.atwola.com/file/adsWrapper.js"></script>'; -s += '<style type="text/css">'; -s += '<!--'; -s += '.aoltextad { text-align: justify; font-size: 12px; color: black; font-family: Georgia, sans-serif }'; -s += '-->'; -s += '</style>'; -s += '<script language="JavaScript1.1" type="text/javascript" src="http://ar.atwola.com/file/adsPopup2.js"></script>'; -s += '<script language="JavaScript">'; -s += 'document.adoffset = 0;'; -s += 'document.adPopupDomain = "www.cnn.com";'; -s += 'document.adPopupFile = "/cnn_adspaces/adsPopup2.html";'; -s += 'document.adPopupInterval = "P24";'; -s += 'document.adPopunderInterval = "P24";'; -s += 'adSetOther("&TVAR="+escape("class=us.low"));'; -s += '</script>'; -s += ''; -s += ' '; -s += '</head>'; -s += '<body class="cnnMainPage">'; -s += ''; -s += ''; -s += ''; -s += '<a name="top_of_page"></a>'; -s += '<a href="#ContentArea"><img src="http://i.cnn.net/cnn/images/1.gif" alt="Click here to skip to main content." width="10" height="1" border="0" align="right"></a>'; -s += '<table width="770" border="0" cellpadding="0" cellspacing="0" style="speak: none">'; -s += ' <col width="229">'; -s += ' <col width="73">'; -s += ' <col width="468">'; -s += ' <tr>'; -s += ' <td colspan="3"><!--'; -s += '[[!~~ netscape hat ~~]][[table border="0" cellpadding="0" cellspacing="0" width="100%"]][[tr]][[td]][[script Language="Javascript" SRC="http://toolbar.aol.com/dashboard.twhat?dom=cnn" type="text/javascript"]][[/script]][[/td]][[/tr]][[/table]]'; -s += ''; -s += '[[div]][[img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="2" border="0"]][[/div]]'; -s += '-->'; -s += ' </td>'; -s += ' </tr>'; -s += ' <tr valign="bottom">'; -s += ' <td width="229" style="speak: normal"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/logo/cnn.gif" alt="CNN.com" width="229" height="52" border="0"></td>'; -s += ' <td width="73"></td>'; -s += ' <td width="468" align="right">'; -s += ' <!-- home/bottom.468x60 -->'; -s += '<script language="JavaScript1.1">'; -s += '<!--'; -s += 'adSetTarget("_top");'; -s += 'htmlAdWH( (new Array(93103287,93103287,93103300,93103300))[document.adoffset||0] , 468, 60);'; -s += '//-->'; - s += '</script>'; - s += '<noscript><a href="http://ar.atwola.com/link/93103287/aol" target="_top"><img src="http://ar.atwola.com/image/93103287/aol" alt="Click Here" width="468" height="60" border="0"></a></noscript> '; - s += ''; - s += ''; - s += ''; - s += ''; - s += ' </td>'; - s += ' </tr>'; - s += ' <tr><td colspan="3"><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="2"></td></tr>'; - s += ' <tr>'; - s += ' <td colspan="3">'; - s += '</td>'; - s += ' </tr>'; - s += ' <tr><td colspan="3" bgcolor="#CC0000"><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="3"></td></tr>'; - s += ' <tr>'; - s += ' <td colspan="3">'; - s += ''; - s += '<table width="770" border="0" cellpadding="0" cellspacing="0">'; - s += ' <form action="http://search.cnn.com/cnn/search" method="get" onsubmit="return CNN_validateSearchForm(this);">'; - s += '<input type="hidden" name="source" value="cnn">'; - s += '<input type="hidden" name="invocationType" value="search/top">'; - s += ' <tr><td colspan="4"><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="1" border="0"></td></tr>'; - s += ' <tr><td colspan="4" bgcolor="#003366"><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="3" border="0"></td></tr>'; - s += ' <tr>'; - s += ' <td rowspan="2"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/searchbar/bar.search.gif" alt="SEARCH" width="110" height="27" border="0"></td>'; - s += ' <td colspan="2"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/searchbar/bar.top.bevel.gif" alt="" width="653" height="3" border="0"></td>'; - s += ' <td rowspan="2"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/searchbar/bar.right.bevel.gif" alt="" width="7" height="27" border="0"></td>'; - s += ' </tr>'; - s += ' <tr bgcolor="#B6D8E0">'; - s += ' <td><table border="0" cellpadding="0" cellspacing="0">'; - s += ' <tr>'; - s += ' <td> </td>'; - s += ' <td nowrap><span class="cnnFormTextB" style="color:#369">The Web</span></td>'; - s += ' <td><input type="radio" name="sites" value="google" checked></td>'; - s += ' <td> </td>'; - s += ' <td><span class="cnnFormTextB" style="color:#369;">CNN.com</span></td>'; - s += ' <td><input type="radio" name="sites" value="cnn"></td>'; - s += ' <td> </td>'; - s += ' <td><input type="text" name="query" class="cnnFormText" value="" title="Enter text to search for and click Search" size="35" maxlength="40" style="width: 280px"></td>'; - s += ' <td> <input type="Submit" value="Search" class="cnnNavButton" style="padding: 0px; margin: 0px; width: 50px"></td>'; - s += ' </tr>'; - s += ' </table></td>'; - s += ' <td align="right"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/searchbar/bar.google.gif" alt="enhanced by Google" width="137" height="24" border="0"></td>'; - s += ' </tr>'; - s += ' <tr><td colspan="4"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/searchbar/bar.bottom.bevel.gif" alt="" width="770" height="3" border="0"></td></tr>'; - s += ' </form>'; - s += '</table>'; - s += ' </td>'; - s += ' </tr>'; - s += ''; - s += ''; - s += '</table>'; - s += ''; - s += '<table width="770" border="0" cellpadding="0" cellspacing="0">'; - s += ' <col width="126" align="left" valign="top">'; - s += ' <col width="10">'; - s += ' <col width="280">'; - s += ' <col width="10">'; - s += ' <col width="344">'; - s += ' <tr valign="top">'; - s += ' <td rowspan="5" width="126" style="speak: none"><table id="cnnNavBar" width="126" bgcolor="#EEEEEE" border="0" cellpadding="0" cellspacing="0" summary="CNN.com Navigation">'; - s += ' <col width="8" align="left" valign="top">'; - s += ' <col width="118" align="left" valign="top">'; - s += ' <tr bgcolor="#CCCCCC" class="cnnNavHiliteRow"><td width="8" class="swath"> </td>'; - s += ' <td class="cnnNavHilite" onClick="CNN_goTo("/")"><div class="cnnNavText"><a href="/">Home Page</a></div></td></tr>'; - s += ' <tr class="cnnNavRow"><td class="swath"> </td>'; - s += ' <td class="cnnNav" onMouseOver="CNN_navBar(this,1,1)" onMouseOut="CNN_navBar(this,0,1)" onClick="CNN_navBarClick(this,1,"/WORLD/")"><div class="cnnNavText"><a href="/WORLD/">World</a></div></td></tr>'; - s += ' <tr class="cnnNavRow"><td class="swath"> </td>'; - s += ' <td class="cnnNav" onMouseOver="CNN_navBar(this,1,1)" onMouseOut="CNN_navBar(this,0,1)" onClick="CNN_navBarClick(this,1,"/US/")"><div class="cnnNavText"><a href="/US/">U.S.</a></div></td></tr>'; - s += ' <tr class="cnnNavRow"><td class="swath"> </td>'; - s += ' <td class="cnnNav" onMouseOver="CNN_navBar(this,1,1)" onMouseOut="CNN_navBar(this,0,1)" onClick="CNN_navBarClick(this,1,"/WEATHER/")"><div class="cnnNavText"><a href="/WEATHER/">Weather</a></div></td></tr>'; - s += ' <tr class="cnnNavRow"><td class="swath"> </td>'; - s += ' <td class="cnnNav" onMouseOver="CNN_navBar(this,1,1)" onMouseOut="CNN_navBar(this,0,1)" onClick="CNN_navBarClick(this,1,"/money/")"><div class="cnnNavText"><a href="/money/">Business</a> <a href="/money/"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/nav_at_money.gif" alt="at CNN/Money" width="51" height="5" border="0"></a></div></td></tr>'; - s += ' <tr class="cnnNavRow"><td class="swath"> </td>'; - s += ' <td class="cnnNav" onMouseOver="CNN_navBar(this,1,1)" onMouseOut="CNN_navBar(this,0,1)" onClick="CNN_navBarClick(this,1,"/cnnsi/")"><div class="cnnNavText"><a href="/si/">Sports</a> <a href="/si/"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/nav_at_si.gif" alt="at SI.com" width="50" height="5" border="0"></a></div></td></tr>'; - s += ' <tr class="cnnNavRow"><td class="swath"> </td>'; - s += ' <td class="cnnNav" onMouseOver="CNN_navBar(this,1,1)" onMouseOut="CNN_navBar(this,0,1)" onClick="CNN_navBarClick(this,1,"/ALLPOLITICS/")"><div class="cnnNavText"><a href="/ALLPOLITICS/">Politics</a></div></td></tr>'; - s += ' <tr class="cnnNavRow"><td class="swath"> </td>'; - s += ' <td class="cnnNav" onMouseOver="CNN_navBar(this,1,1)" onMouseOut="CNN_navBar(this,0,1)" onClick="CNN_navBarClick(this,1,"/LAW/")"><div class="cnnNavText"><a href="/LAW/">Law</a></div></td></tr>'; - s += ' <tr class="cnnNavRow"><td class="swath"> </td>'; - s += ' <td class="cnnNav" onMouseOver="CNN_navBar(this,1,1)" onMouseOut="CNN_navBar(this,0,1)" onClick="CNN_navBarClick(this,1,"/TECH/")"><div class="cnnNavText"><a href="/TECH/">Technology</a></div></td></tr>'; - s += ' <tr class="cnnNavRow"><td class="swath"> </td>'; - s += ' <td class="cnnNav" onMouseOver="CNN_navBar(this,1,1)" onMouseOut="CNN_navBar(this,0,1)" onClick="CNN_navBarClick(this,1,"/TECH/space/")"><div class="cnnNavText"><a href="/TECH/space/">Science & Space</a></div></td></tr>'; - s += ' <tr class="cnnNavRow"><td class="swath"> </td>'; - s += ' <td class="cnnNav" onMouseOver="CNN_navBar(this,1,1)" onMouseOut="CNN_navBar(this,0,1)" onClick="CNN_navBarClick(this,1,"/HEALTH/")"><div class="cnnNavText"><a href="/HEALTH/">Health</a></div></td></tr>'; - s += ' <tr class="cnnNavRow"><td class="swath"> </td>'; - s += ' <td class="cnnNav" onMouseOver="CNN_navBar(this,1,1)" onMouseOut="CNN_navBar(this,0,1)" onClick="CNN_navBarClick(this,1,"/SHOWBIZ/")"><div class="cnnNavText"><a href="/SHOWBIZ/">Entertainment</a></div></td></tr>'; - s += ' <tr class="cnnNavRow"><td class="swath"> </td>'; - s += ' <td class="cnnNav" onMouseOver="CNN_navBar(this,1,1)" onMouseOut="CNN_navBar(this,0,1)" onClick="CNN_navBarClick(this,1,"/TRAVEL/")"><div class="cnnNavText"><a href="/TRAVEL/">Travel</a></div></td></tr>'; - s += ' <tr class="cnnNavRow"><td class="swath"> </td>'; - s += ' <td class="cnnNav" onMouseOver="CNN_navBar(this,1,1)" onMouseOut="CNN_navBar(this,0,1)" onClick="CNN_navBarClick(this,1,"/EDUCATION/")"><div class="cnnNavText"><a href="/EDUCATION/">Education</a></div></td></tr>'; - s += ' <tr class="cnnNavRow"><td class="swath"> </td>'; - s += ' <td class="cnnNav" onMouseOver="CNN_navBar(this,1,1)" onMouseOut="CNN_navBar(this,0,1)" onClick="CNN_navBarClick(this,1,"/SPECIALS/")"><div class="cnnNavText"><a href="/SPECIALS/">Special Reports</a></div></td></tr>'; - s += ' <tr bgcolor="#FFFFFF"><td class="cnnNavAd" colspan="2" align="center"><!-- home/left.120x90 -->'; - s += '<script language="JavaScript1.1">'; - s += '<!--'; - s += 'adSetTarget("_top");'; - s += 'htmlAdWH( (new Array(93166917,93166917,93170132,93170132))[document.adoffset||0] , 120, 90);'; - s += '//-->'; - s += '</script><noscript><a href="http://ar.atwola.com/link/93166917/aol" target="_top"><img src="http://ar.atwola.com/image/93166917/aol" alt="Click here for our advertiser" width="120" height="90" border="0"></a></noscript></td></tr>'; - s += ' <tr bgcolor="#999999" class="cnnNavGroupRow">'; - s += ' <td colspan="2" class="cnnNavGroup"><div class="cnnNavText">SERVICES</div></td></tr>'; - s += ' <tr class="cnnNavOtherRow"><td class="swath"> </td>'; - s += ' <td class="cnnNavOther" onMouseOver="CNN_navBar(this,1,0)" onMouseOut="CNN_navBar(this,0,0)" onClick="CNN_navBarClick(this,0,"/video/")"><div class="cnnNavText"><a href="/video/">Video</a></div></td></tr>'; - s += ' <tr class="cnnNavOtherRow"><td class="swath"> </td>'; - s += ' <td class="cnnNavOther" onMouseOver="CNN_navBar(this,1,0)" onMouseOut="CNN_navBar(this,0,0)" onClick="CNN_navBarClick(this,0,"/EMAIL/")"><div class="cnnNavText"><a href="/EMAIL/">E-Mail Services</a></div></td></tr>'; - s += ' <tr class="cnnNavOtherRow"><td class="swath"> </td>'; - s += ' <td class="cnnNavOther" onMouseOver="CNN_navBar(this,1,0)" onMouseOut="CNN_navBar(this,0,0)" onClick="CNN_navBarClick(this,0,"/mobile/CNNtoGO/")"><div class="cnnNavText"><a href="/mobile/CNNtoGO/">CNN To Go</a></div></td></tr>'; - s += ' <tr bgcolor="#999999" class="cnnNavGroupRow">'; - s += ' <td colspan="2" class="cnnNavGroup" style="background-color: #445B60"><div class="cnnNavText" style="color: #fff">SEARCH</div></td></tr>'; - s += ' <tr bgcolor="#CCCCCC"><td colspan="2" class="cnnNavSearch" style="background-color:#B6D8E0">'; - s += ''; - s += '<form action="http://search.cnn.com/cnn/search" method="get" name="nav_bottom_search" onSubmit="return CNN_validateSearchForm(this)" style="margin: 0px;">'; - s += ' <input type="hidden" name="sites" value="cnn">'; - s += ' <input type="hidden" name="source" value="cnn">'; - s += ' <input type="hidden" name="invocationType" value="side/bottom">'; - s += '<table width="100%" border="0" cellpadding="0" cellspacing="4">'; - s += ' <tr><td colspan="2"><table width="100%" border="0" cellpadding="0" cellspacing="0">'; - s += ' <tr>'; - s += ' <td align="left"><span class="cnnFormTextB" style="color: #369">Web</span></td>'; - s += ' <td><input type="radio" name="sites" value="google" checked></td>'; - s += ' <td align="right"><span class="cnnFormTextB" style="color: #369">CNN.com</span></td>'; - s += ' <td><input type="radio" name="sites" value="cnn"></td>'; - s += ' </tr>'; - s += ' </table></td></tr>'; - s += ' <tr><td colspan="2"><input type="text" name="query" class="cnnFormText" value="" title="Enter text to search for and click Search" size="7" maxlength="40" style="width: 100%"></td></tr>'; - s += ' <tr valign="top">'; - s += ' <td><input type="submit" value="Search" class="cnnNavButton" style="padding: 0px; margin: 0px; width: 50px"></td>'; - s += ' <td align="right"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/sect/SEARCH/nav.search.gif" alt="enhanced by Google" width="54" height="27"></td>'; - s += ' </tr>'; - s += '</table>'; - s += ''; - s += ''; - s += ''; - s += '</td></form></tr>'; - s += '</table>'; - s += ''; - s += ' </td>'; - s += ' <td rowspan="5" width="10"><a name="ContentArea"></a><img id="accessibilityPixel" src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="7" border="0"></td>'; - s += ' <td colspan="3" valign="middle">'; - s += ' <table border="0" cellpadding="0" cellspacing="0" width="100%">'; - s += ' <tr>'; - s += ' <td valign="top" nowrap><div class="cnnFinePrint" style="color: #333;padding:6px;padding-left:0px;">Updated: 05:53 p.m. EDT (2153 GMT) June 12, 2003</div></td>'; - s += ' <td align="right" nowrap class="cnnt1link"><a href="http://edition.cnn.com/">Visit International Edition</a> </td>'; - s += ' </tr><!--include virtual="/.element/ssi/sect/MAIN/1.0/banner.html"-->'; - s += ' </table>'; - s += ' </td>'; - s += ' </tr>'; - s += ' <tr valign="top">'; - s += ' <td rowspan="2" width="280" bgcolor="#EAEFF4">'; - s += ''; - s += '<!-- T1 -->'; - s += ' '; - s += ' <a href="/2003/SHOWBIZ/Movies/06/12/obit.peck/index.html"><img src="http://i.cnn.net/cnn/2003/SHOWBIZ/Movies/06/12/obit.peck/top.peck.obit.jpg" alt="Oscar-winner Peck dies" width="280" height="210" border="0" hspace="0" vspace="0"></a>'; - s += ''; - s += ' <div class="cnnMainT1">'; - s += ' <h2 style="font-size:20px;"><a href="/2003/SHOWBIZ/Movies/06/12/obit.peck/index.html">Oscar-winner Peck dies</a></h2>'; - s += '<p>'; - s += 'Actor Gregory Peck, who won an Oscar for his portrayal of upstanding lawyer Atticus Finch in 1962s "To Kill a Mockingbird," has died at age 87. Peck was best known for roles of dignified statesmen and people who followed a strong code of ethics. But he also could play against type. All told, Peck was nominated for five Academy Awards.'; - s += '</p>'; - s += ' <p>'; - s += ' <b><a href="/2003/SHOWBIZ/Movies/06/12/obit.peck/index.html" class="cnnt1link">FULL STORY</a></b>'; - s += ' </p>'; - s += ''; - s += ''; - s += ''; - s += '• <span class="cnnBodyText" style="font-weight:bold;color:#333;">Video: </span><img src="http://i.cnn.net/cnn/.element/img/1.0/misc/premium.gif" alt="premium content" width="9" height="11" hspace="0" vspace="0" border="0" align="absmiddle"> <a href="javascript:LaunchVideo("/showbiz/2003/06/12/peck.obit.affl.","300k");">A leading mans leading man</a><br>'; - s += ''; - s += ''; - s += ''; - s += ' '; - s += '• <span class="cnnBodyText" style="font-weight:bold;color:#333">Interactive: </span> <a href="javascript:CNN_openPopup("/interactive/entertainment/0306/peck.obit/frameset.exclude.html","620x430","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=620,height=430")">Gregory Peck through the years</a><br>'; - s += ''; - s += ' '; - s += '• <a href="http://www.cnn.com/2003/SHOWBIZ/Movies/06/12/peck.filmography/index.html" target="new">Gregory Peck filmography</a><img src="http://i.cnn.net/cnn/.element/img/1.0/misc/icon.external.links.gif" alt="external link" width="20" height="13" vspace="1" hspace="4" border="0" align="top"><br>'; - s += ''; - s += ' '; - s += '• <a href="http://www.cnn.com/2003/SHOWBIZ/Movies/06/04/heroes.villains.ap/index.html" target="new">Pecks Finch chararcter AFIs top hero</a><img src="http://i.cnn.net/cnn/.element/img/1.0/misc/icon.external.links.gif" alt="external link" width="20" height="13" vspace="1" hspace="4" border="0" align="top"><br>'; - s += ' </div>'; - s += ''; - s += '<!-- /T1 -->'; - s += ' </td>'; - s += ' '; - s += ' <td rowspan="2" width="10"><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="10" height="1"></td>'; - s += ' <td width="344">'; - s += ''; - s += ''; - s += ''; - s += ''; - s += '<!-- T2 -->'; - s += ''; - s += '<div><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/px_c00.gif" alt="" width="344" height="2"></div>'; - s += '<table width="344" border="0" cellpadding="0" cellspacing="0">'; - s += ' <tr>'; - s += ' <td width="285" class="cnnTabbedBoxHeader" style="padding-left:0px;"><span class="cnnBigPrint"><b>MORE TOP STORIES</b></span></td>'; - s += ' <td width="59" class="cnnTabbedBoxTab" align="right" bgcolor="#336699"><a href="/userpicks"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/userpicks.gif" alt=" Hot Stories " width="59" height="11" border="0"></a></td>'; - s += ' </tr>'; - s += '</table>'; - s += '<div style="padding:6px;padding-left:0px;">'; - s += ''; - s += ' '; - s += '<div class="cnnMainNewT2">• <a href="/2003/WORLD/meast/06/12/mideast/index.html">7 dead in new Gaza strike</a>'; - s += '| <img src="http://i.cnn.net/cnn/.element/img/1.0/misc/premium.gif" alt="premium content" width="9" height="11" hspace="0" vspace="0" border="0" align="absmiddle"> <a href="javascript:LaunchVideo("/world/2003/06/11/cb.bush.roadmap.ap.","300k");">Video</a><br></div>'; - s += ''; - s += ' '; - s += '<div class="cnnMainNewT2">• <a href="/2003/WORLD/meast/06/12/sprj.irq.main/index.html">U.S. helicopter, jet down in Iraqi raid</a>'; - s += '| <img src="http://i.cnn.net/cnn/.element/img/1.0/misc/premium.gif" alt="premium content" width="9" height="11" hspace="0" vspace="0" border="0" align="absmiddle"> <a href="javascript:LaunchVideo("/iraq/2003/06/11/bw.iraq.oil.cnn.","300k");">Video</a><br></div>'; - s += ''; - s += ' '; - s += '<div class="cnnMainNewT2">• <a href="/2003/SHOWBIZ/TV/06/12/obit.brinkley/index.html">Television icon David Brinkley dead at 82</a><br></div>'; - s += ''; - s += ' '; - s += '<div class="cnnMainNewT2">• <a href="/2003/LAW/06/12/peterson.case/index.html">Peterson search warrants will be made public in July</a><br></div>'; - s += ''; - s += ' '; - s += '<div class="cnnMainNewT2">• <a href="/2003/WORLD/asiapcf/east/06/12/okinawa.rape/index.html">U.S. Marine held in new Okinawa rape case</a><br></div>'; - s += ''; - s += ' '; - s += '<div class="cnnMainNewT2">• <a href="/2003/TECH/space/06/12/sprj.colu.bolts.ap/index.html">New threat discovered for shuttle launches</a><br></div>'; - s += ''; - s += ' '; - s += '<div class="cnnMainNewT2">• <a href="/2003/SHOWBIZ/TV/06/12/television.sopranos.reut/index.html">"Soprano" Gandolfini shares his wealth with castmates</a><br></div>'; - s += '<!--[[div class="cnnMainNewT2"]]• [[b]][[span style="color:#C00;"]]CNN[[/span]]Radio:[[/b]] [[a href="javascript:CNN_openPopup("/audio/radio/preferences.html","radioplayer","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=200,height=124")"]]Bush on Medicare[[/a]] [[a href="javascript:CNN_openPopup("/audio/radio/preferences.html","radioplayer","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=200,height=124")"]][[img src="http://i.a.cnn.net/cnn/.element/img/1.0/misc/live.video.gif" alt="" width="61" height="14" vspace="0" hspace="2" align="absmiddle" border="0"]][[/a]][[img src="http://i.a.cnn.net/cnn/.element/img/1.0/misc/audio.gif" alt="" width="10" height="10" vspace="0" hspace="2" align="absmiddle"]][[br]][[/div]]--></div>'; - s += ''; - s += '<!-- /T2 -->'; - s += '<div><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="10"></div>'; - s += ''; - s += '<!--include virtual="/.element/ssi/misc/1.0/war.zone.smmap.txt"-->'; - s += '<!-- =========== CNN Radio/Video Box =========== -->'; - s += '<!-- top line --> '; - s += '<div><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/px_ccc.gif" alt="" width="344" height="1"></div>'; - s += '<!-- /top line -->'; - s += ' <table width="344" border="0" cellpadding="0" cellspacing="0">'; - s += ' <tr valign="top">'; - s += '<!-- left-side line --> '; - s += ' <td bgcolor="#CCCCCC" width="1"><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="30" hspace="0" vspace="0" border="0"></td>'; - s += '<!-- /left-side line --> '; - s += '<!-- CNNRadio cell -->'; - s += ' <td width="114"><div class="cnn6pxPad">'; - s += ' <span class="cnnBigPrint" style="color:#C00;font-weight:bold;">CNN</span><span class="cnnBigPrint" style="color:#000;font-weight:bold;">RADIO</span>'; - s += '<div class="cnnMainNewT2"><a href="javascript:CNN_openPopup("/audio/radio/preferences.html","radioplayer","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=200,height=124")">Listen to latest updates</a><img src="http://i.a.cnn.net/cnn/.element/img/1.0/misc/audio.gif" alt="" width="10" height="10" vspace="0" hspace="2" align="absmiddle">'; - s += '<div><img src="http://i.a.cnn.net/cnn/images/1.gif" alt="" width="1" height="5" hspace="0" vspace="0"></div>'; - s += '<!--'; - s += '[[span class="cnnFinePrint"]]sponsored by:[[/span]][[br]][[center]]'; - s += '[[!~~#include virtual="/cnn_adspaces/home/war_in_iraq/sponsor.88x31.ad"~~]]'; - s += ' [[/center]]'; - s += '-->'; - s += ' </div></td>'; - s += '<!-- /CNNRadio cell --> '; - s += '<!-- center line --> '; - s += ' <td bgcolor="#CCCCCC" width="1"><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="1" hspace="0" vspace="0" border="0"></td>'; - s += '<!-- /center line --> '; - s += '<!-- video cell --> '; - s += ' <td width="227"><div class="cnn6pxPad">'; - s += '<!-- video box --> '; - s += '<table width="215" border="0" cellpadding="0" cellspacing="0">'; - s += ' <tr valign="top">'; - s += ' <td width="144"><span class="cnnBigPrint" style="font-weight:bold;">VIDEO</span></td>'; - s += ' <td width="6"><img src="http://i.a.cnn.net/cnn/images/1.gif" alt="" width="6" height="1" hspace="0" vspace="0"></td>'; - s += ' <td width="65"><a href="/video/"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/more.video.blue.gif" alt="MORE VIDEO" width="62" height="11" hspace="0" vspace="0" border="0"></a></td></tr>'; - s += ' <tr>'; - s += ' <td width="215" colspan="3"><img src="http://i.a.cnn.net/cnn/images/1.gif" alt="" width="1" height="2" hspace="0" vspace="0"></td></tr>'; - s += ' <tr valign="top">'; - s += ' <td><div class="cnnBodyText">'; - s += ' Soldier broke dozens of hearts over e-mail<br>'; - s += ' <img src="http://i.a.cnn.net/cnn/images/icons/premium.gif" align="middle" alt="premium content" width="9" height="11" hspace="0" vspace="1" border="0"> <a href="javascript:LaunchVideo("/offbeat/2003/06/12/ms.casanova.col.ap.","300k");" class="cnnVideoLink">PLAY VIDEO</a></div>'; - s += ' </td>'; - s += '<td width="3"><img src="http://i.a.cnn.net/cnn/images/1.gif" alt="" width="3" height="1" hspace="0" vspace="0"></td> '; - s += ' <td width="65" align="right">'; - s += ' <a href="javascript:LaunchVideo("/offbeat/2003/06/12/ms.casanova.col.ap.","300k");"><img src="http://i.cnn.net/cnn/video/offbeat/2003/06/12/ms.casanova.col.vs.kndu.jpg" alt="" width="65" height="49" border="0" vspace="2" hspace="0"></a>'; - s += ' </td></tr>'; - s += '</table>'; - s += ' <!-- /video box --> '; - s += ' </div></td>'; - s += '<!-- /video cell --> '; - s += '<!-- right-side line --> '; - s += '<td bgcolor="#CCCCCC" width="1"><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="1" hspace="0" vspace="0" border="0"></td>'; - s += '<!-- /right-side line --> '; - s += ' </tr>'; - s += ' </table>'; - s += ''; - s += '<!-- bottom line -->'; - s += '<div><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/px_ccc.gif" alt="" width="344" height="1"></div>'; - s += '<!-- /bottom line -->'; - s += '<!-- =========== /CNN Radio/Video Box =========== -->'; - s += ''; - s += '<div><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="10"></div>'; - s += '<div><img src="http://i.cnn.net/cnn/.element/img/1.0/main/px_c00.gif" alt="" width="344" height="2"></div>'; - s += '<table width="344" border="0" cellpadding="0" cellspacing="0">'; - s += ' <tr>'; - s += ' <td width="260" class="cnnTabbedBoxHeader" style="padding-left:0px;"><span class="cnnBigPrint"><b>ON THE SCENE</b></span></td>'; - s += ' <td width="84" class="cnnTabbedBoxTab" align="right" bgcolor="#336699" style="padding: 0px 3px;"><a href="/LAW/"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/superlinks/law.gif" alt="more reports" height="11" border="0" hspace="2" vspace="2" align="right"></a></td>'; - s += ' </tr>'; - s += '</table>'; - s += ''; - s += '<table width="344" border="0" cellpadding="5" cellspacing="0">'; - s += ' <tr valign="top">'; - s += ' <td style="padding-left:0px;"> <b>Jeffrey Toobin:</b> "It takes guts" for Peterson defense to subpoena judge over wiretap issue.'; - s += '<a href="/2003/LAW/06/12/otsc.toobin/index.html">Full Story</a></td>'; - s += ''; - s += '<td width="65" align="right" style="padding-left:6px;"><a href="/2003/LAW/06/12/otsc.toobin/index.html"><img src="http://i.cnn.net/cnn/2003/LAW/06/12/otsc.toobin/tz.toobin.jpg" alt="image" width="65" height="49" border="0" hspace="0" vspace="0"></a></td>'; - s += ' </tr>'; - s += '</table>'; - s += '<div><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="10"></div>'; - s += ' </td>'; - s += ' </tr>'; - s += ' <tr valign="bottom">'; - s += ' <td>'; - s += '<table width="344" border="0" cellpadding="0" cellspacing="0">'; - s += ' <tr>'; - s += ' <td width="267" nowrap style="color: #c00; padding-left: 6px"><span class="cnnBigPrint" style="vertical-align: top"><b>BUSINESS</b></span>'; - s += ' <a href="/money/"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/at_cnnmoney.gif" alt=" at CNN/Money " width="100" height="15" border="0"></a></td>'; - s += ' <td width="77" align="right"><a href="/money/"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/business.news.blue.gif" alt=" Business News " width="77" height="11" border="0"></a></td>'; - s += ' </tr>'; - s += '</table>'; - s += ''; - s += '<table width="344" bgcolor="#EEEEEE" border="0" cellpadding="0" cellspacing="0" style="border: solid 1px #ddd">'; - s += ' <tr valign="top">'; - s += ' <td>'; - s += ' <table width="100%" border="0" cellpadding="0" cellspacing="4">'; - s += ' <tr>'; - s += ' <td colspan="3"><span class="cnnMenuText"><b>STOCK/FUND QUOTES: </b></span></td>'; - s += ' </tr><form action="http://qs.money.cnn.com/tq/stockquote" method="get" style="margin: 0px;">'; - s += ' <tr>'; - s += ' <td><span class="cnnFinePrint">enter symbol</span></td>'; - s += ' <td><input type="text" name="symbols" size="7" maxlength="40" class="cnnMenuText" title="Enter stock/fund symbol or name to get a quote"></td>'; - s += ' <td><input type="submit" value="GET" class="cnnNavButton"></td>'; - s += ' </tr></form>'; - s += ' </table>'; - s += ' <table width="100%" border="0" cellpadding="0" cellspacing="4">'; - s += ' <tr valign="top">'; - s += ' <td><span class="cnnFinePrint">sponsored by:</span></td>'; - s += ' <td align="right"><!--<a href="/money/news/specials/rebuild_iraq/"><img src="http://i.a.cnn.net/cnn/2003/images/04/17/money.box.gif" ALT="" width="150" height="31" HSPACE="0" VSPACE="0" border="0" align="left"></a>--><a href="http://ar.atwola.com/link/93103306/aol"><img src="http://ar.atwola.com/image/93103306/aol" alt="Click Here" width="88" height="31" border="0" hspace="0" vspace="0"></a></td>'; - s += ' </tr>'; - s += ' </table>'; - s += ' </td>'; - s += ' <td class="cnnMainMarketBox"> <table width="100%" border="0" cellpadding="4" cellspacing="0" summary="Market data from CNNmoney">'; - s += ' <tr class="noBottomBorder">'; - s += ' <td colspan="5"><span class="cnnMainMarketCell"><span class="cnnMenuText"><b><a href="/money/markets/">MARKETS:</a></b></span> <!-- 16:30:15 -->'; - s += ''; - s += '4:30pm ET, 6/12</span></td>'; - s += ' </tr>'; - s += ' <tr class="noTopBorder">'; - s += ' <td><span class="cnnMainMarketCell"><a href="/money/markets/dow.html" title="Dow Jones Industrial Average">DJIA</a></span></td>'; - s += ' <td><img src="http://i.cnn.net/cnn/.element/img/1.0/main/arrow_up.gif" alt="" width="9" height="9"></td>'; - s += ' <td align="right" nowrap><span class="cnnMainMarketCell">+13.30</span></td>'; - s += ' <td align="right" nowrap><span class="cnnMainMarketCell">9196.50</span></td>'; - s += ' <td align="right" nowrap><span class="cnnMainMarketCell">+ 0.14%</span></td>'; - s += ''; - s += ' </tr>'; - s += ' <tr>'; - s += ' <td><span class="cnnMainMarketCell"><a href="/money/markets/nasdaq.html" title="NASDAQ">NAS</a></span></td>'; - s += ' <td><img src="http://i.cnn.net/cnn/.element/img/1.0/main/arrow_up.gif" alt="" width="9" height="9"></td>'; - s += ' <td align="right" nowrap><span class="cnnMainMarketCell">+ 7.60</span></td>'; - s += ' <td align="right" nowrap><span class="cnnMainMarketCell">1653.62</span></td>'; - s += ' <td align="right" nowrap><span class="cnnMainMarketCell">+ 0.46%</span></td>'; - s += ''; - s += ' </tr>'; - s += ' <tr class="noBottomBorder">'; - s += ' <td><span class="cnnMainMarketCell"><a href="/money/markets/sandp.html" title="S&P 500">S&P</a></span></td>'; - s += ' <td><img src="http://i.cnn.net/cnn/.element/img/1.0/main/arrow_up.gif" alt="" width="9" height="9"></td>'; - s += ' <td align="right" nowrap><span class="cnnMainMarketCell">+ 1.03</span></td>'; - s += ' <td align="right" nowrap><span class="cnnMainMarketCell">998.51</span></td>'; - s += ' <td align="right" nowrap><span class="cnnMainMarketCell">+ 0.10%</span></td>'; - s += ''; - s += ' </tr>'; - s += ' </table>'; - s += '</td>'; - s += ' </tr>'; - s += '</table>'; - s += ''; - s += '</td>'; - s += ' </tr>'; - s += ' <tr>'; - s += ' <td colspan="3"><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="4"></td>'; - s += ' </tr>'; - s += ' <tr align="center" valign="bottom">'; - s += ' <td width="280" bgcolor="#EEEEEE"><a href="/linkto/ftn.nytimes1.html"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/ftn.280x32.ny.times.gif" width="255" height="32" alt="" border="0"></a></td>'; - s += '<td width="10"><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="10" height="1"></td>'; - s += ' <td width="344" bgcolor="#EEEEEE"><a href="/linkto/ftn.bn3.html"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/ftn.345x32.breaking.news.gif" width="340" height="32" alt="" border="0"></a></td>'; - s += ' </tr>'; - s += ''; - s += '</table>'; - s += ''; - s += ''; - s += '<div><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="10"></div>'; - s += ''; - s += ''; - s += '<table width="770" border="0" cellpadding="0" cellspacing="0">'; - s += ' <col width="10">'; - s += ' <col width="483" align="left" valign="top">'; - s += ' <col width="10">'; - s += ' <col width="267" align="left" valign="top">'; - s += ' <tr valign="top">'; - s += ' <td rowspan="2"><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="10" height="1"></td>'; - s += ' <td valign="top">'; - s += ' <table border="0" cellpadding="0" cellspacing="0">'; - s += ' <tr valign="top">'; - s += ' <td width="238">'; - s += ' <div><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/px_c00.gif" alt="" width="238" height="2"></div>'; - s += ''; - s += ''; - s += ''; - s += ''; - s += ''; - s += ''; - s += ' <table width="238" border="0" cellpadding="0" cellspacing="0">'; - s += ' <tr>'; - s += ' <td width="132" class="cnnTabbedBoxHeader" style="padding-left:0px;"><span class="cnnBigPrint"><b>MORE REAL TV</b></span></td>'; - s += ' <td width="106" class="cnnTabbedBoxTab" align="right" bgcolor="#336699" style="padding: 0px 3px;"><a href="/SHOWBIZ"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/entertainment.news.gif" alt="More Entertainment" border="0" width="102" height="11" hspace="2" vspace="2" align="right"></a></td>'; - s += ' </tr>'; - s += ' </table>'; - s += ' <div><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="238" height="5" vspace="0" hspace="0"></div>'; - s += ' <table width="238" border="0" cellpadding="0" cellspacing="0">'; - s += ' <tr valign="top">'; - s += ' <td><div class="cnn6pxTpad">'; - s += ' '; - s += ' <a href="/2003/SHOWBIZ/06/11/eye.ent.voyeurs/index.html">Go ahead, follow me</a><br>'; - s += 'New reality series and the movie debut of "Idol" finalists'; - s += ' </div></td>'; - s += ' <td width="71" align="right"><a href="/2003/SHOWBIZ/06/11/eye.ent.voyeurs/index.html"><img src="http://i.a.cnn.net/cnn/2003/SHOWBIZ/06/11/eye.ent.voyeurs/tz.movies.gif" alt="Go ahead, follow me" width="65" height="49" border="0" vspace="6"></a></td>'; - s += ' </tr>'; - s += ' </table>'; - s += ''; - s += ''; - s += ''; - s += ''; - s += ''; - s += ''; - s += ' '; - s += ' <div><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="238" height="5" vspace="0" hspace="0"></div>'; - s += '<!--include virtual="/.element/ssi/video/section_teases/topvideos_include.txt"-->'; - s += ' </td>'; - s += ' <td><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="7" height="1"></td>'; - s += ' <td width="238">'; - s += ' <div><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/px_c00.gif" alt="" width="238" height="2"></div>'; - s += ''; - s += ''; - s += ''; - s += ''; - s += ''; - s += ''; - s += ' <table width="238" border="0" cellpadding="0" cellspacing="0">'; - s += ' <tr>'; - s += ' <td width="157" class="cnnTabbedBoxHeader" style="padding-left:0px;"><span class="cnnBigPrint"><b>GIFT IDEAS</b></span></td>'; - s += ' <td width="81" class="cnnTabbedBoxTab" align="right" bgcolor="#336699" style="padding: 0px 3px;"><a href="/money"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/superlinks/business.gif" alt="Business News" border="0" width="77" height="11" hspace="2" vspace="2" align="right"></a></td>'; - s += ' </tr>'; - s += ' </table>'; - s += ' <div><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="238" height="5" vspace="0" hspace="0"></div>'; - s += ' <table width="238" border="0" cellpadding="0" cellspacing="0">'; - s += ' <tr valign="top">'; - s += ' <td><div class="cnn6pxTpad">'; - s += ''; - s += ''; - s += '<span class="cnnBodyText" style="font-weight:bold;">CNN/Money: </span> <a href="/money/2003/06/12/news/companies/fathers_day/index.htm?cnn=yes">Fathers Day</a><br>'; - s += 'Smaller is better --from digital cameras to iPod'; - s += ' </div></td>'; - s += ' <td width="71" align="right"><a href="/money/2003/06/12/news/companies/fathers_day/index.htm?cnn=yes"><img src="http://i.a.cnn.net/cnn/images/programming.boxes/tz.money.dads.day.watch.jpg" alt="Fathers Day" width="65" height="49" border="0" vspace="6"></a></td>'; - s += ' </tr>'; - s += ' </table>'; - s += ' </td>'; - s += ' </tr>'; - s += ' </table>'; - s += ' <div><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="238" height="10" vspace="0" hspace="0"></div> '; - s += '<table width="483" border="0" cellspacing="0" cellpadding="0">'; - s += ' <tr valign="top">'; - s += ' <td rowspan="9"><br></td>'; - s += ' <td width="238"><a href="/US/"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/us.gif" alt="U.S. News: " width="238" height="15" border="0"></a><br><div class="cnnMainSections">'; - s += ''; - s += ' '; - s += '• <a href="/2003/US/South/06/11/miami.rapist/index.html">Miami police link 4 rapes to serial rapist</a><br>'; - s += ''; - s += ' '; - s += '• <a href="/2003/LAW/06/12/mistaken.identity.ap/index.html">Woman mistaken for fugitive jailed</a><br>'; - s += ''; - s += ' '; - s += '• <a href="/2003/US/Northeast/06/12/woman.impaled.ap/index.html">Pregnant woman impaled on mic stand</a><br>'; - s += ' </div></td>'; - s += ' <td rowspan="7" width="7"><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="7" height="1"></td>'; - s += ' <td width="238"><a href="/WORLD/"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/world.gif" alt="World News: " width="238" height="15" border="0"></a><br><div class="cnnMainSections">'; - s += ''; - s += ' '; - s += '• <a href="/2003/WORLD/europe/06/12/nato.bases/index.html">NATO reshapes for new era</a><br>'; - s += ''; - s += ' '; - s += '• <a href="/2003/WORLD/africa/06/12/congo.democratic/index.html">U.N. reviews Bunia peace force</a><br>'; - s += ''; - s += ''; - s += ''; - s += '• <span class="cnnBodyText" style="font-weight:bold;color:#900;">TIME.com: </span><a href="/time/magazine/article/0,9171,1101030616-457361,00.html?CNN=yes" target="new">Saddams curtain trail</a><img src="http://i.cnn.net/cnn/.element/img/1.0/misc/icon.external.links.gif" alt="external link" width="20" height="13" vspace="1" hspace="4" border="0" align="top"><br>'; - s += ' </div></td>'; - s += ' </tr><tr valign="top">'; - s += ' <td width="238"><a href="/TECH/"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/technology.gif" alt="Sci-Tech News: " width="238" height="15" border="0"></a><br><div class="cnnMainSections">'; - s += ''; - s += ' '; - s += '• <a href="/2003/TECH/ptech/06/11/bus2.ptech.dvd.maker/index.html">Another reason to throw out your VCR</a><br>'; - s += ''; - s += ' '; - s += '• <a href="/2003/TECH/ptech/06/12/korea.samsung.reut/index.html">Flat screen TV prices dropping</a><br>'; - s += ' </div></td>'; - s += ' <td width="238"><a href="/SHOWBIZ/"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/entertainment.gif" alt="Entertainment News: " width="238" height="15" border="0"></a><br><div class="cnnMainSections">'; - s += ''; - s += ' '; - s += '• <a href="/2003/SHOWBIZ/TV/06/12/cnn.obrien/index.html">CNN hires Soledad OBrien for "AM"</a><br>'; - s += ''; - s += ' '; - s += '• <a href="/2003/SHOWBIZ/TV/06/11/batchelor.troubles.ap/index.html">Dating show star let go by law firm</a><br>'; - s += ' </div></td>'; - s += ' </tr><tr valign="top">'; - s += ' <td width="238"><a href="/ALLPOLITICS/"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/politics.gif" alt="Politics News: " width="238" height="15" border="0"></a><br><div class="cnnMainSections">'; - s += ''; - s += ' '; - s += '• <a href="/2003/ALLPOLITICS/06/11/schwarzenegger.ap/index.html">Schwarzenegger on California politics</a><br>'; - s += ''; - s += ' '; - s += '• <a href="/2003/ALLPOLITICS/06/12/tax.credit.ap/index.html">House approves extension on child tax credit</a><br>'; - s += ' </div></td>'; - s += ' <td width="238"><a href="/LAW/"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/law.gif" alt="Law News: " width="238" height="15" border="0"></a><br><div class="cnnMainSections">'; - s += ''; - s += ' '; - s += '• <a href="/2003/LAW/06/12/plaintiff.advances.ap/index.html">Court bars cash advances to plaintiffs</a><br>'; - s += ''; - s += ' '; - s += '• <a href="/2003/LAW/06/11/jackson.lawsuit.ap/index.html">Lawsuit against Jackson settled</a><br>'; - s += ' </div></td>'; - s += ' </tr><tr valign="top">'; - s += ' <td width="238"><a href="/HEALTH/"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/health.gif" alt="Health News: " width="238" height="15" border="0"></a><br><div class="cnnMainSections">'; - s += ''; - s += ' '; - s += '• <a href="/2003/HEALTH/06/12/monkeypox.ap/index.html">Monkeypox spreading person-to-person?</a><br>'; - s += ''; - s += ' '; - s += '• <a href="/2003/HEALTH/06/12/quick.xray.ap/index.html">A full body X-ray in 13 seconds</a><br>'; - s += ' </div></td>'; - s += ' <td width="238"><a href="/TECH/space/"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/space.gif" alt="Space News: " width="238" height="15" border="0"></a><br><div class="cnnMainSections">'; - s += ''; - s += ' '; - s += '• <a href="/2003/TECH/science/06/12/hydrogen.ozone.ap/index.html">Hydrogen fuel may disturb ozone layer</a><br>'; - s += ''; - s += ' '; - s += '• <a href="/2003/TECH/space/06/12/sprj.colu.bolts.ap/index.html">New threat found for shuttle launches</a><br>'; - s += ' </div></td>'; - s += ' </tr><tr valign="top">'; - s += ' <td width="238"><a href="/TRAVEL/"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/travel.gif" alt="Travel News: " width="238" height="15" border="0"></a><br><div class="cnnMainSections">'; - s += ''; - s += ' '; - s += '• <a href="/2003/TRAVEL/DESTINATIONS/06/12/walk.across.america.ap/index.html">Walking America from coast to coast</a><br>'; - s += ''; - s += ' '; - s += '• <a href="/2003/TRAVEL/06/11/bi.airlines.executives.reut/index.html">Airline execs not seeing sunny skies yet</a><br>'; - s += ' </div></td>'; - s += ' <td width="238"><a href="/EDUCATION/"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/education.gif" alt="Education News: " width="238" height="15" border="0"></a><br><div class="cnnMainSections">'; - s += ''; - s += ' '; - s += '• <a href="/2003/EDUCATION/06/12/arabs.prom.ap/index.html">Arab students seek prom balance</a><br>'; - s += ''; - s += ' '; - s += '• <a href="/2003/EDUCATION/06/11/school.fundraising.ap/index.html">Public schools turn to upscale fundraising</a><br>'; - s += ' </div></td>'; - s += ' </tr><tr valign="top">'; - s += ' <td width="238"><a href="/si/index.html?cnn=yes"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/sports.gif" alt="Sports News: " width="238" height="15" border="0"></a><br><div class="cnnMainSections">'; - s += ''; - s += '• <a href="/cnnsi/golfonline/2003/us_open/news/2003/06/12/open_thursday_ap">Woods eyes third U.S. Open title</a><br>'; - s += '• <a href="/cnnsi/basketball/news/2003/06/12/jordan_ruling_ap">Judge denies Jordan's former lover $5M payoff</a><br>'; - s += ' </div></td>'; - s += ' <td width="238"><a href="/money/"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/business.gif" alt="Business News: " width="238" height="15" border="0"></a><br><div class="cnnMainSections">'; - s += '• <a href="/money/2003/06/12/pf/saving/duppies/index.htm">Here come the "Duppies"</a><br>'; - s += '• <a href="/money/2003/06/12/technology/oracle/index.htm">Oracle beats estimates</a><br>'; - s += ' </div></td>'; - s += ' </tr>'; - s += '</table>'; - s += ' </td>'; - s += ' <td><img src="http://i.cnn.net/cnn/images/1.gif" width="10" hspace="0" vspace="0" alt=""></td>'; - s += ' <td valign="top">'; - s += ' <div><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/px_c00.gif" alt="" width="267" height="2"></div>'; - s += ' '; - s += '<table width="267" border="0" cellpadding="0" cellspacing="0">'; - s += ' <tr>'; - s += ' <td width="173" bgcolor="#003366"><div class="cnnBlueBoxHeader"><span class="cnnBigPrint"><b>WATCH CNN TV</b></span></div></td>'; - s += ' <td width="25" class="cnnBlueBoxHeader" align="right"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/misc/diagonal.gif" width="25" height="19" alt=""></td>'; - s += ' <td width="69" class="cnnBlueBoxTab" align="right" bgcolor="#336699"><a href="/CNN/Programs/"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/tv.schedule.gif" alt="On CNN TV" border="0" width="65" height="11" hspace="2" vspace="2" align="right"></a></td>'; - s += ' </tr>'; - s += '</table>'; - s += '<table width="267" bgcolor="#EEEEEE" border="0" cellpadding="4" cellspacing="0">'; - s += ' <tr valign="top">'; - s += ' <td><a href="/CNN/Programs/american.morning/"><img src="http://i.cnn.net/cnn/CNN/Programs/includes/showbox/images/2003/05/tz.hemmer.jpg" alt="American Morning, 7 a.m. ET" width="65" height="49" border="0" align="right"></a><a href="/CNN/Programs/american.morning/"><b>American Morning (7 a.m. ET):</b></a> Tomorrow, singer Carnie Wilson talks about her new book, "Im Still Hungry."'; - s += ' </td>'; - s += ' </tr>'; - s += '</table>'; - s += ''; - s += '<!--'; - s += '[[table width="267" border="0" cellpadding="0" cellspacing="0"]]'; - s += '[[tr]][[td width="173" bgcolor="#003366"]][[div class="cnnBlueBoxHeader"]][[span class="cnnBigPrint"]][[b]]WATCH CNN TV[[/b]][[/span]][[/div]][[/td]][[td width="25" class="cnnBlueBoxHeader" align="right"]][[img src="http://i.a.cnn.net/cnn/.element/img/1.0/misc/diagonal.gif" width="25" height="19" alt=""]][[/td]][[td width="69" class="cnnBlueBoxTab" align="right" bgcolor="#336699"]][[a href="/CNN/Programs/"]][[img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/tv.schedule.gif" alt="On CNN TV" border="0" width="65" height="11" hspace="2" vspace="2" align="right"]][[/a]][[/td]][[/tr]][[/table]][[table width="267" bgcolor="#EEEEEE" border="0" cellpadding="4" cellspacing="0"]][[tr valign="top"]][[td]]'; - s += '[[img src="http://i.cnn.net/cnn/2003/images/05/31/tz.bw.jpg" alt="" width="65" height="49" border="0" align="right"]]'; - s += ' '; - s += '[[b]] CNN Presents: The Hunt for Eric Robert Rudolph (8 p.m. ET)[[/b]][[br]]Latest on his capture.'; - s += ' [[/td]]'; - s += ' [[/tr]]'; - s += ' [[/table]]'; - s += '-->'; - s += ''; - s += ' <div><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="10"></div> '; - s += ''; - s += ''; - s += ''; - s += ''; - s += ''; - s += ''; - s += ' <div><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/px_c00.gif" alt="" width="267" height="2"></div>'; - s += ' <table width="267" border="0" cellpadding="0" cellspacing="0">'; - s += ' <tr>'; - s += ' <td width="184" bgcolor="#003366"><div class="cnnBlueBoxHeader"><span class="cnnBigPrint"><b>ANALYSIS</b></span></div></td>'; - s += ' <td width="25" class="cnnBlueBoxHeader" align="right"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/misc/diagonal.gif" width="25" height="19" alt=""></td>'; - s += ' <td width="58" class="cnnBlueBoxTab" align="right" bgcolor="#336699"><a href="/US"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/superlinks/us.gif" alt="U.S. News" border="0" width="54" height="11" hspace="2" vspace="2" align="right"></a></td>'; - s += ' </tr>'; - s += ' </table>'; - s += ' <table width="267" bgcolor="#EEEEEE" border="0" cellpadding="4" cellspacing="0">'; - s += ' <tr valign="top">'; - s += ' <td>'; - s += '<a href="/2003/US/06/12/nyt.safire/index.html"><img src="http://i.a.cnn.net/cnn/2003/US/06/12/nyt.safire/tz.stewart.jpg" alt="Fight It, Martha" width="65" height="49" border="0" align="right"></a>'; - s += ''; - s += ''; - s += '<span class="cnnBodyText" style="font-weight:bold;color:#000;">NYTimes: </span> <a href="/2003/US/06/12/nyt.safire/index.html">Fight It, Martha</a><br>'; - s += 'William Safire: I hope Martha Stewart beats this bum rap'; - s += ''; - s += ''; - s += ''; - s += ''; - s += ' </td>'; - s += ' </tr>'; - s += ' </table>'; - s += ' <div><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="10"></div>'; - s += ' <div><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/px_c00.gif" alt="" width="267" height="2"></div>'; - s += ' <table width="267" border="0" cellpadding="0" cellspacing="0">'; - s += ' <tr>'; - s += ' <td width="164" bgcolor="#003366"><div class="cnnBlueBoxHeader"><span class="cnnBigPrint"><b>OFFBEAT</b></span></div></td>'; - s += ' <td width="25" class="cnnBlueBoxHeader" align="right"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/misc/diagonal.gif" width="25" height="19" alt=""></td>'; - s += ' <td width="78" class="cnnBlueBoxTab" align="right" bgcolor="#336699"><a href="/offbeat"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/superlinks/offbeat.gif" alt="more offbeat" width="74" height="11" border="0" hspace="2" vspace="2" align="right"></a></td>'; - s += ' </tr>'; - s += ' </table>'; - s += ' <table width="267" bgcolor="#DDDDDD" border="0" cellpadding="4" cellspacing="0">'; - s += ' <tr valign="top">'; - s += ' <td>'; - s += '<a href="/2003/HEALTH/06/12/offbeat.china.sperm.ap/index.html"><img src="http://i.a.cnn.net/cnn/2003/HEALTH/06/12/offbeat.china.sperm.ap/tz.china.sperm.jpg" alt="Waiting list" width="65" height="49" border="0" align="right"></a>'; - s += ' '; - s += ' <a href="/2003/HEALTH/06/12/offbeat.china.sperm.ap/index.html">Waiting list</a><br>'; - s += 'Chinas "smart sperm" bank needs donors'; - s += ' </td>'; - s += ' </tr>'; - s += ' </table>'; - s += ' <div><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="10"></div>'; - s += ''; - s += ' <table width="267" bgcolor="#999999" border="0" cellpadding="0" cellspacing="0">'; - s += ' <tr>'; - s += ' <td>'; - s += ' <table width="100%" border="0" cellpadding="4" cellspacing="1">'; - s += ' <tr>'; - s += ' <td bgcolor="#EEEEEE" class="cnnMainWeatherBox"><a name="weatherBox"></a>'; - s += ''; - s += ''; - s += ''; - s += ''; - s += ''; - s += ''; - s += '<table width="257" border="0" cellpadding="1" cellspacing="0">'; - s += '<form method="get" action="http://weather.cnn.com/weather/search" style="margin: 0px">'; - s += '<input type="hidden" name="mode" value="hplwp">'; - s += ' <tr>'; - s += ' <td bgcolor="#FFFFFF"><table width="255" bgcolor="#EAEFF4" border="0" cellpadding="4" cellspacing="0">'; - s += ' <tr>'; - s += ' <td colspan="2" class="cnnWEATHERrow"> <span class="cnnBigPrint">WEATHER</span></td>'; - s += ' </tr>'; - s += ' <tr>'; - s += ' <td colspan="2" class="cnnBodyText">Get your hometown weather on the home page! <b>Enter city name or U.S. Zip Code:</b></td>'; - s += ' </tr>'; - s += ' <tr>'; - s += ' <td><input class="cnnFormText" type="text" size="12" name="wsearch" value="" style="width:100px;"></td>'; - s += ' <td><input class="cnnNavButton" type="submit" value="PERSONALIZE"></td>'; - s += ' </tr>'; - s += ' <tr>'; - s += ' <td class="cnnBodyText" colspan="2">Or <a href="javascript:CNN_openPopup("http://weather.cnn.com/weather/select.popup/content2.jsp?mode=hplwp", "weather", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=260,height=250")"><b>select location from a list</b></a></td>'; - s += ' </tr>'; - s += ' </table></td>'; - s += ' </tr>'; - s += '</form>'; - s += '</table>'; - s += ''; - s += ''; - s += ''; - s += ' </td>'; - s += ' </tr>'; - s += ' <tr>'; - s += ' <td bgcolor="#EEEEEE">'; - s += ' <table width="100%" border="0" cellpadding="0" cellspacing="2">'; - s += ' <tr>'; - s += ' <td><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/quickvote.gif" alt="Quick Vote" width="107" height="24" border="0"></td>'; - s += ' <td width="88" align="right"><!-- ad home/quickvote/sponsor.88x31 -->'; - s += '<!-- ad commented while aol investigates 3/31/03 5:40 a.m. lk -->'; - s += '<a href="http://ar.atwola.com/link/93101912/aol"><img src="http://ar.atwola.com/image/93101912/aol" alt="Click Here" width="88" height="31" border="0" hspace="0" vspace="0"></a>'; - s += '</td>'; - s += ' </tr>'; - s += ' </table>'; - s += '<table width="100%" cellspacing="0" cellpadding="1" border="0"><form target="popuppoll" method="post" action="http://polls.cnn.com/poll">'; - s += '<INPUT TYPE=HIDDEN NAME="poll_id" VALUE="3966">'; - s += '<tr><td colspan="2" align="left"><span class="cnnBodyText">Should an international peacekeeping force be sent to the Mideast?<br></span></td></tr>'; - s += '<tr valign="top">'; - s += '<td><span class="cnnBodyText">Yes</span>'; - s += '</td><td align="right"><input value="1" type="radio" name="question_1"></td></tr>'; - s += '<tr valign="top">'; - s += '<td><span class="cnnBodyText">No</span>'; - s += '</td><td align="right"><input value="2" type="radio" name="question_1"></td></tr>'; - s += '<!-- /end Question 1 -->'; - s += '<tr>'; - s += '<td colspan="2">'; - s += '<table width="100%" cellspacing="0" cellpadding="0" border="0"><tr><td><span class="cnnInterfaceLink"><nobr><a href="javascript:CNN_openPopup("/POLLSERVER/results/3966.html","popuppoll","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=510,height=400")">VIEW RESULTS</a></nobr></span></td>'; - s += '<td align="right"><input class="cnnFormButton" onclick="CNN_openPopup("","popuppoll","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=510,height=400")" value="VOTE" type="SUBMIT"></td></tr></table></td></tr>'; - s += '</form></table>'; - s += ''; - s += ' </td>'; - s += ' </tr>'; - s += '</table>'; - s += ''; - s += ' </td>'; - s += ' </tr>'; - s += ' </table>'; - s += ' <!-- /right --></td>'; - s += ' </tr>'; - s += ' <tr>'; - s += ' <td colspan="3" valign="bottom"> <img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/px_ccc.gif" alt="" width="483" height="1"> </td>'; - s += ' </tr>'; - s += '</table>'; - s += '<table width="770" border="0" cellpadding="0" cellspacing="0" summary="Links to stories from CNN partners">'; - s += ' <col width="10">'; - s += ' <col width="250" align="left" valign="top">'; - s += ' <col width="5">'; - s += ' <col width="250" align="left" valign="top">'; - s += ' <col width="5">'; - s += ' <col width="250" align="left" valign="top">'; - s += ' <tr><td colspan="6"><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="2"></td></tr>'; - s += ' <tr valign="top">'; - s += ' <td rowspan="6" width="10"><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="10" height="1"></td>'; - s += ' <td colspan="3"><span class="cnnMenuText" style="font-size: 12px"><b style="color: #c00">From our Partners</b></span>'; - s += ' <img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/icon_external.gif" alt=" External site icon " width="20" height="13" border="0" align="middle"></td>'; - s += ' <td colspan="2"></td>'; - s += ' </tr>'; - s += ' <tr><td colspan="5"><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="2"></td></tr>'; - s += ' <tr><td colspan="5" bgcolor="#CCCCCC"><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="1"></td></tr>'; - s += ' <tr><td colspan="5"><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="2"></td></tr>'; - s += ' <tr valign="top">'; - s += ' <td class="cnnMainSections" width="250">'; - s += '<a href="/time/" target="new"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/partner_time.gif" alt="Time: " width="70" height="17" border="0"></a><br><div style="margin-top: 4px"> • <a target="new" href="/time/magazine/article/0,9171,1101030616-457387,00.html?CNN=yes">Where the Jobs Are</a><br> • <a target="new" href="/time/magazine/article/0,9171,1101030616-457373,00.html?CNN=yes">Of Dogs and Men</a><br> • <a target="new" href="/time/photoessays/gunmen/?CNN=yes">Photo Essay: Fighting the Peace</a><br></div><table border="0"><tr><td><img height="1" width="1" alt="" src="http://i.cnn.net/cnn/images/1.gif"/></td></tr><tr bgcolor="#dddddd"><td> <a target="new" href="/linkto/time.main.html">Subscribe to TIME</a> </td></tr></table> </td>'; - s += ' <td width="5"><br></td>'; - s += ' <td class="cnnMainSections" width="250">'; - s += '<a href="/cnnsi/index.html?cnn=yes"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/partner_si.gif" alt="CNNsi.com: " width="138" height="17" border="0"></a><br><div style="margin-top: 4px">'; - s += '• Marty Burns: <a target="new" href="/cnnsi/inside_game/marty_burns/news/2003/06/11/burns_game4/">Nets pull out all stops</a><br>'; - s += '• Michael Farber: <a target="new" href="/cnnsi/inside_game/michael_farber/news/2003/06/11/farber_wrapup/">Sens look good for "04</a><br>'; - s += '• Tim Layden: <a target="new" href="/cnnsi/inside_game/tim_layden/news/2003/06/11/layden_neuheisel/">NFL or bust for Neuheisel</a><br>'; - s += '</div>'; - s += '<table border="0"><tr><td><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="1"></td></tr><tr bgcolor="#dddddd"><td> <a href="http://subs.timeinc.net/CampaignHandler/si_cnnsi?source_id=19">Subscribe to Sports Illustrated</a> </td></tr></table>'; - s += ' </td>'; - s += ' <td width="5"><br></td>'; - s += ' <td class="cnnMainSections" width="250">'; - s += '<a href="/linkto/nyt/main.banner.html" target="new"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/partners_nyt.gif" alt="New York Times: " width="105" height="17" border="0"></a><br><div style="margin-top: 4px"> • <a target="new" href="/linkto/nyt/story/1.0612.html">U.S. Widens Checks at Foreign Ports</a><br> • <a target="new" href="/linkto/nyt/story/2.0612.html">Rumsfeld: Iran Developing Nuclear Arms</a><br> • <a target="new" href="/linkto/nyt/story/3.0612.html">Vandalism, "Improvements" Mar Great Wall</a><br></div><table border="0"><tr><td><img height="1" width="1" alt="" src="http://i.cnn.net/cnn/images/1.gif"/></td></tr><tr bgcolor="#dddddd"><td> <a target="new" href="/linkto/nyt.main.html">Get 50% OFF the NY Times</a> </td></tr></table> </td>'; - s += ' </tr>'; - s += ''; - s += '</table>'; - s += '<div><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="2"></div>'; - s += ''; - s += '<table width="770" border="0" cellpadding="0" cellspacing="0">'; - s += ' <tr>'; - s += ' <td width="10"><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="10" height="10"></td>'; - s += ' <td width="760">'; - s += '<!-- floor -->'; - s += ''; - s += '<table width="100%" border="0" cellpadding="0" cellspacing="0"><tr><td bgcolor="#999999"><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="1"></td></tr></table>'; - s += ''; - s += '<div><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="1"></div>'; - s += ''; - s += '<table width="100%" bgcolor="#DEDEDE" border="0" cellpadding="3" cellspacing="0">'; - s += ' <tr> '; - s += ' <td><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="5" height="5"></td>'; - s += ' <td><a href="http://edition.cnn.com/" class="cnnFormTextB" onClick="clickEdLink()" style="color:#000;">International Edition</a></td>'; - s += '<form>'; - s += ' <td><select title="CNN.com is available in different languages" class="cnnMenuText" name="languages" size="1" style="font-weight: bold; vertical-align: middle" onChange="if (this.options[selectedIndex].value != "") location.href=this.options[selectedIndex].value">'; - s += ' <option value="" disabled selected>Languages</option>'; - s += ' <option value="" disabled>---------</option>'; - s += ' <option value="/cnnes/">Spanish</option>'; - s += ' <option value="http://cnn.de/">German</option>'; - s += ' <option value="http://cnnitalia.it/">Italian</option>'; - s += ' <option value="http://www.joins.com/cnn/">Korean</option>'; - s += ' <option value="http://arabic.cnn.com/">Arabic</option>'; - s += ' <option value="http://www.CNN.co.jp/">Japanese</option>'; - s += ' </select></td>'; - s += '</form>'; - s += ' <td><a href="/CNN/Programs/" class="cnnFormTextB" style="color:#000;">CNN TV</a></td>'; - s += ' <td><a href="/CNNI/" class="cnnFormTextB" style="color:#000;">CNN International</a></td>'; - s += ' <td><a href="/HLN/" class="cnnFormTextB" style="color:#000;">Headline News</a></td>'; - s += ' <td><a href="/TRANSCRIPTS/" class="cnnFormTextB" style="color:#000;">Transcripts</a></td>'; - s += ' <td><a href="/services/preferences/" title="Customize your CNN.com experience" class="cnnFormTextB" style="color:#000;">Preferences</a></td>'; - s += ' <td><a href="/INDEX/about.us/" class="cnnFormTextB" style="color:#000;">About CNN.com</a></td>'; - s += ' </tr>'; - s += '</table>'; - s += ''; - s += '<div><img src="http://i.cnn.net/cnn/images/1.gif" alt="" width="1" height="1"></div>'; - s += ''; - s += '<table width="100%" bgcolor="#EFEFEF" border="0" cellpadding="4" cellspacing="0">'; - s += ' <tr valign="top"> '; - s += ' <td style="padding-left:10px"><div class="cnnSectCopyright">'; - s += '<b>© 2003 Cable News Network LP, LLLP.</b><br>'; - s += 'An AOL Time Warner Company. All Rights Reserved.<br>'; - s += '<a href="/interactive_legal.html">Terms</a> under which this service is provided to you.<br>'; - s += 'Read our <a href="/privacy.html">privacy guidelines</a>. <a href="/feedback/">Contact us</a>.'; - s += ' </div></td>'; - s += ' <td align="right"><table border="0" cellpadding="4" cellspacing="0">'; - s += ' <tr> '; - s += ' <td rowspan="2" align="middle"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/sect/SEARCH/dotted.line.gif" alt="" width="7" height="46"></td>'; - s += ' <td><img src="http://i.a.cnn.net/cnn/.element/img/1.0/misc/icon.external.links.gif" alt="external link" width="20" height="13"></td>'; - s += ' <td><div class="cnnSectExtSites">All external sites will open in a new browser.<br>'; - s += ' CNN.com does not endorse external sites.</div></td>'; - s += ' <td rowspan="2" align="middle"><img src="http://i.a.cnn.net/cnn/.element/img/1.0/sect/SEARCH/dotted.line.gif" alt="" width="7" height="46"></td>'; - s += ' <td rowspan="2"><!-- home/powered_by/sponsor.88x31 -->'; - s += '<script language="JavaScript1.1">'; - s += '<!--'; - s += 'adSetTarget("_top");'; - s += 'htmlAdWH( (new Array(93103308,93103308,93103308,93103308))[document.adoffset||0] , 88, 31);'; - s += '//-->'; - s += '</script><noscript><a href="http://ar.atwola.com/link/93103308/aol" target="_top"><img src="http://ar.atwola.com/image/93103308/aol" alt="Click here for our advertiser" width="88" height="31" border="0"></a></noscript>'; - s += '</td>'; - s += ' </tr>'; - s += ' <tr valign="top"> '; - s += ' <td><img src="http://i.a.cnn.net/cnn/.element/img/1.0/main/icon_premium.gif" alt=" Premium content icon " width="9" height="11"></td>'; - s += ' <td><span class="cnnSectExtSites">Denotes premium content.</span></td>'; - s += ' </tr>'; - s += ' </table></td>'; - s += ' </tr>'; - s += '</table>'; - s += ''; - s += '<!-- /floor --></td>'; - s += ' </tr>'; - s += '</table>'; - s += ''; - s += ''; - s += ''; - s += '<!-- popunder ad generic/popunder_launch.720x300 -->'; - s += '<script language="JavaScript1.1" type="text/javascript">'; - s += '<!--'; - s += 'if (document.adPopupFile) {'; - s += ' if (document.adPopupInterval == null) {'; - s += ' document.adPopupInterval = "0";'; - s += ' }'; - s += ' if (document.adPopunderInterval == null) {'; - s += ' document.adPopunderInterval = document.adPopupInterval;'; - s += ' }'; - s += ' if (document.adPopupDomain != null) {'; - s += ' adSetPopDm(document.adPopupDomain);'; - s += ' }'; - s += ' adSetPopupWH("93162673", "720", "300", document.adPopupFile, document.adPopunderInterval, 20, 50, -1);'; - s += '}'; - s += '// -->'; - s += '</script>'; - s += ' '; - s += '<!-- home/bottom.eyeblaster -->'; - s += '<script language="JavaScript1.1" type="text/javascript">'; - s += '<!--'; - s += 'var MacPPC = (navigator.platform == "MacPPC") ? true : false;'; - s += 'if (!MacPPC) {'; - s += 'adSetType("J");'; - s += 'htmlAdWH( (new Array(93137910,93137910,93137910,93137910))[document.adoffset||0], 101, 1);'; - s += 'adSetType("");'; - s += '}'; - s += '// -->'; - s += '</script>'; - s += ''; - s += '<script language="JavaScript1.1" src="http://ar.atwola.com/file/adsEnd.js"></script>'; - s += ''; - s += '<img src="/cookie.crumb" alt="" width="1" height="1">'; - s += '<!--include virtual="/virtual/2002/main/survey.html"-->'; - s += '</body>'; - s += '</html>'; - - return s; - } diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-209919.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-209919.js deleted file mode 100644 index 62c3cd86f0..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-209919.js +++ /dev/null @@ -1,174 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * sagdjb@softwareag.com, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 19 June 2003 - * SUMMARY: Testing regexp submatches with quantifiers - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=209919 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-209919.js'; -var i = 0; -var BUGNUMBER = 209919; -var summary = 'Testing regexp submatches with quantifiers'; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -/* - * Waldemar: "ECMA-262 15.10.2.5, third algorithm, step 2.1 states that - * once the minimum repeat count (which is 0 for *, 1 for +, etc.) has - * been satisfied, an atom being repeated must not match the empty string." - * - * In this example, the minimum repeat count is 0, so the last thing the - * capturing parens is permitted to contain is the 'a'. It may NOT go on - * to capture the '' at the $ position of 'a', even though '' satifies - * the condition b* - * - */ -status = inSection(1); -string = 'a'; -pattern = /(a|b*)*/; -actualmatch = string.match(pattern); -expectedmatch = Array(string, 'a'); -addThis(); - - -/* - * In this example, the minimum repeat count is 5, so the capturing parens - * captures the 'a', then goes on to capture the '' at the $ position of 'a' - * 4 times before it has to stop. Therefore the last thing it contains is ''. - */ -status = inSection(2); -string = 'a'; -pattern = /(a|b*){5,}/; -actualmatch = string.match(pattern); -expectedmatch = Array(string, ''); -addThis(); - - -/* - * Reduction of the above examples to contain only the condition b* - * inside the capturing parens. This can be even harder to grasp! - * - * The global match is the '' at the ^ position of 'a', but the parens - * is NOT permitted to capture it since the minimum repeat count is 0! - */ -status = inSection(3); -string = 'a'; -pattern = /(b*)*/; -actualmatch = string.match(pattern); -expectedmatch = Array('', undefined); -addThis(); - - -/* - * Here we have used the + quantifier (repeat count 1) outside the parens. - * Therefore the parens must capture at least once before stopping, so it - * does capture the '' this time - - */ -status = inSection(4); -string = 'a'; -pattern = /(b*)+/; -actualmatch = string.match(pattern); -expectedmatch = Array('', ''); -addThis(); - - -/* - * More complex examples - - */ -pattern = /^\-?(\d{1,}|\.{0,})*(\,\d{1,})?$/; - -status = inSection(5); -string = '100.00'; -actualmatch = string.match(pattern); -expectedmatch = Array(string, '00', undefined); -addThis(); - -status = inSection(6); -string = '100,00'; -actualmatch = string.match(pattern); -expectedmatch = Array(string, '100', ',00'); -addThis(); - -status = inSection(7); -string = '1.000,00'; -actualmatch = string.match(pattern); -expectedmatch = Array(string, '000', ',00'); -addThis(); - - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-216591.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-216591.js deleted file mode 100644 index 455565ae36..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-216591.js +++ /dev/null @@ -1,117 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * okin7@yahoo.fr, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 19 August 2003 - * SUMMARY: Regexp conformance test - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=216591 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-216591.js'; -var i = 0; -var BUGNUMBER = 216591; -var summary = 'Regexp conformance test'; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -status = inSection(1); -string = 'a {result.data.DATA} b'; -pattern = /\{(([a-z0-9\-_]+?\.)+?)([a-z0-9\-_]+?)\}/i; -actualmatch = string.match(pattern); -expectedmatch = Array('{result.data.DATA}', 'result.data.', 'data.', 'DATA'); -addThis(); - -/* - * Add a global flag to the regexp. In Perl 5, this gives the same results as above. Compare: - * - * [ ] perl -e '"a {result.data.DATA} b" =~ /\{(([a-z0-9\-_]+?\.)+?)([a-z0-9\-_]+?)\}/i; print("$&, $1, $2, $3");' - * {result.data.DATA}, result.data., data., DATA - * - * [ ] perl -e '"a {result.data.DATA} b" =~ /\{(([a-z0-9\-_]+?\.)+?)([a-z0-9\-_]+?)\}/gi; print("$&, $1, $2, $3");' - * {result.data.DATA}, result.data., data., DATA - * - * - * But in JavaScript, there will no longer be any sub-captures: - */ -status = inSection(2); -string = 'a {result.data.DATA} b'; -pattern = /\{(([a-z0-9\-_]+?\.)+?)([a-z0-9\-_]+?)\}/gi; -actualmatch = string.match(pattern); -expectedmatch = Array('{result.data.DATA}'); -addThis(); - - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-220367-001.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-220367-001.js deleted file mode 100644 index 59abc0c4b0..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-220367-001.js +++ /dev/null @@ -1,104 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * igor@fastmail.fm, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 26 September 2003 - * SUMMARY: Regexp conformance test - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=220367 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-220367-001.js'; -var i = 0; -var BUGNUMBER = 220367; -var summary = 'Regexp conformance test'; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -status = inSection(1); -string = 'a'; -pattern = /(a)|(b)/; -actualmatch = string.match(pattern); -expectedmatch = Array(string, 'a', undefined); -addThis(); - -status = inSection(2); -string = 'b'; -pattern = /(a)|(b)/; -actualmatch = string.match(pattern); -expectedmatch = Array(string, undefined, 'b'); -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-223273.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-223273.js deleted file mode 100644 index 2858e85487..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-223273.js +++ /dev/null @@ -1,279 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 23 October 2003 - * SUMMARY: Unescaped, unbalanced parens in a regexp should cause SyntaxError. - * - * The same would also be true for unescaped, unbalanced brackets or braces - * if we followed the ECMA-262 Ed. 3 spec on this. But it was decided for - * backward compatibility reasons to follow Perl 5, which permits - * - * 1. an unescaped, unbalanced right bracket ] - * 2. an unescaped, unbalanced left brace { - * 3. an unescaped, unbalanced right brace } - * - * If any of these should occur, Perl treats each as a literal - * character. Therefore we permit all three of these cases, even - * though not ECMA-compliant. Note Perl errors on an unescaped, - * unbalanced left bracket; so will we. - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=223273 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-223273.js'; -var UBound = 0; -var BUGNUMBER = 223273; -var summary = 'Unescaped, unbalanced parens in regexp should be a SyntaxError'; -var TEST_PASSED = 'SyntaxError'; -var TEST_FAILED = 'Generated an error, but NOT a SyntaxError!'; -var TEST_FAILED_BADLY = 'Did not generate ANY error!!!'; -var CHECK_PASSED = 'Should not generate an error'; -var CHECK_FAILED = 'Generated an error!'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -/* - * All the following contain unescaped, unbalanced parens and - * should generate SyntaxErrors. That's what we're testing for. - * - * To allow the test to compile and run, we have to hide the errors - * inside eval strings, and check they are caught at run-time. - * - * Inside such strings, remember to escape any escape character! - */ -status = inSection(1); -testThis(' /(/ '); - -status = inSection(2); -testThis(' /)/ '); - -status = inSection(3); -testThis(' /(abc\\)def(g/ '); - -status = inSection(4); -testThis(' /\\(abc)def)g/ '); - - -/* - * These regexp patterns are correct and should not generate - * any errors. Note we use checkThis() instead of testThis(). - */ -status = inSection(5); -checkThis(' /\\(/ '); - -status = inSection(6); -checkThis(' /\\)/ '); - -status = inSection(7); -checkThis(' /(abc)def\\(g/ '); - -status = inSection(8); -checkThis(' /(abc\\)def)g/ '); - -status = inSection(9); -checkThis(' /(abc(\\))def)g/ '); - -status = inSection(10); -checkThis(' /(abc([x\\)yz]+)def)g/ '); - - - -/* - * Unescaped, unbalanced left brackets should be a SyntaxError - */ -status = inSection(11); -testThis(' /[/ '); - -status = inSection(12); -testThis(' /[abc\\]def[g/ '); - - -/* - * We permit unescaped, unbalanced right brackets, as does Perl. - * No error should result, even though this is not ECMA-compliant. - * Note we use checkThis() instead of testThis(). - */ -status = inSection(13); -checkThis(' /]/ '); - -status = inSection(14); -checkThis(' /\\[abc]def]g/ '); - - -/* - * These regexp patterns are correct and should not generate - * any errors. Note we use checkThis() instead of testThis(). - */ -status = inSection(15); -checkThis(' /\\[/ '); - -status = inSection(16); -checkThis(' /\\]/ '); - -status = inSection(17); -checkThis(' /[abc]def\\[g/ '); - -status = inSection(18); -checkThis(' /[abc\\]def]g/ '); - -status = inSection(19); -checkThis(' /(abc[\\]]def)g/ '); - -status = inSection(20); -checkThis(' /[abc(x\\]yz+)def]g/ '); - - - -/* - * Run some tests for unbalanced braces. We again follow Perl, and - * thus permit unescaped unbalanced braces - both left and right, - * even though this is not ECMA-compliant. - * - * Note we use checkThis() instead of testThis(). - */ -status = inSection(21); -checkThis(' /abc{def/ '); - -status = inSection(22); -checkThis(' /abc}def/ '); - -status = inSection(23); -checkThis(' /a{2}bc{def/ '); - -status = inSection(24); -checkThis(' /a}b{3}c}def/ '); - - -/* - * These regexp patterns are correct and should not generate - * any errors. Note we use checkThis() instead of testThis(). - */ -status = inSection(25); -checkThis(' /abc\\{def/ '); - -status = inSection(26); -checkThis(' /abc\\}def/ '); - -status = inSection(27); -checkThis(' /a{2}bc\\{def/ '); - -status = inSection(28); -checkThis(' /a\\}b{3}c\\}def/ '); - - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - - -/* - * Invalid syntax should generate a SyntaxError - */ -function testThis(sInvalidSyntax) -{ - expect = TEST_PASSED; - actual = TEST_FAILED_BADLY; - - try - { - eval(sInvalidSyntax); - } - catch(e) - { - if (e instanceof SyntaxError) - actual = TEST_PASSED; - else - actual = TEST_FAILED; - } - - statusitems[UBound] = status; - expectedvalues[UBound] = expect; - actualvalues[UBound] = actual; - UBound++; -} - - -/* - * Valid syntax shouldn't generate any errors - */ -function checkThis(sValidSyntax) -{ - expect = CHECK_PASSED; - actual = CHECK_PASSED; - - try - { - eval(sValidSyntax); - } - catch(e) - { - actual = CHECK_FAILED; - } - - statusitems[UBound] = status; - expectedvalues[UBound] = expect; - actualvalues[UBound] = actual; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-223535.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-223535.js deleted file mode 100644 index 82305502fd..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-223535.js +++ /dev/null @@ -1,133 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * zack-weg@gmx.de, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 24 October 2003 - * SUMMARY: Testing regexps with empty alternatives - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=223535 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-223535.js'; -var i = 0; -var BUGNUMBER = 223535; -var summary = 'Testing regexps with empty alternatives'; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -string = 'a'; -status = inSection(1); -pattern = /a|/; -actualmatch = string.match(pattern); -expectedmatch = Array('a'); -addThis(); - -status = inSection(2); -pattern = /|a/; -actualmatch = string.match(pattern); -expectedmatch = Array(''); -addThis(); - -status = inSection(3); -pattern = /|/; -actualmatch = string.match(pattern); -expectedmatch = Array(''); -addThis(); - -status = inSection(4); -pattern = /(a|)/; -actualmatch = string.match(pattern); -expectedmatch = Array('a', 'a'); -addThis(); - -status = inSection(5); -pattern = /(a||)/; -actualmatch = string.match(pattern); -expectedmatch = Array('a', 'a'); -addThis(); - -status = inSection(6); -pattern = /(|a)/; -actualmatch = string.match(pattern); -expectedmatch = Array('', ''); -addThis(); - -status = inSection(7); -pattern = /(|a|)/; -actualmatch = string.match(pattern); -expectedmatch = Array('', ''); -addThis(); - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-224676.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-224676.js deleted file mode 100644 index 88e89ee609..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-224676.js +++ /dev/null @@ -1,232 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * zack-weg@gmx.de, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 04 November 2003 - * SUMMARY: Testing regexps with various disjunction + character class patterns - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=224676 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-224676.js'; -var i = 0; -var BUGNUMBER = 224676; -var summary = 'Regexps with various disjunction + character class patterns'; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -string = 'ZZZxZZZ'; -status = inSection(1); -pattern = /[x]|x/; -actualmatch = string.match(pattern); -expectedmatch = Array('x'); -addThis(); - -status = inSection(2); -pattern = /x|[x]/; -actualmatch = string.match(pattern); -expectedmatch = Array('x'); -addThis(); - - -string = 'ZZZxbZZZ'; -status = inSection(3); -pattern = /a|[x]b/; -actualmatch = string.match(pattern); -expectedmatch = Array('xb'); -addThis(); - -status = inSection(4); -pattern = /[x]b|a/; -actualmatch = string.match(pattern); -expectedmatch = Array('xb'); -addThis(); - -status = inSection(5); -pattern = /([x]b|a)/; -actualmatch = string.match(pattern); -expectedmatch = Array('xb', 'xb'); -addThis(); - -status = inSection(6); -pattern = /([x]b|a)|a/; -actualmatch = string.match(pattern); -expectedmatch = Array('xb', 'xb'); -addThis(); - -status = inSection(7); -pattern = /^[x]b|a/; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - - -string = 'xb'; -status = inSection(8); -pattern = /^[x]b|a/; -actualmatch = string.match(pattern); -expectedmatch = Array('xb'); -addThis(); - - -string = 'ZZZxbZZZ'; -status = inSection(9); -pattern = /([x]b)|a/; -actualmatch = string.match(pattern); -expectedmatch = Array('xb', 'xb'); -addThis(); - -status = inSection(10); -pattern = /()[x]b|a/; -actualmatch = string.match(pattern); -expectedmatch = Array('xb', ''); -addThis(); - -status = inSection(11); -pattern = /x[b]|a/; -actualmatch = string.match(pattern); -expectedmatch = Array('xb'); -addThis(); - -status = inSection(12); -pattern = /[x]{1}b|a/; -actualmatch = string.match(pattern); -expectedmatch = Array('xb'); -addThis(); - -status = inSection(13); -pattern = /[x]b|a|a/; -actualmatch = string.match(pattern); -expectedmatch = Array('xb'); -addThis(); - -status = inSection(14); -pattern = /[x]b|[a]/; -actualmatch = string.match(pattern); -expectedmatch = Array('xb'); -addThis(); - -status = inSection(15); -pattern = /[x]b|a+/; -actualmatch = string.match(pattern); -expectedmatch = Array('xb'); -addThis(); - -status = inSection(16); -pattern = /[x]b|a{1}/; -actualmatch = string.match(pattern); -expectedmatch = Array('xb'); -addThis(); - -status = inSection(17); -pattern = /[x]b|(a)/; -actualmatch = string.match(pattern); -expectedmatch = Array('xb', undefined); -addThis(); - -status = inSection(18); -pattern = /[x]b|()a/; -actualmatch = string.match(pattern); -expectedmatch = Array('xb', undefined); -addThis(); - -status = inSection(19); -pattern = /[x]b|^a/; -actualmatch = string.match(pattern); -expectedmatch = Array('xb'); -addThis(); - -status = inSection(20); -pattern = /a|[^b]b/; -actualmatch = string.match(pattern); -expectedmatch = Array('xb'); -addThis(); - -status = inSection(21); -pattern = /a|[^b]{1}b/; -actualmatch = string.match(pattern); -expectedmatch = Array('xb'); -addThis(); - - -string = 'hallo\";' - status = inSection(22); -pattern = /^((\\[^\x00-\x1f]|[^\x00-\x1f"\\])*)"/; - actualmatch = string.match(pattern); - expectedmatch = Array('hallo"', 'hallo', 'o'); - addThis(); - - - - -//------------------------------------------------------------------------------------------------- - test(); -//------------------------------------------------------------------------------------------------- - - - - function addThis() - { - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; - } - - - function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-225289.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-225289.js deleted file mode 100644 index 6e05d12ead..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-225289.js +++ /dev/null @@ -1,176 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * PhilSchwartau@aol.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 10 November 2003 - * SUMMARY: Testing regexps with complementary alternatives - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=225289 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-225289.js'; -var i = 0; -var BUGNUMBER = 225289; -var summary = 'Testing regexps with complementary alternatives'; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -// this pattern should match any string! -pattern = /a|[^a]/; - -status = inSection(1); -string = 'a'; -actualmatch = string.match(pattern); -expectedmatch = Array('a'); -addThis(); - -status = inSection(2); -string = ''; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(3); -string = '()'; -actualmatch = string.match(pattern); -expectedmatch = Array('('); -addThis(); - - -pattern = /(a|[^a])/; - -status = inSection(4); -string = 'a'; -actualmatch = string.match(pattern); -expectedmatch = Array('a', 'a'); -addThis(); - -status = inSection(5); -string = ''; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(6); -string = '()'; -actualmatch = string.match(pattern); -expectedmatch = Array('(', '('); -addThis(); - - -pattern = /(a)|([^a])/; - -status = inSection(7); -string = 'a'; -actualmatch = string.match(pattern); -expectedmatch = Array('a', 'a', undefined); -addThis(); - -status = inSection(8); -string = ''; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(9); -string = '()'; -actualmatch = string.match(pattern); -expectedmatch = Array('(', undefined, '('); -addThis(); - - -// note this pattern has one non-capturing parens -pattern = /((?:a|[^a])*)/g; - -status = inSection(10); -string = 'a'; -actualmatch = string.match(pattern); -expectedmatch = Array('a', ''); // see bug 225289 comment 6 -addThis(); - -status = inSection(11); -string = ''; -actualmatch = string.match(pattern); -expectedmatch = Array(''); // see bug 225289 comment 9 -addThis(); - -status = inSection(12); -string = '()'; -actualmatch = string.match(pattern); -expectedmatch = Array('()', ''); // see bug 225289 comment 6 -addThis(); - - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-225343.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-225343.js deleted file mode 100644 index 25e248adaa..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-225343.js +++ /dev/null @@ -1,125 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * PhilSchwartau@aol.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 11 November 2003 - * SUMMARY: Testing regexp character classes and the case-insensitive flag - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=225343 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-225343.js'; -var i = 0; -var BUGNUMBER = 225343; -var summary = 'Testing regexp character classes and the case-insensitive flag'; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -status = inSection(1); -string = 'a'; -pattern = /[A]/i; -actualmatch = string.match(pattern); -expectedmatch = Array('a'); -addThis(); - -status = inSection(2); -string = 'A'; -pattern = /[a]/i; -actualmatch = string.match(pattern); -expectedmatch = Array('A'); -addThis(); - -status = inSection(3); -string = '123abc123'; -pattern = /([A-Z]+)/i; -actualmatch = string.match(pattern); -expectedmatch = Array('abc', 'abc'); -addThis(); - -status = inSection(4); -string = '123abc123'; -pattern = /([A-Z])+/i; -actualmatch = string.match(pattern); -expectedmatch = Array('abc', 'c'); -addThis(); - -status = inSection(5); -string = 'abc@test.com'; -pattern = /^[-!#$%&\'*+\.\/0-9=?A-Z^_`{|}~]+@([-0-9A-Z]+\.)+([0-9A-Z]){2,4}$/i; -actualmatch = string.match(pattern); -expectedmatch = Array('abc@test.com', 'test.', 'm'); -addThis(); - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-24712.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-24712.js deleted file mode 100644 index c94472195f..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-24712.js +++ /dev/null @@ -1,59 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Rob Ginda rginda@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-24712.js'; - -test(); - -function test() -{ - enterFunc ("test"); - - printBugNumber (24712); - - var re = /([\S]+([ \t]+[\S]+)*)[ \t]*=[ \t]*[\S]+/; - var result = re.exec("Course_Creator = Test") + ''; - - reportCompare('Course_Creator = Test,Course_Creator,', result, 'exec() returned null'); - - exitFunc ("test"); - -} - diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-285219.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-285219.js deleted file mode 100755 index 9d462359fa..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-285219.js +++ /dev/null @@ -1,51 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Brendan Eich - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-285219.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 285219; -var summary = 'Do not crash on RangeError: reserved slot out of range'; -var actual = 'No Crash'; -var expect = 'No Crash'; - -printBugNumber(BUGNUMBER); -printStatus (summary); - -var o = {hi: 'there'}; -eval("var r = /re(1)(2)(3)/g", o); - -reportCompare(expect, actual, summary); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-28686.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-28686.js deleted file mode 100644 index b3e355fa1c..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-28686.js +++ /dev/null @@ -1,57 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Rob Ginda rginda@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-28686.js'; - -test(); - -function test() -{ - enterFunc ("test"); - - printBugNumber (28686); - - var str = 'foo "bar" baz'; - reportCompare ('foo \\"bar\\" baz', str.replace(/([\'\"])/g, "\\$1"), - "str.replace failed."); - - exitFunc ("test"); - -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-289669.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-289669.js deleted file mode 100755 index 2e3d044b74..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-289669.js +++ /dev/null @@ -1,88 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Bug Tracker - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-289669.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 289669; -var summary = 'O(N^2) behavior on String.replace(/RegExp/, ...)'; -var actual = ''; -var expect = ''; - -printBugNumber(BUGNUMBER); -printStatus (summary); - - -var data = {X: [], Y:[]}; - -function replace(str) { - var stra=str.replace(new RegExp('<a>','g'),"<span id=\"neurodna\" style=\"background-color:blue\"/>"); - stra=stra.replace(new RegExp('</a>','g'),"</span><br>"); -} - -function runTest() { - for (var j = 1000; j <= 10000; j += 1000) - { - neurodna(j); - } -} - -function neurodna(limit) { - var prepare="<go>"; - for(var i=0;i<limit;i++) { - prepare += "<a>neurodna</a>"; - } - prepare+="</go>"; - var da1=new Date(); - replace(prepare); - var da2=new Date(); - data.X.push(limit); - data.Y.push(da2-da1); - gc(); -} - -runTest(); - -var order = BigO(data); - -var msg = ''; -for (var p = 0; p < data.X.length; p++) -{ - msg += '(' + data.X[p] + ', ' + data.Y[p] + '); '; -} -printStatus(msg); -printStatus('Order: ' + order); -reportCompare(true, order < 2, summary + ' BigO ' + order + ' < 2'); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-307456.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-307456.js deleted file mode 100755 index dd2f540f6c..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-307456.js +++ /dev/null @@ -1,54 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Lupin.wp@gmail.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-307456.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 307456; -var summary = 'Do not Freeze with RegExp'; -var actual = 'No Crash'; -var expect = 'No Crash'; - -printBugNumber(BUGNUMBER); -printStatus (summary); - -var data='<!---<->---->\n\n<><>--!!!<><><><><><>\n!!<>\n\n<>\n<><><><>!\n\n\n\n--\n--\n--\n\n--\n--\n\n\n-------\n--\n--\n\n\n--\n\n\n\n----\n\n\n\n--\n\n\n-\n\n\n-\n\n-\n\n-\n\n-\n-\n\n----\n\n-\n\n\n\n\n-\n\n\n\n\n\n\n\n\n-----\n\n\n-\n------\n-------\n\n----\n\n\n\n!\n\n\n\n\n\n\n\n!!!\n\n\n--------\n\n\n\n-\n\n\n-\n--\n\n----\n\n\n\n\n\n-\n\n\n----\n\n\n\n\n\n--------\n!\n\n\n\n\n-\n---\n--\n\n----\n\n-\n\n-\n\n-\n\n\n\n-----\n\n\n\n-\n\n\n-\n\n\n--\n-\n\n\n-\n\n----\n\n---\n\n---\n\n----\n\n\n\n---\n\n-++\n\n-------<>\n\n-!\n\n--\n\n----!-\n\n\n\n'; - -printStatus(data); -data=data.replace(RegExp('<!--(\\n[^\\n]|[^-]|-[^-]|--[^>])*-->', 'g'), ''); -printStatus(data); - -reportCompare(expect, actual, summary); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-309840.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-309840.js deleted file mode 100755 index 8680b7bcfd..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-309840.js +++ /dev/null @@ -1,58 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Phil Schwartau <pschwartau@meer.net> - * Bob Clary <bob@bclary.com> - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-309840.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 309840; -var summary = 'Treat / in a literal regexp class as valid'; -var actual = 'No error'; -var expect = 'No error'; - -printBugNumber(BUGNUMBER); -printStatus (summary); - -try -{ - var re = eval('/[/]/'); -} -catch(e) -{ - actual = e.toString(); -} - -reportCompare(expect, actual, summary); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-311414.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-311414.js deleted file mode 100755 index a24a07bb2b..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-311414.js +++ /dev/null @@ -1,101 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): timeless - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-311414.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 311414; -var summary = 'RegExp captured tail match should be O(N)'; -var actual = ''; -var expect = ''; - -printBugNumber(BUGNUMBER); -printStatus (summary); - -function q1(n) { - var c = []; - c[n] = 1; - c = c.join(" "); - var d = Date.now(); - var e = c.match(/(.*)foo$/); - var f = Date.now(); - return (f - d); -} - -function q2(n) { - var c = []; - c[n] = 1; - c = c.join(" "); - var d = Date.now(); - var e = /foo$/.test(c) && c.match(/(.*)foo$/); - var f = Date.now(); - return (f - d); -} - -var data1 = {X:[], Y:[]}; -var data2 = {X:[], Y:[]}; - -for (var x = 500; x < 5000; x += 500) -{ - var y1 = q1(x); - var y2 = q2(x); - data1.X.push(x); - data1.Y.push(y1); - data2.X.push(x); - data2.Y.push(y2); - gc(); -} - -var order1 = BigO(data1); -var order2 = BigO(data2); - -var msg = ''; -for (var p = 0; p < data1.X.length; p++) -{ - msg += '(' + data1.X[p] + ', ' + data1.Y[p] + '); '; -} -printStatus(msg); -printStatus('Order: ' + order1); -reportCompare(true, order1 < 2 , summary + ' BigO ' + order1 + ' < 2'); - -msg = ''; -for (var p = 0; p < data2.X.length; p++) -{ - msg += '(' + data2.X[p] + ', ' + data2.Y[p] + '); '; -} -printStatus(msg); -printStatus('Order: ' + order2); -reportCompare(true, order2 < 2 , summary + ' BigO ' + order2 + ' < 2'); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-312351.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-312351.js deleted file mode 100755 index a9b00d317c..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-312351.js +++ /dev/null @@ -1,50 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): drimbk@yahoo.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-312351.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 312351; -var summary = 'Do not crash on RegExp(null)'; -var actual = 'No Crash'; -var expect = 'No Crash'; - -printBugNumber(BUGNUMBER); -printStatus (summary); - -var x = RegExp(null); - -reportCompare(expect, actual, summary); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-31316.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-31316.js deleted file mode 100644 index 594913f07c..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-31316.js +++ /dev/null @@ -1,96 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 01 May 2001 - * - * SUMMARY: Regression test for Bugzilla bug 31316: - * "Rhino: Regexp matches return garbage" - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=31316 - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-31316.js'; -var i = 0; -var BUGNUMBER = 31316; -var summary = 'Regression test for Bugzilla bug 31316'; -var cnEmptyString = ''; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -status = inSection(1); -pattern = /<([^\/<>][^<>]*[^\/])>|<([^\/<>])>/; -string = '<p>Some<br />test</p>'; -actualmatch = string.match(pattern); -expectedmatch = Array('<p>', undefined, 'p'); -addThis(); - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-330684.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-330684.js deleted file mode 100755 index b097fbc3d7..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-330684.js +++ /dev/null @@ -1,53 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2006 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Shaohua Wen - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-330684.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 330684; -var summary = 'Do not hang on RegExp'; -var actual = 'Do not hang on RegExp'; -var expect = ''; - -printBugNumber(BUGNUMBER); -printStatus (summary); - -var re = /^(?:(?:%[0-9A-Fa-f]{2})*[!\$&'\*-;=\?-Z_a-z]*)+$/; -var url = "http://tw.yimg.com/a/tw/wenchuan/cam_240x400_381615_030806_2.swf?clickTAG=javascript:VRECopenWindow(1)"; - -printStatus(re.test(url)); - -reportCompare(expect, actual, summary); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-334158.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-334158.js deleted file mode 100755 index 41ebf0a731..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-334158.js +++ /dev/null @@ -1,58 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2006 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Andreas - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-334158.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 334158; -var summary = 'Parse error in control letter escapes (RegExp)'; -var actual = ''; -var expect = ''; - -printBugNumber(BUGNUMBER); -printStatus (summary); - -expect = true; -actual = /\ca/.test( "\x01" ); -reportCompare(expect, actual, summary + ':/\ca/.test( "\x01" )'); - -expect = false - actual = /\ca/.test( "\\ca" ); -reportCompare(expect, actual, summary + ': /\ca/.test( "\\ca" )'); - -expect = false - actual = /\c[a/]/.test( "\x1ba/]" ); -reportCompare(expect, actual, summary + ': /\c[a/]/.test( "\x1ba/]" )'); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-346090.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-346090.js deleted file mode 100755 index dfd53a9922..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-346090.js +++ /dev/null @@ -1,63 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2006 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Priit Laes - * Brian Crowder - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-346090.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 346090; -var summary = 'Do not crash with this regexp'; -var actual = 'No Crash'; -var expect = 'No Crash'; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - var r = /%((h[^l]+)|(l[^h]+)){0,2}?a/g; - r.exec('%lld %d'); - - reportCompare(expect, actual, summary); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-367888.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-367888.js deleted file mode 100755 index 923c1e5ab3..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-367888.js +++ /dev/null @@ -1,62 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Jesse Ruderman - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-367888.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 367888; -var summary = 'RegExp /(|)??x/g.exec("y") barfs'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - expect = null; - actual = /(|)??x/g.exec("y"); - - reportCompare(expect, actual, summary); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-375642.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-375642.js deleted file mode 100755 index 236eb00d28..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-375642.js +++ /dev/null @@ -1,61 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Jesse Ruderman - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-375642.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 375642; -var summary = 'RegExp /(?:a??)+?/.exec("")'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - /(?:a??)+?/.exec("") - - reportCompare(expect, actual, summary); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-375711.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-375711.js deleted file mode 100755 index 6e7339f9e9..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-375711.js +++ /dev/null @@ -1,118 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Jesse Ruderman - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-375711.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 375711; -var summary = 'Do not assert with /[Q-b]/i.exec("")'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - var s; - - // see bug 416933 - print('see bug 416933 for changed behavior on Gecko 1.9'); - - try - { - s = '/[Q-b]/.exec("")'; - expect = 'No Error'; - print(s + ' expect ' + expect); - eval(s); - actual = 'No Error'; - } - catch(ex) - { - actual = ex + ''; - } - reportCompare(expect, actual, summary + ': ' + s); - - try - { - s ='/[Q-b]/i.exec("")'; - expect = 'No Error'; - print(s + ' expect ' + expect); - eval(s); - actual = 'No Error'; - } - catch(ex) - { - actual = ex + ''; - } - reportCompare(expect, actual, summary + ': ' + s); - - try - { - s = '/[q-b]/.exec("")'; - expect = 'SyntaxError: invalid range in character class'; - print(s + ' expect ' + expect); - eval(s); - actual = 'No Error'; - } - catch(ex) - { - actual = ex + ''; - } - reportCompare(expect, actual, summary + ': ' + s); - - try - { - s ='/[q-b]/i.exec("")'; - expect = 'SyntaxError: invalid range in character class'; - print(s + ' expect ' + expect); - eval(s); - actual = 'No Error'; - } - catch(ex) - { - actual = ex + ''; - } - reportCompare(expect, actual, summary + ': ' + s); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-375715-01-n.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-375715-01-n.js deleted file mode 100755 index 437dcbd5c5..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-375715-01-n.js +++ /dev/null @@ -1,63 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Jesse Ruderman - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-375715-01-n.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 375715; -var summary = 'Do not assert: (c2 <= cs->length) && (c1 <= c2)'; -var actual = ''; -var expect = ''; - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - // note that the assertion does not fire if the regexp is - // evald or used in new RegExp, so this test must be an -n - // with uncaught SyntaxError. - - /[\Wb-G]/.exec(""); - reportCompare(expect, actual, summary + ' /[\Wb-G]/.exec("")'); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-375715-02.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-375715-02.js deleted file mode 100755 index 3cd858e845..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-375715-02.js +++ /dev/null @@ -1,60 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Jesse Ruderman - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-375715-02.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 375715; -var summary = 'Do not assert: (c2 <= cs->length) && (c1 <= c2)'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - /[\s-:]/; - reportCompare(expect, actual, summary + '/[\s-:]/'); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-375715-03.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-375715-03.js deleted file mode 100755 index ffc5c5a4cc..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-375715-03.js +++ /dev/null @@ -1,60 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Jesse Ruderman - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-375715-03.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 375715; -var summary = 'Do not assert: (c2 <= cs->length) && (c1 <= c2)'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - /[_-t]/i.exec(""); - reportCompare(expect, actual, summary + '/[_-t]/i.exec("")'); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-375715-04.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-375715-04.js deleted file mode 100755 index 0c78a372ee..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-375715-04.js +++ /dev/null @@ -1,68 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Jesse Ruderman - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-375715-04.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 375715; -var summary = 'Do not assert: (c2 <= cs->length) && (c1 <= c2)'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - try - { - expect = 'SyntaxError: invalid range in character class'; - (new RegExp("[\xDF-\xC7]]", "i")).exec(""); - } - catch(ex) - { - actual = ex + ''; - } - reportCompare(expect, actual, summary + '(new RegExp("[\xDF-\xC7]]", "i")).exec("")'); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-57572.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-57572.js deleted file mode 100644 index c7abd410bf..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-57572.js +++ /dev/null @@ -1,150 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 28 December 2000 - * - * SUMMARY: Testing regular expressions containing the ? character. - * Arose from Bugzilla bug 57572: "RegExp with ? matches incorrectly" - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=57572 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-57572.js'; -var i = 0; -var BUGNUMBER = 57572; -var summary = 'Testing regular expressions containing "?"'; -var cnEmptyString = ''; var cnSingleSpace = ' '; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -status = inSection(1); -pattern = /(\S+)?(.*)/; -string = 'Test this'; -actualmatch = string.match(pattern); -expectedmatch = Array(string, 'Test', ' this'); //single space in front of 'this' -addThis(); - -status = inSection(2); -pattern = /(\S+)? ?(.*)/; //single space between the ? characters -string= 'Test this'; -actualmatch = string.match(pattern); -expectedmatch = Array(string, 'Test', 'this'); //NO space in front of 'this' -addThis(); - -status = inSection(3); -pattern = /(\S+)?(.*)/; -string = 'Stupid phrase, with six - (short) words'; -actualmatch = string.match(pattern); -expectedmatch = Array(string, 'Stupid', ' phrase, with six - (short) words'); //single space in front of 'phrase' -addThis(); - -status = inSection(4); -pattern = /(\S+)? ?(.*)/; //single space between the ? characters -string = 'Stupid phrase, with six - (short) words'; -actualmatch = string.match(pattern); -expectedmatch = Array(string, 'Stupid', 'phrase, with six - (short) words'); //NO space in front of 'phrase' -addThis(); - - -// let's add an extra back-reference this time - three instead of two - -status = inSection(5); -pattern = /(\S+)?( ?)(.*)/; //single space before second ? character -string = 'Stupid phrase, with six - (short) words'; -actualmatch = string.match(pattern); -expectedmatch = Array(string, 'Stupid', cnSingleSpace, 'phrase, with six - (short) words'); -addThis(); - -status = inSection(6); -pattern = /^(\S+)?( ?)(B+)$/; //single space before second ? character -string = 'AAABBB'; -actualmatch = string.match(pattern); -expectedmatch = Array(string, 'AAABB', cnEmptyString, 'B'); -addThis(); - -status = inSection(7); -pattern = /(\S+)?(!?)(.*)/; -string = 'WOW !!! !!!'; -actualmatch = string.match(pattern); -expectedmatch = Array(string, 'WOW', cnEmptyString, ' !!! !!!'); -addThis(); - -status = inSection(8); -pattern = /(.+)?(!?)(!+)/; -string = 'WOW !!! !!!'; -actualmatch = string.match(pattern); -expectedmatch = Array(string, 'WOW !!! !!', cnEmptyString, '!'); -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-57631.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-57631.js deleted file mode 100644 index dc222bfc0f..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-57631.js +++ /dev/null @@ -1,152 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com, zack-weg@gmx.de - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 26 November 2000 - * - * - * SUMMARY: This test arose from Bugzilla bug 57631: - * "RegExp with invalid pattern or invalid flag causes segfault" - * - * Either error should throw an exception of type SyntaxError, - * and we check to see that it does... - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-57631.js'; -var BUGNUMBER = '57631'; -var summary = 'Testing new RegExp(pattern,flag) with illegal pattern or flag'; -var statprefix = 'Testing for error creating illegal RegExp object on pattern '; -var statsuffix = 'and flag '; -var cnSUCCESS = 'SyntaxError'; -var cnFAILURE = 'not a SyntaxError'; -var singlequote = "'"; -var i = -1; var j = -1; var s = ''; var f = ''; -var obj = {}; -var status = ''; var actual = ''; var expect = ''; var msg = ''; -var legalpatterns = new Array(); var illegalpatterns = new Array(); -var legalflags = new Array(); var illegalflags = new Array(); - - -// valid regular expressions to try - -legalpatterns[0] = ''; -legalpatterns[1] = 'abc'; -legalpatterns[2] = '(.*)(3-1)\s\w'; -legalpatterns[3] = '(.*)(...)\\s\\w'; -legalpatterns[4] = '[^A-Za-z0-9_]'; -legalpatterns[5] = '[^\f\n\r\t\v](123.5)([4 - 8]$)'; - -// invalid regular expressions to try - -illegalpatterns[0] = '(?)'; -illegalpatterns[1] = '(a'; -illegalpatterns[2] = '( ]'; -//illegalpatterns[3] = '\d{1,s}'; - -// valid flags to try - -legalflags[0] = 'i'; -legalflags[1] = 'g'; -legalflags[2] = 'm'; -legalflags[3] = undefined; - -// invalid flags to try - -illegalflags[0] = 'a'; -illegalflags[1] = 123; -illegalflags[2] = new RegExp(); - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - testIllegalRegExps(legalpatterns, illegalflags); - testIllegalRegExps(illegalpatterns, legalflags); - testIllegalRegExps(illegalpatterns, illegalflags); - - exitFunc ('test'); -} - - -// This function will only be called where all the patterns are illegal, or all the flags -function testIllegalRegExps(patterns, flags) -{ - for (i in patterns) - { - s = patterns[i]; - - for (j in flags) - { - f = flags[j]; - status = getStatus(s, f); - actual = cnFAILURE; - expect = cnSUCCESS; - - try - { - // This should cause an exception if either s or f is illegal - - eval('obj = new RegExp(s, f);'); - } - catch(e) - { - // We expect to get a SyntaxError - test for this: - if (e instanceof SyntaxError) - actual = cnSUCCESS; - } - - reportCompare(expect, actual, status); - } - } -} - - -function getStatus(regexp, flag) -{ - return (statprefix + quote(regexp) + statsuffix + quote(flag)); -} - - -function quote(text) -{ - return (singlequote + text + singlequote); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-67773.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-67773.js deleted file mode 100644 index 4ee0d52854..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-67773.js +++ /dev/null @@ -1,211 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 06 February 2001 - * - * SUMMARY: Arose from Bugzilla bug 67773: - * "Regular subexpressions followed by + failing to run to completion" - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=67773 - * See http://bugzilla.mozilla.org/show_bug.cgi?id=69989 - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-67773.js'; -var i = 0; -var BUGNUMBER = 67773; -var summary = 'Testing regular subexpressions followed by ? or +\n'; -var cnSingleSpace = ' '; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -pattern = /^(\S+)?( ?)(B+)$/; //single space before second ? character -status = inSection(1); -string = 'AAABBB AAABBB '; //single space at middle and at end - -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(2); -string = 'AAABBB BBB'; //single space in the middle -actualmatch = string.match(pattern); -expectedmatch = Array(string, 'AAABBB', cnSingleSpace, 'BBB'); -addThis(); - -status = inSection(3); -string = 'AAABBB AAABBB'; //single space in the middle -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - - -pattern = /^(A+B)+$/; -status = inSection(4); -string = 'AABAAB'; -actualmatch = string.match(pattern); -expectedmatch = Array(string, 'AAB'); -addThis(); - -status = inSection(5); -string = 'ABAABAAAAAAB'; -actualmatch = string.match(pattern); -expectedmatch = Array(string, 'AAAAAAB'); -addThis(); - -status = inSection(6); -string = 'ABAABAABAB'; -actualmatch = string.match(pattern); -expectedmatch = Array(string, 'AB'); -addThis(); - -status = inSection(7); -string = 'ABAABAABABB'; -actualmatch = string.match(pattern); -expectedmatch = null; // because string doesn't match at end -addThis(); - - -pattern = /^(A+1)+$/; -status = inSection(8); -string = 'AA1AA1'; -actualmatch = string.match(pattern); -expectedmatch = Array(string, 'AA1'); -addThis(); - - -pattern = /^(\w+\-)+$/; -status = inSection(9); -string = ''; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(10); -string = 'bla-'; -actualmatch = string.match(pattern); -expectedmatch = Array(string, string); -addThis(); - -status = inSection(11); -string = 'bla-bla'; // hyphen missing at end - -actualmatch = string.match(pattern); -expectedmatch = null; //because string doesn't match at end -addThis(); - -status = inSection(12); -string = 'bla-bla-'; -actualmatch = string.match(pattern); -expectedmatch = Array(string, 'bla-'); -addThis(); - - -pattern = /^(\S+)+(A+)$/; -status = inSection(13); -string = 'asdldflkjAAA'; -actualmatch = string.match(pattern); -expectedmatch = Array(string, 'asdldflkjAA', 'A'); -addThis(); - -status = inSection(14); -string = 'asdldflkj AAA'; // space in middle -actualmatch = string.match(pattern); -expectedmatch = null; //because of the space -addThis(); - - -pattern = /^(\S+)+(\d+)$/; -status = inSection(15); -string = 'asdldflkj122211'; -actualmatch = string.match(pattern); -expectedmatch = Array(string, 'asdldflkj12221', '1'); -addThis(); - -status = inSection(16); -string = 'asdldflkj1111111aaa1'; -actualmatch = string.match(pattern); -expectedmatch = Array(string, 'asdldflkj1111111aaa', '1'); -addThis(); - - -/* - * This one comes from Stephen Ostermiller. - * See http://bugzilla.mozilla.org/show_bug.cgi?id=69989 - */ -pattern = /^[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)+$/; -status = inSection(17); -string = 'some.host.tld'; -actualmatch = string.match(pattern); -expectedmatch = Array(string, '.tld', '.'); -addThis(); - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-72964.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-72964.js deleted file mode 100644 index 67a41e505c..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-72964.js +++ /dev/null @@ -1,121 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 2001-07-17 - * - * SUMMARY: Regression test for Bugzilla bug 72964: - * "String method for pattern matching failed for Chinese Simplified (GB2312)" - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=72964 - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-72964.js'; -var i = 0; -var BUGNUMBER = 72964; -var summary = 'Testing regular expressions containing non-Latin1 characters'; -var cnSingleSpace = ' '; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -pattern = /[\S]+/; -// 4 low Unicode chars = Latin1; whole string should match -status = inSection(1); -string = '\u00BF\u00CD\u00BB\u00A7'; -actualmatch = string.match(pattern); -expectedmatch = Array(string); -addThis(); - -// Now put a space in the middle; first half of string should match -status = inSection(2); -string = '\u00BF\u00CD \u00BB\u00A7'; -actualmatch = string.match(pattern); -expectedmatch = Array('\u00BF\u00CD'); -addThis(); - - -// 4 high Unicode chars = non-Latin1; whole string should match -status = inSection(3); -string = '\u4e00\uac00\u4e03\u4e00'; -actualmatch = string.match(pattern); -expectedmatch = Array(string); -addThis(); - -// Now put a space in the middle; first half of string should match -status = inSection(4); -string = '\u4e00\uac00 \u4e03\u4e00'; -actualmatch = string.match(pattern); -expectedmatch = Array('\u4e00\uac00'); -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-76683.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-76683.js deleted file mode 100644 index 8792e379ca..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-76683.js +++ /dev/null @@ -1,114 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 01 May 2001 - * - * SUMMARY: Regression test for Bugzilla bug 76683 on Rhino: - * "RegExp regression (NullPointerException)" - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=76683 - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-76683.js'; -var i = 0; -var BUGNUMBER = 76683; -var summary = 'Regression test for Bugzilla bug 76683'; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -/* - * Rhino (2001-04-19) crashed on the 3rd regular expression below. - * It didn't matter what the string was. No problem in SpiderMonkey - - */ -string = 'abc'; -status = inSection(1); -pattern = /(<!--([^-]|-[^-]|--[^>])*-->)|(<([\$\w:\.\-]+)((([ ][^\/>]*)?\/>)|(([ ][^>]*)?>)))/; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -status = inSection(2); -pattern = /(<!--([^-]|-[^-]|--[^>])*-->)|(<(tagPattern)((([ ][^\/>]*)?\/>)|(([ ][^>]*)?>)))/; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - -// This was the one causing a Rhino crash - -status = inSection(3); -pattern = /(<!--([^-]|-[^-]|--[^>])*-->)|(<(tagPattern)((([ ][^\/>]*)?\/>)|(([ ][^>]*)?>)))|(<\/tagPattern[^>]*>)/; -actualmatch = string.match(pattern); -expectedmatch = null; -addThis(); - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-78156.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-78156.js deleted file mode 100644 index dd42ce060b..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-78156.js +++ /dev/null @@ -1,123 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 06 February 2001 - * - * SUMMARY: Arose from Bugzilla bug 78156: - * "m flag of regular expression does not work with $" - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=78156 - * - * The m flag means a regular expression should search strings - * across multiple lines, i.e. across '\n', '\r'. - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-78156.js'; -var i = 0; -var BUGNUMBER = 78156; -var summary = 'Testing regular expressions with ^, $, and the m flag -'; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - -/* - * All patterns have an m flag; all strings are multiline. - * Looking for digit characters at beginning/end of lines. - */ - -string = 'aaa\n789\r\nccc\r\n345'; -status = inSection(1); -pattern = /^\d/gm; -actualmatch = string.match(pattern); -expectedmatch = ['7','3']; -addThis(); - -status = inSection(2); -pattern = /\d$/gm; -actualmatch = string.match(pattern); -expectedmatch = ['9','5']; -addThis(); - -string = 'aaa\n789\r\nccc\r\nddd'; -status = inSection(3); -pattern = /^\d/gm; -actualmatch = string.match(pattern); -expectedmatch = ['7']; -addThis(); - -status = inSection(4); -pattern = /\d$/gm; -actualmatch = string.match(pattern); -expectedmatch = ['9']; -addThis(); - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-85721.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-85721.js deleted file mode 100644 index bca1a15e19..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-85721.js +++ /dev/null @@ -1,276 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * rogerl@netscape.com, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 14 Feb 2002 - * SUMMARY: Performance: Regexp performance degraded from 4.7 - * See http://bugzilla.mozilla.org/show_bug.cgi?id=85721 - * - * Adjust this testcase if necessary. The FAST constant defines - * an upper bound in milliseconds for any execution to take. - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-85721.js'; -var BUGNUMBER = 85721; -var summary = 'Performance: execution of regular expression'; -var FAST = 100; // execution should be 100 ms or less to pass the test -var MSG_FAST = 'Execution took less than ' + FAST + ' ms'; -var MSG_SLOW = 'Execution took '; -var MSG_MS = ' ms'; -var str = ''; -var re = ''; -var status = ''; -var actual = ''; -var expect= ''; - -printBugNumber(BUGNUMBER); -printStatus (summary); - - -function elapsedTime(startTime) -{ - return new Date() - startTime; -} - - -function isThisFast(ms) -{ - if (ms <= FAST) - return MSG_FAST; - return MSG_SLOW + ms + MSG_MS; -} - - - -/* - * The first regexp. We'll test for performance (Section 1) and accuracy (Section 2). - */ -str='<sql:connection id="conn1"> <sql:url>www.m.com</sql:url> <sql:driver>drive.class</sql:driver>\n<sql:userId>foo</sql:userId> <sql:password>goo</sql:password> </sql:connection>'; -re = /<sql:connection id="([^\r\n]*?)">\s*<sql:url>\s*([^\r\n]*?)\s*<\/sql:url>\s*<sql:driver>\s*([^\r\n]*?)\s*<\/sql:driver>\s*(\s*<sql:userId>\s*([^\r\n]*?)\s*<\/sql:userId>\s*)?\s*(\s*<sql:password>\s*([^\r\n]*?)\s*<\/sql:password>\s*)?\s*<\/sql:connection>/; -expect = Array("<sql:connection id=\"conn1\"> <sql:url>www.m.com</sql:url> <sql:driver>drive.class</sql:driver>\n<sql:userId>foo</sql:userId> <sql:password>goo</sql:password> </sql:connection>","conn1","www.m.com","drive.class","<sql:userId>foo</sql:userId> ","foo","<sql:password>goo</sql:password> ","goo"); - -/* - * Check performance - - */ -status = inSection(1); -var start = new Date(); -var result = re.exec(str); -actual = elapsedTime(start); -reportCompare(isThisFast(FAST), isThisFast(actual), status); - -/* - * Check accuracy - - */ -status = inSection(2); -testRegExp([status], [re], [str], [result], [expect]); - - - -/* - * The second regexp (HUGE!). We'll test for performance (Section 3) and accuracy (Section 4). - * It comes from the O'Reilly book "Mastering Regular Expressions" by Jeffrey Friedl, Appendix B - */ - -//# Some things for avoiding backslashitis later on. -$esc = '\\\\'; -$Period = '\.'; -$space = '\040'; $tab = '\t'; -$OpenBR = '\\['; $CloseBR = '\\]'; -$OpenParen = '\\('; $CloseParen = '\\)'; -$NonASCII = '\x80-\xff'; $ctrl = '\000-\037'; -$CRlist = '\n\015'; //# note: this should really be only \015. -// Items 19, 20, 21 -$qtext = '[^' + $esc + $NonASCII + $CRlist + '\"]'; // # for within "..." -$dtext = '[^' + $esc + $NonASCII + $CRlist + $OpenBR + $CloseBR + ']'; // # for within [...] -$quoted_pair = $esc + '[^' + $NonASCII + ']'; // # an escaped character - -//############################################################################## -//# Items 22 and 23, comment. -//# Impossible to do properly with a regex, I make do by allowing at most one level of nesting. -$ctext = '[^' + $esc + $NonASCII + $CRlist + '()]'; - -//# $Cnested matches one non-nested comment. -//# It is unrolled, with normal of $ctext, special of $quoted_pair. -$Cnested = - $OpenParen + // # ( - $ctext + '*' + // # normal* - '(?:' + $quoted_pair + $ctext + '*)*' + // # (special normal*)* - $CloseParen; // # ) - - -//# $comment allows one level of nested parentheses -//# It is unrolled, with normal of $ctext, special of ($quoted_pair|$Cnested) -$comment = - $OpenParen + // # ( - $ctext + '*' + // # normal* - '(?:' + // # ( - '(?:' + $quoted_pair + '|' + $Cnested + ')' + // # special - $ctext + '*' + // # normal* - ')*' + // # )* - $CloseParen; // # ) - - -//############################################################################## -//# $X is optional whitespace/comments. -$X = - '[' + $space + $tab + ']*' + // # Nab whitespace. - '(?:' + $comment + '[' + $space + $tab + ']*)*'; // # If comment found, allow more spaces. - - -//# Item 10: atom -$atom_char = '[^(' + $space + '<>\@,;:\".' + $esc + $OpenBR + $CloseBR + $ctrl + $NonASCII + ']'; -$atom = - $atom_char + '+' + // # some number of atom characters... - '(?!' + $atom_char + ')'; // # ..not followed by something that could be part of an atom - -// # Item 11: doublequoted string, unrolled. -$quoted_str = - '\"' + // # " - $qtext + '*' + // # normal - '(?:' + $quoted_pair + $qtext + '*)*' + // # ( special normal* )* - '\"'; // # " - -//# Item 7: word is an atom or quoted string -$word = - '(?:' + - $atom + // # Atom - '|' + // # or - $quoted_str + // # Quoted string - ')' - -//# Item 12: domain-ref is just an atom - $domain_ref = $atom; - -//# Item 13: domain-literal is like a quoted string, but [...] instead of "..." -$domain_lit = - $OpenBR + // # [ - '(?:' + $dtext + '|' + $quoted_pair + ')*' + // # stuff - $CloseBR; // # ] - -// # Item 9: sub-domain is a domain-ref or domain-literal -$sub_domain = - '(?:' + - $domain_ref + - '|' + - $domain_lit + - ')' + - $X; // # optional trailing comments - -// # Item 6: domain is a list of subdomains separated by dots. -$domain = - $sub_domain + - '(?:' + - $Period + $X + $sub_domain + - ')*'; - -//# Item 8: a route. A bunch of "@ $domain" separated by commas, followed by a colon. -$route = - '\@' + $X + $domain + - '(?:,' + $X + '\@' + $X + $domain + ')*' + // # additional domains - ':' + - $X; // # optional trailing comments - -//# Item 6: local-part is a bunch of $word separated by periods -$local_part = - $word + $X - '(?:' + - $Period + $X + $word + $X + // # additional words - ')*'; - -// # Item 2: addr-spec is local@domain -$addr_spec = - $local_part + '\@' + $X + $domain; - -//# Item 4: route-addr is <route? addr-spec> -$route_addr = - '<' + $X + // # < - '(?:' + $route + ')?' + // # optional route - $addr_spec + // # address spec - '>'; // # > - -//# Item 3: phrase........ -$phrase_ctrl = '\000-\010\012-\037'; // # like ctrl, but without tab - -//# Like atom-char, but without listing space, and uses phrase_ctrl. -//# Since the class is negated, this matches the same as atom-char plus space and tab -$phrase_char = - '[^()<>\@,;:\".' + $esc + $OpenBR + $CloseBR + $NonASCII + $phrase_ctrl + ']'; - -// # We've worked it so that $word, $comment, and $quoted_str to not consume trailing $X -// # because we take care of it manually. -$phrase = - $word + // # leading word - $phrase_char + '*' + // # "normal" atoms and/or spaces - '(?:' + - '(?:' + $comment + '|' + $quoted_str + ')' + // # "special" comment or quoted string - $phrase_char + '*' + // # more "normal" - ')*'; - -// ## Item #1: mailbox is an addr_spec or a phrase/route_addr -$mailbox = - $X + // # optional leading comment - '(?:' + - $phrase + $route_addr + // # name and address - '|' + // # or - $addr_spec + // # address - ')'; - - -//########################################################################### - - -re = new RegExp($mailbox, "g"); -str = 'Jeffy<"That Tall Guy"@ora.com (this address is no longer active)>'; -expect = Array('Jeffy<"That Tall Guy"@ora.com (this address is no longer active)>'); - -/* - * Check performance - - */ -status = inSection(3); -var start = new Date(); -var result = re.exec(str); -actual = elapsedTime(start); -reportCompare(isThisFast(FAST), isThisFast(actual), status); - -/* - * Check accuracy - - */ -status = inSection(4); -testRegExp([status], [re], [str], [result], [expect]); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-87231.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-87231.js deleted file mode 100644 index b5467322eb..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-87231.js +++ /dev/null @@ -1,145 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 22 June 2001 - * - * SUMMARY: Regression test for Bugzilla bug 87231: - * "Regular expression /(A)?(A.*)/ picks 'A' twice" - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=87231 - * Key case: - * - * pattern = /^(A)?(A.*)$/; - * string = 'A'; - * expectedmatch = Array('A', '', 'A'); - * - * - * We expect the 1st subexpression (A)? NOT to consume the single 'A'. - * Recall that "?" means "match 0 or 1 times". Here, it should NOT do - * greedy matching: it should match 0 times instead of 1. This allows - * the 2nd subexpression to make the only match it can: the single 'A'. - * Such "altruism" is the only way there can be a successful global match... - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-87231.js'; -var i = 0; -var BUGNUMBER = 87231; -var cnEmptyString = ''; -var summary = 'Testing regular expression /(A)?(A.*)/'; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); - - -pattern = /^(A)?(A.*)$/; -status = inSection(1); -string = 'AAA'; -actualmatch = string.match(pattern); -expectedmatch = Array('AAA', 'A', 'AA'); -addThis(); - -status = inSection(2); -string = 'AA'; -actualmatch = string.match(pattern); -expectedmatch = Array('AA', 'A', 'A'); -addThis(); - -status = inSection(3); -string = 'A'; -actualmatch = string.match(pattern); -expectedmatch = Array('A', undefined, 'A'); // 'altruistic' case: see above -addThis(); - - -pattern = /(A)?(A.*)/; -var strL = 'zxcasd;fl\\\ ^'; -var strR = 'aaAAaaaf;lrlrzs'; - -status = inSection(4); -string = strL + 'AAA' + strR; -actualmatch = string.match(pattern); -expectedmatch = Array('AAA' + strR, 'A', 'AA' + strR); -addThis(); - -status = inSection(5); -string = strL + 'AA' + strR; -actualmatch = string.match(pattern); -expectedmatch = Array('AA' + strR, 'A', 'A' + strR); -addThis(); - -status = inSection(6); -string = strL + 'A' + strR; -actualmatch = string.match(pattern); -expectedmatch = Array('A' + strR, undefined, 'A' + strR); // 'altruistic' case: see above -addThis(); - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-98306.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-98306.js deleted file mode 100644 index a2bfc2bf93..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/regress-98306.js +++ /dev/null @@ -1,99 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * jrgm@netscape.com, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 04 September 2001 - * - * SUMMARY: Regression test for Bugzilla bug 98306 - * "JS parser crashes in ParseAtom for script using Regexp()" - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=98306 - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-98306.js'; -var BUGNUMBER = 98306; -var summary = "Testing that we don't crash on this code -"; -var cnUBOUND = 10; -var re; -var s; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - s = '"Hello".match(/[/]/)'; - tryThis(s); - - s = 're = /[/'; - tryThis(s); - - s = 're = /[/]/'; - tryThis(s); - - s = 're = /[//]/'; - tryThis(s); - - reportCompare('No Crash', 'No Crash', ''); - exitFunc ('test'); -} - - -// Try to provoke a crash - -function tryThis(sCode) -{ - // sometimes more than one attempt is necessary - - for (var i=0; i<cnUBOUND; i++) - { - try - { - eval(sCode); - } - catch(e) - { - // do nothing; keep going - - } - } -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/shell.js b/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/shell.js deleted file mode 100644 index dbc733c376..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/RegExp/shell.js +++ /dev/null @@ -1,266 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 07 February 2001 - * - * Functionality common to RegExp testing - - */ -//----------------------------------------------------------------------------- - -gTestsubsuite = 'RegExp'; - -var MSG_PATTERN = '\nregexp = '; -var MSG_STRING = '\nstring = '; -var MSG_EXPECT = '\nExpect: '; -var MSG_ACTUAL = '\nActual: '; -var ERR_LENGTH = '\nERROR !!! match arrays have different lengths:'; -var ERR_MATCH = '\nERROR !!! regexp failed to give expected match array:'; -var ERR_NO_MATCH = '\nERROR !!! regexp FAILED to match anything !!!'; -var ERR_UNEXP_MATCH = '\nERROR !!! regexp MATCHED when we expected it to fail !!!'; -var CHAR_LBRACKET = '['; -var CHAR_RBRACKET = ']'; -var CHAR_QT_DBL = '"'; -var CHAR_QT = "'"; -var CHAR_NL = '\n'; -var CHAR_COMMA = ','; -var CHAR_SPACE = ' '; -var TYPE_STRING = typeof 'abc'; - - - -function testRegExp(statuses, patterns, strings, actualmatches, expectedmatches) -{ - var status = ''; - var pattern = new RegExp(); - var string = ''; - var actualmatch = new Array(); - var expectedmatch = new Array(); - var state = ''; - var lActual = -1; - var lExpect = -1; - - - for (var i=0; i != patterns.length; i++) - { - status = statuses[i]; - pattern = patterns[i]; - string = strings[i]; - actualmatch=actualmatches[i]; - expectedmatch=expectedmatches[i]; - state = getState(status, pattern, string); - - description = status; - - if(actualmatch) - { - actual = formatArray(actualmatch); - if(expectedmatch) - { - // expectedmatch and actualmatch are arrays - - lExpect = expectedmatch.length; - lActual = actualmatch.length; - - var expected = formatArray(expectedmatch); - - if (lActual != lExpect) - { - reportCompare(lExpect, lActual, - state + ERR_LENGTH + - MSG_EXPECT + expected + - MSG_ACTUAL + actual + - CHAR_NL - ); - continue; - } - - // OK, the arrays have same length - - if (expected != actual) - { - reportCompare(expected, actual, - state + ERR_MATCH + - MSG_EXPECT + expected + - MSG_ACTUAL + actual + - CHAR_NL - ); - } - else - { - reportCompare(expected, actual, state) - } - - } - else //expectedmatch is null - that is, we did not expect a match - - { - expected = expectedmatch; - reportCompare(expected, actual, - state + ERR_UNEXP_MATCH + - MSG_EXPECT + expectedmatch + - MSG_ACTUAL + actual + - CHAR_NL - ); - } - - } - else // actualmatch is null - { - if (expectedmatch) - { - actual = actualmatch; - reportCompare(expected, actual, - state + ERR_NO_MATCH + - MSG_EXPECT + expectedmatch + - MSG_ACTUAL + actualmatch + - CHAR_NL - ); - } - else // we did not expect a match - { - // Being ultra-cautious. Presumably expectedmatch===actualmatch===null - expected = expectedmatch; - actual = actualmatch; - reportCompare (expectedmatch, actualmatch, state); - } - } - } -} - - -function getState(status, pattern, string) -{ - /* - * Escape \n's, etc. to make them LITERAL in the presentation string. - * We don't have to worry about this in |pattern|; such escaping is - * done automatically by pattern.toString(), invoked implicitly below. - * - * One would like to simply do: string = string.replace(/(\s)/g, '\$1'). - * However, the backreference $1 is not a literal string value, - * so this method doesn't work. - * - * Also tried string = string.replace(/(\s)/g, escape('$1')); - * but this just inserts the escape of the literal '$1', i.e. '%241'. - */ - string = string.replace(/\n/g, '\\n'); - string = string.replace(/\r/g, '\\r'); - string = string.replace(/\t/g, '\\t'); - string = string.replace(/\v/g, '\\v'); - string = string.replace(/\f/g, '\\f'); - - return (status + MSG_PATTERN + pattern + MSG_STRING + singleQuote(string)); -} - - -/* - * If available, arr.toSource() gives more detail than arr.toString() - * - * var arr = Array(1,2,'3'); - * - * arr.toSource() - * [1, 2, "3"] - * - * arr.toString() - * 1,2,3 - * - * But toSource() doesn't exist in Rhino, so use our own imitation, below - - * - */ -function formatArray(arr) -{ - try - { - return arr.toSource(); - } - catch(e) - { - return toSource(arr); - } -} - - -/* - * Imitate SpiderMonkey's arr.toSource() method: - * - * a) Double-quote each array element that is of string type - * b) Represent |undefined| and |null| by empty strings - * c) Delimit elements by a comma + single space - * d) Do not add delimiter at the end UNLESS the last element is |undefined| - * e) Add square brackets to the beginning and end of the string - */ -function toSource(arr) -{ - var delim = CHAR_COMMA + CHAR_SPACE; - var elt = ''; - var ret = ''; - var len = arr.length; - - for (i=0; i<len; i++) - { - elt = arr[i]; - - switch(true) - { - case (typeof elt === TYPE_STRING) : - ret += doubleQuote(elt); - break; - - case (elt === undefined || elt === null) : - break; // add nothing but the delimiter, below - - - default: - ret += elt.toString(); - } - - if ((i < len-1) || (elt === undefined)) - ret += delim; - } - - return CHAR_LBRACKET + ret + CHAR_RBRACKET; -} - - -function doubleQuote(text) -{ - return CHAR_QT_DBL + text + CHAR_QT_DBL; -} - - -function singleQuote(text) -{ - return CHAR_QT + text + CHAR_QT; -} - diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Regress/browser.js b/tests/auto/declarative/parserstress/tests/ecma_3/Regress/browser.js deleted file mode 100644 index e69de29bb2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Regress/browser.js +++ /dev/null diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Regress/regress-385393-04.js b/tests/auto/declarative/parserstress/tests/ecma_3/Regress/regress-385393-04.js deleted file mode 100755 index 6e735fd1d2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Regress/regress-385393-04.js +++ /dev/null @@ -1,66 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Jesse Ruderman - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-385393-04.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 385393; -var summary = 'Regression test for bug 385393'; -var actual = 'No Crash'; -var expect = 'No Crash'; - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - try - { - 'a'.replace(/a/g, eval); - } - catch(ex) - { - } - - reportCompare(expect, actual, summary); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Regress/regress-419152.js b/tests/auto/declarative/parserstress/tests/ecma_3/Regress/regress-419152.js deleted file mode 100755 index f57f3a4f98..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Regress/regress-419152.js +++ /dev/null @@ -1,90 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Mike Shaver - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-419152.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 419152; -var summary = 'Shaver can not contain himself'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - var a = [1,2,3]; - - a[5] = 6; - expect = '1,2,3,,,6:6'; - actual = a + ':' + a.length; - reportCompare(expect, actual, summary + ': 1'); - - a = [1,2,3,4]; - expect = 'undefined'; - actual = a[-1] + ''; - reportCompare(expect, actual, summary + ': 2'); - - a = [1,2,3]; - a[-1] = 55; - - expect = 3; - actual = a.length; - reportCompare(expect, actual, summary + ': 3'); - - expect = '1,2,3'; - actual = a + ''; - reportCompare(expect, actual, summary + ': 4'); - - expect = 55; - actual = a[-1]; - reportCompare(expect, actual, summary + ': 5'); - - var s = "abcdef"; - - expect = 'undefined'; - actual = s[-2] + ''; - reportCompare(expect, actual, summary + ': 6'); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Regress/regress-420087.js b/tests/auto/declarative/parserstress/tests/ecma_3/Regress/regress-420087.js deleted file mode 100755 index 1f21d19739..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Regress/regress-420087.js +++ /dev/null @@ -1,64 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Mike Shaver - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-420087.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 420087; -var summary = 'Do not assert: PCVCAP_MAKE(sprop->shape, 0, 0) == entry->vcap'; -var actual = 'No Crash'; -var expect = 'No Crash'; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - var dict; - - for (var i = 0; i < 2; i++) - dict = {p: 1, q: 1, p:1}; - - reportCompare(expect, actual, summary); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Regress/regress-420610.js b/tests/auto/declarative/parserstress/tests/ecma_3/Regress/regress-420610.js deleted file mode 100755 index ecd5a2dd42..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Regress/regress-420610.js +++ /dev/null @@ -1,50 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Jesse Ruderman - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-420610.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 420610; -var summary = 'Do not crash with eval("this.x")'; -var actual = 'No Crash'; -var expect = 'No Crash'; - -printBugNumber(BUGNUMBER); -printStatus (summary); - -(function(){ eval("this.x") })(); - -reportCompare(expect, actual, summary); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Regress/regress-441477-01.js b/tests/auto/declarative/parserstress/tests/ecma_3/Regress/regress-441477-01.js deleted file mode 100755 index 1be199743d..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Regress/regress-441477-01.js +++ /dev/null @@ -1,73 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2008 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Jason Orendorff - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-441477-01.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 441477-01; -var summary = ''; -var actual = 'No Exception'; -var expect = 'No Exception'; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - try - { - for (i = 0; i < 5;) - { - if (i > 5) - throw "bad"; - i++; - continue; - } - } - catch(ex) - { - actual = ex + ''; - } - reportCompare(expect, actual, summary); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Regress/shell.js b/tests/auto/declarative/parserstress/tests/ecma_3/Regress/shell.js deleted file mode 100644 index 8c83369020..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Regress/shell.js +++ /dev/null @@ -1 +0,0 @@ -gTestsubsuite = 'Regress'; diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/12.6.3.js b/tests/auto/declarative/parserstress/tests/ecma_3/Statements/12.6.3.js deleted file mode 100755 index 97c3ca3136..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/12.6.3.js +++ /dev/null @@ -1,80 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Bryant Chen - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '12.6.3.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 292731; -var summary = 'for-in should not call valueOf method'; -var actual = ''; -var expect = ''; -var i; - -printBugNumber(BUGNUMBER); -printStatus (summary); - -function MyObject() -{ -} - -MyObject.prototype.valueOf = function() -{ - actual += 'MyObject.prototype.valueOf called. '; -} - - var myobject = new MyObject(); - -var myfunction = new function() -{ - this.valueOf = function() - { - actual += 'this.valueOf called. '; - } -} - - actual = ''; -for (i in myobject) -{ - //calls valueOf -} -reportCompare(expect, actual, 'for-in custom object'); - -actual = ''; -for (i in myfunction) -{ - //calls valueOf -} -reportCompare(expect, actual, 'for-in function expression'); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/browser.js b/tests/auto/declarative/parserstress/tests/ecma_3/Statements/browser.js deleted file mode 100644 index e69de29bb2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/browser.js +++ /dev/null diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-121744.js b/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-121744.js deleted file mode 100644 index 828cc5d8d5..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-121744.js +++ /dev/null @@ -1,217 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 30 Jan 2002 - * Revised: 10 Apr 2002 - * Revised: 14 July 2002 - * - * SUMMARY: JS should error on |for(i in undefined)|, |for(i in null)| - * See http://bugzilla.mozilla.org/show_bug.cgi?id=121744 - * - * ECMA-262 3rd Edition Final spec says such statements should error. See: - * - * Section 12.6.4 The for-in Statement - * Section 9.9 ToObject - * - * - * BUT: SpiderMonkey has decided NOT to follow this; it's a bug in the spec. - * See http://bugzilla.mozilla.org/show_bug.cgi?id=131348 - * - * UPDATE: Rhino has also decided not to follow the spec on this. - * See http://bugzilla.mozilla.org/show_bug.cgi?id=136893 - * - - |--------------------------------------------------------------------| - | | - | So for now, adding an early return for this test so it won't run. | - | | - |--------------------------------------------------------------------| - - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-121744.js'; -var UBound = 0; -var BUGNUMBER = 121744; -var summary = 'JS should error on |for(i in undefined)|, |for(i in null)|'; -var TEST_PASSED = 'TypeError'; -var TEST_FAILED = 'Generated an error, but NOT a TypeError!'; -var TEST_FAILED_BADLY = 'Did not generate ANY error!!!'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - -/* - * AS OF 14 JULY 2002, DON'T RUN THIS TEST IN EITHER RHINO OR SPIDERMONKEY - - */ -quit(); - - -status = inSection(1); -expect = TEST_PASSED; -actual = TEST_FAILED_BADLY; -/* - * OK, this should generate a TypeError - */ -try -{ - for (var i in undefined) - { - print(i); - } -} -catch(e) -{ - if (e instanceof TypeError) - actual = TEST_PASSED; - else - actual = TEST_FAILED; -} -addThis(); - - - -status = inSection(2); -expect = TEST_PASSED; -actual = TEST_FAILED_BADLY; -/* - * OK, this should generate a TypeError - */ -try -{ - for (var i in null) - { - print(i); - } -} -catch(e) -{ - if (e instanceof TypeError) - actual = TEST_PASSED; - else - actual = TEST_FAILED; -} -addThis(); - - - -status = inSection(3); -expect = TEST_PASSED; -actual = TEST_FAILED_BADLY; -/* - * Variable names that cannot be looked up generate ReferenceErrors; however, - * property names like obj.ZZZ that cannot be looked up are set to |undefined| - * - * Therefore, this should indirectly test | for (var i in undefined) | - */ -try -{ - for (var i in this.ZZZ) - { - print(i); - } -} -catch(e) -{ - if(e instanceof TypeError) - actual = TEST_PASSED; - else - actual = TEST_FAILED; -} -addThis(); - - - -status = inSection(4); -expect = TEST_PASSED; -actual = TEST_FAILED_BADLY; -/* - * The result of an unsuccessful regexp match is the null value - * Therefore, this should indirectly test | for (var i in null) | - */ -try -{ - for (var i in 'bbb'.match(/aaa/)) - { - print(i); - } -} -catch(e) -{ - if(e instanceof TypeError) - actual = TEST_PASSED; - else - actual = TEST_FAILED; -} -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-131348.js b/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-131348.js deleted file mode 100644 index 013e114178..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-131348.js +++ /dev/null @@ -1,184 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 10 Apr 2002 - * Revised: 14 July 2002 - * - * SUMMARY: JS should NOT error on |for(i in undefined)|, |for(i in null)| - * - * ECMA-262 3rd Edition Final spec says such statements SHOULD error. See: - * - * Section 12.6.4 The for-in Statement - * Section 9.9 ToObject - * - * - * But SpiderMonkey has decided NOT to follow this; it's a bug in the spec. - * See http://bugzilla.mozilla.org/show_bug.cgi?id=131348 - * - * Update: Rhino has also decided not to follow the spec on this - * See http://bugzilla.mozilla.org/show_bug.cgi?id=136893 - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-131348.js'; -var UBound = 0; -var BUGNUMBER = 131348; -var summary = 'JS should not error on |for(i in undefined)|, |for(i in null)|'; -var TEST_PASSED = 'No error'; -var TEST_FAILED = 'An error was generated!!!'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - - -status = inSection(1); -expect = TEST_PASSED; -actual = TEST_PASSED; -try -{ - for (var i in undefined) - { - print(i); - } -} -catch(e) -{ - actual = TEST_FAILED; -} -addThis(); - - - -status = inSection(2); -expect = TEST_PASSED; -actual = TEST_PASSED; -try -{ - for (var i in null) - { - print(i); - } -} -catch(e) -{ - actual = TEST_FAILED; -} -addThis(); - - - -status = inSection(3); -expect = TEST_PASSED; -actual = TEST_PASSED; -/* - * Variable names that cannot be looked up generate ReferenceErrors; however, - * property names like obj.ZZZ that cannot be looked up are set to |undefined| - * - * Therefore, this should indirectly test | for (var i in undefined) | - */ -try -{ - for (var i in this.ZZZ) - { - print(i); - } -} -catch(e) -{ - actual = TEST_FAILED; -} -addThis(); - - - -status = inSection(4); -expect = TEST_PASSED; -actual = TEST_PASSED; -/* - * The result of an unsuccessful regexp match is the null value - * Therefore, this should indirectly test | for (var i in null) | - */ -try -{ - for (var i in 'bbb'.match(/aaa/)) - { - print(i); - } -} -catch(e) -{ - actual = TEST_FAILED; -} -addThis(); - - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-157509.js b/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-157509.js deleted file mode 100644 index 0b1319ebba..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-157509.js +++ /dev/null @@ -1,111 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * igor3@apochta.com, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 15 July 2002 - * SUMMARY: Testing for SyntaxError on usage of '\' in identifiers - * See http://bugzilla.mozilla.org/show_bug.cgi?id=157509 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-157509.js'; -var UBound = 0; -var BUGNUMBER = 157509; -var summary = "Testing for SyntaxError on usage of '\\' in identifiers"; -var TEST_PASSED = 'SyntaxError'; -var TEST_FAILED = 'Generated an error, but NOT a SyntaxError!'; -var TEST_FAILED_BADLY = 'Did not generate ANY error!!!'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -status = inSection(1); -expect = TEST_PASSED; -actual = TEST_FAILED_BADLY; -/* - * OK, this should generate a SyntaxError - */ -try -{ - eval('var a\\1 = 0;'); -} -catch(e) -{ - if (e instanceof SyntaxError) - actual = TEST_PASSED; - else - actual = TEST_FAILED; -} -addThis(); - - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-194364.js b/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-194364.js deleted file mode 100644 index a139f2b985..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-194364.js +++ /dev/null @@ -1,152 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * igor@icesoft.no, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 21 February 2003 - * SUMMARY: Testing eval statements containing conditional function expressions - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=194364 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-194364.js'; -var UBound = 0; -var BUGNUMBER = 194364; -var summary = 'Testing eval statements with conditional function expressions'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - -/* - From ECMA-262 Edition 3, 12.4: - - 12.4 Expression Statement - - Syntax - ExpressionStatement : [lookahead not in {{, function}] Expression ; - - Note that an ExpressionStatement cannot start with an opening curly brace - because that might make it ambiguous with a Block. Also, an ExpressionStatement - cannot start with the function keyword because that might make it ambiguous with - a FunctionDeclaration. -*/ - -status = inSection(1); -actual = eval('(function() {}); 1'); -expect = 1; -addThis(); - -status = inSection(2); -actual = eval('(function f() {}); 2'); -expect = 2; -addThis(); - -status = inSection(3); -actual = eval('if (true) (function() {}); 3'); -expect = 3; -addThis(); - -status = inSection(4); -actual = eval('if (true) (function f() {}); 4'); -expect = 4; -addThis(); - -status = inSection(5); -actual = eval('if (false) (function() {}); 5'); -expect = 5; -addThis(); - -status = inSection(6); -actual = eval('if (false) (function f() {}); 6'); -expect = 6; -addThis(); - -status = inSection(7); -actual = eval('switch(true) { case true: (function() {}) }; 7'); -expect = 7; -addThis(); - -status = inSection(8); -actual = eval('switch(true) { case true: (function f() {}) }; 8'); -expect = 8; -addThis(); - -status = inSection(9); -actual = eval('switch(false) { case false: (function() {}) }; 9'); -expect = 9; -addThis(); - -status = inSection(10); -actual = eval('switch(false) { case false: (function f() {}) }; 10'); -expect = 10; -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-226517.js b/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-226517.js deleted file mode 100644 index d99bfb503e..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-226517.js +++ /dev/null @@ -1,112 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * igor@fastmail.fm, PhilSchwartau@aol.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 04 Dec 2003 - * SUMMARY: |finally| statement should execute even after a |return| - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=226517 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-226517.js'; -var UBound = 0; -var BUGNUMBER = 226517; -var summary = '|finally| statement should execute even after a |return|'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -/* - * We can only use a return statement within a function. - * That makes the testcase more complicated to set up - - */ -function f() -{ - var return_expression_was_calculated = false; - try - { - return (return_expression_was_calculated = true); - } - finally - { - actual = return_expression_was_calculated; - } -} - - -status = inSection(1); -f(); // sets |actual| -expect = true; -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-302439.js b/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-302439.js deleted file mode 100755 index e1ebdb6e30..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-302439.js +++ /dev/null @@ -1,1368 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Silviu Trasca - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-302439.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 302439; -var summary = 'spandep fu should skip unused JSOP_TABLESWITCH jump table entries'; -var actual = 'No Crash'; -var expect = 'No Crash'; - -printBugNumber(BUGNUMBER); -printStatus (summary); - -function productList(catID,famID) { - clearBox(document.Support_Form.Product_ID); - - switch(parseInt(catID)) { - - case 1 : // Sound Blaster - switch(parseInt(famID)) { - - case 434 : // Audigy 4 - break; - - case 204 : // Audigy 2 - break; - - case 205 : // Audigy - - try { addBoxItem(document.Support_Form.Product_ID, 'Audigy Platinum eX', '45'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Audigy Platinum', '4846'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Audigy LS (SE)', '10365'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Audigy Digital Entertainment', '5085'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Audigy ES', '5086'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 206 : // Live! - try { addBoxItem(document.Support_Form.Product_ID, 'Live! 24-bit External', '10702'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Sound Blaster Live! MP3+ 5.1', '573'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Live! 5.1', '50'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Live! Digital Entertainment 5.1 (SE)', '4855'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Live! Platinum 5.1', '572'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Sound Blaster Live! 5.1 Digital (Dell)', '1853'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Live! Platinum', '3203'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Sound Blaster Live! Value', '4856'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Sound Blaster Live!', '4857'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 207 : // Others - try { addBoxItem(document.Support_Form.Product_ID, 'Extigy', '585'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Ensoniq AudioPCI', '420'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'PCI4.1 Digital', '681'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Vibra128 4D', '9032'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Digital Music', '154'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Vibra 128', '4851'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Sound Blaster 32', '1844'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'SB AWE64 Digital', '1821'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'SB PCI 5.1', '1828'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Sound Blaster\u00AE', '1841'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Sound Blaster\u00AE 16', '1842'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Sound Blaster 16 Wave Effects', '1843'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Sound Blaster AWE32', '1848'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Sound Blaster AWE64', '1849'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Sound Blaster AWE64 Gold', '1850'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Sound Blaster Microchannels', '1861'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Sound Blaster PCI 128', '1864'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Sound Blaster PCI 64', '1865'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Sound Blaster Pro', '1866'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Sound Blaster Audio PCI', '1559'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 16 : // Accessories - try { addBoxItem(document.Support_Form.Product_ID, 'Live!Drive II', '9278'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Sound Blaster MIDI Adapter', '251'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Mini to Standard MIDI Adapter', '252'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - - } - break; - - case 210 : // Portable Media Players - switch(parseInt(famID)) { - - case 211 : // Zen - try { addBoxItem(document.Support_Form.Product_ID, 'Zen Portable Media Center', '9882'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 212 : // Accessories - try { addBoxItem(document.Support_Form.Product_ID, 'Zen PMC Docking Station', '10756'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Zen PMC Li-ion Polymer Battery', '10679'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Zen PMC FM Wired Remote', '10663'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - - } - break; - - case 213 : // MP3 Players - switch(parseInt(famID)) { - - case 214 : // Zen - try { addBoxItem(document.Support_Form.Product_ID, 'Zen Touch', '10274'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Zen Micro', '10795'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Zen', '11519'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Zen Xtra', '9288'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Zen NX', '4836'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Zen USB 2.0', '9019'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative NOMAD Jukebox Zen', '117'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 215 : // MuVo - try { addBoxItem(document.Support_Form.Product_ID, 'MuVo Micro N200', '10737'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'MuVo\u00B2 X-Trainer', '5080'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'MuVo Slim', '10052'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'MuVo Sport C100', '10794'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'MuVo V200', '10732'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'MuVo TX FM', '9771'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'MuVo USB 2.0', '10919'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'MuVo', '110'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'MuVo NX', '4884'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'MuVo\u00B2', '4908'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'MuVo TX', '9672'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 216 : // Digital MP3 Player - try { addBoxItem(document.Support_Form.Product_ID, 'Zen Xtra', '9288'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Rhomba NX', '10302'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'MP3 Player FX120', '11010'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'DXT 200', '4996'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Zen USB 2.0', '9019'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Jukebox 3', '296'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative CD-MP3 Slim 600', '1582'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Zen NX', '4836'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'MP3 Player', '4983'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'MP3 Player 2', '4984'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'MP3 Player MX', '4985'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative NOMAD Jukebox Zen', '117'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'JukeBox 2', '239'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative NOMAD JukeBox', '241'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative NOMAD JukeBox C', '242'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Jukebox 10GB', '261'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative CD-MP3 M100', '264'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 217 : // Accessories - try { addBoxItem(document.Support_Form.Product_ID, 'Zen Micro Battery', '11215'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Universal Travel Adapter for Zen Micro', '11711'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Zen Neeon Stik-On', '12982'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Zen Neeon Universal Travel Adapter', '12979'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Leather Case', '11511'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Zen Neeon Leather Case', '12978'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Home Kit - Jukebox 3', '497'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative NOMAD Jukebox 3 Leather Case', '498'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Faceplates - Jukebox 3', '499'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'MuVo Armband', '511'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'NOMAD II MG Wired Remote', '515'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative NOMAD Jukebox Accessory Kit', '533'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative NOMAD Jukebox Battery Charger Kit', '538'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative NOMAD Jukebox Battery Pack', '539'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'NOMAD II MG Travel Cable', '560'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Leather Case - Jukebox 2', '562'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Battery - Jukebox 2', '563'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'MuVo Battery Modules', '999'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'PlayDock PD200', '31'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'TravelSound', '80'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Li-Ion Battery - Jukebox 3', '86'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'FM Wired Remote - Jukebox 3/Jukebox Zen/MuVo\u00B2', '115'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative NOMAD Jukebox Power Adapter', '125'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Cassette Adapter Kit', '401'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Car Kit - Jukebox 3/Jukebox 2/Jukebox Zen/MuVo\u00B2', '496'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Battery Pack', '4997'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Battery Modules - MuVo NX / TX / TX FM', '9217'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Armband - MuVo NX / TX / TX FM', '10126'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - - } - break; - - case 4 : // Speaker Systems - switch(parseInt(famID)) { - - case 113 : // 7.1 Systems - try { addBoxItem(document.Support_Form.Product_ID, 'Inspire T7700', '5076'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 24 : // 6.1 Systems - try { addBoxItem(document.Support_Form.Product_ID, 'Inspire 6.1 6600', '465'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 25 : // 5.1 Systems - try { addBoxItem(document.Support_Form.Product_ID, 'Creative Inspire 5.1 5100', '1704'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'PCWorks LX520', '9412'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'I-Trigue 5600', '10736'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Inspire T5900', '10323'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Inspire P5800', '10596'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Desktop Theater 5.1 DTT2200', '428'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Inspire 5.1 5700 Digital', '439'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative Inspire 5.1 Digital 5500', '990'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Inspire 5.1 5200', '55'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative Inspire 5.1 5300', '238'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'MegaWorks THX 5.1 550', '240'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Desktop Theater 5.1 DTT3500 Digital', '290'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'PlayWorks DTT2500 Digital', '291'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative Inspire 5.1 5600', '1705'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Inspire T5400', '5077'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'PlayWorks PS2000 Digital', '427'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Desktop Theater 5.1', '1628'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Desktop Theater 5.1 DTT2500 Digital', '1629'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Cambridge SoundWorks MegaWorks 510D', '478'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 26 : // 4.1 Systems - try { addBoxItem(document.Support_Form.Product_ID, 'FPS1600', '47'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'FPS2000 Digital', '297'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Inspire 4.1 4400', '446'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'FPS1800', '424'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'PC-Works FourPointSurround FPS1000', '378'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'FPS1500', '388'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 27 : // 2.1 Systems - try { addBoxItem(document.Support_Form.Product_ID, 'I-Trigue 3600', '10735'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Inspire T3000', '10329'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'I-Trigue 3400', '10733'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Inspire G380', '9276'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative I-Trigue 3200', '10327'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'PCWorks LX220', '9407'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative Inspire 2.1 Slim 2600', '434'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Inspire 2.1 2500', '461'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'I-Trigue L3500', '4912'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'I-Trigue L3450', '4913'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Inspire T2900', '9025'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Inspire P380', '9026'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'SoundWorks SW320', '48'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'MegaWorks THX 2.1 250D', '124'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'I-Trigue 2.1 3300', '139'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative SBS 2.1 350 Speakers', '281'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'SBS 370', '283'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'PCWorks', '284'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative Inspire Slim 500', '289'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative Inspire 2.1 2400', '298'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'SoundWorks Digital', '299'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'SoundWorks SW310', '304'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'I-Trigue i3350', '279'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 28 : // 2.0 Systems - try { addBoxItem(document.Support_Form.Product_ID, 'Inspire Monitor M85-D', '4910'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Inspire 2.0 1300', '4918'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'SBS 230 Speakers', '4905'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'SBS52', '1'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'SBS16', '2'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Cambridge SBS20', '3'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'SBS50', '1834'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'SBS10', '1831'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative SBS15', '4906'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 29 : // Portable Systems - try { addBoxItem(document.Support_Form.Product_ID, 'TravelSound 200', '10164'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'TravelSound MP3', '1874'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'PlayDock PD200', '31'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'TravelSound', '80'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'TravelSound i-300', '9022'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative TravelSound MP3 Titanium', '991'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 136 : // Decoders - try { addBoxItem(document.Support_Form.Product_ID, 'Decoder DDTS-100', '9468'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 30 : // Accessories - try { addBoxItem(document.Support_Form.Product_ID, 'MT-1100 Speaker Stands', '166'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Headphones HQ-1700', '11164'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Headphones HQ-1300', '4936'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Headphones HN-505', '4938'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Backphones HQ-65', '4916'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Backphones HQ-60', '4937'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Earphones EP-880', '11156'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Earphones EP-480', '11708'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Headset HE-100', '11023'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Headset HS-300', '4939'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'MT-1200 Speaker Stands', '9515'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'SurroundStation', '32'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative HQ-2000 Headphones', '4'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'MT-500 Speaker Tripods', '399'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Inspire 2600 Spkr Grilles', '636'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Inspire 5300 Spkr Grilles', '637'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Inspire 5700 Spkr Grilles', '664'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative HQ-1000 Headphones', '4988'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - - } - break; - - case 218 : // Web Cameras - switch(parseInt(famID)) { - - case 219 : // WebCam - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam Live! Ultra for Notebooks', '11491'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam Live! Ultra', '10451'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam Live! Pro', '10450'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam Live!', '10412'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam Instant', '10410'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam NX Ultra', '9340'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam NX Pro', '628'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam NX', '627'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam PRO eX', '243'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam PRO', '616'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam Go Plus', '15'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Webcam Go ES', '1898'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam Go Mini', '1900'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam Go', '17'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Video Blaster WebCam Plus', '16'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam Notebook', '629'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam Mobile', '4890'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam 5', '1896'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam Vista Pro', '11053'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam Vista Plus', '11043'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam', '65'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam II', '4900'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam 3', '1908'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam Vista', '1907'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 220 : // PC-CAM - try { addBoxItem(document.Support_Form.Product_ID, 'PC-CAM 900', '10119'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'PC-CAM 930 Slim', '11431'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'PC-CAM 920 Slim', '10823'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'PC-CAM 880', '308'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'PC-CAM 750', '4878'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'PC-CAM 850', '4879'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative PC-CAM 300', '49'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'PC-CAM 350', '106'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'PC-CAM 550', '107'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'CardCam Value', '116'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'PC-CAM 600', '260'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - - } - break; - - case 437 : // Headphones & Headsets - switch(parseInt(famID)) { - - case 438 : // Headphones - try { addBoxItem(document.Support_Form.Product_ID, 'Headphones HQ-1700', '11164'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Headphones HQ-1300', '4936'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Headphones CB2530', '11644'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 439 : // Noise-Cancelling Headphones - try { addBoxItem(document.Support_Form.Product_ID, 'Headphones HN-505', '4938'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 440 : // Backphones - try { addBoxItem(document.Support_Form.Product_ID, 'Backphones HQ-65', '4916'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Backphones HQ-60', '4937'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 441 : // Earphones - try { addBoxItem(document.Support_Form.Product_ID, 'Earphones EP-880', '11156'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Earphones EP-630', '11397'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Earphones EP-480', '11708'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Earphones EP-380', '11229'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 442 : // Headsets - try { addBoxItem(document.Support_Form.Product_ID, 'Headset HE-100', '11023'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Headset HS-300', '4939'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - - } - break; - - case 9 : // Storage Devices - switch(parseInt(famID)) { - - case 259 : // DVD±RW Drive - try { addBoxItem(document.Support_Form.Product_ID, 'DVD±RW Dual 8X', '9599'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'DVD±RW Dual 8x8', '10305'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'DVD+RW Dual External 8x8', '10583'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 47 : // Combo Drive - try { addBoxItem(document.Support_Form.Product_ID, 'Combo Drive 52.32.52x/16x', '11712'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Combo Drive 40-12-40/16', '4998'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Combo Drive NS', '9454'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 46 : // CD-RW Drive - try { addBoxItem(document.Support_Form.Product_ID, 'CD-RW External 52-32-52x', '9481'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'CD-RW Blaster 12-10-32', '8'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'CD-RW 52.24.52', '1590'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'CD-RW Blaster 24-10-40 External', '4944'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'CD-RW External 52-24-52x', '9027'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'CD-RW 52-32-52x', '9453'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'CD-RW Blaster 48-12-48 External', '9020'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'CD-RW Blaster 48-12-48', '4941'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 45 : // PC-DVD Drive - try { addBoxItem(document.Support_Form.Product_ID, 'PC-DVD Encore 12x', '6'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'PC-DVD ROM 12x', '1486'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'PC-DVD DVD-ROM 16x', '1490'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'PC-DVD MPEG-1 Decoder Board', '1801'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 44 : // CD-ROM Drive - try { addBoxItem(document.Support_Form.Product_ID, 'CD-ROM Blaster Digital iR52X', '3562'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'CD-ROM Blaster 52X', '11'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '12x CD-ROM Drives', '1485'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '16x CD-ROM Drives', '1489'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '48x CD-ROM Drives', '1548'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '1x & 2x CD-ROM Drives', '1493'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '24x CD-ROM Drives', '1495'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '2x & 3x CD-ROM (SCSI)', '1496'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '32x CD-ROM Drives', '1498'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '36x CD-ROM Drives', '1499'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '40x CD-Rom Drives', '1547'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '4x CD-ROM Drives', '1549'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '6x CD-ROM Drives', '1552'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '8x CD-ROM Drives', '1554'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 49 : // Portable Harddisk - try { addBoxItem(document.Support_Form.Product_ID, 'Storage Blaster Portable Harddisk', '8996'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 265 : // Portable Storage - try { addBoxItem(document.Support_Form.Product_ID, 'ThumbDrive', '10681'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - - } - break; - - case 12 : // PC Barebone - switch(parseInt(famID)) { - - case 54 : // SLiX PC - try { addBoxItem(document.Support_Form.Product_ID, 'SLiX PC MPC61Y0', '11766'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - - } - break; - - case 11 : // Monitors - switch(parseInt(famID)) { - - case 53 : // LCD - try { addBoxItem(document.Support_Form.Product_ID, '17" TFT LCD Monitor With DVI', '9980'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - - } - break; - - case 60 : // Video - switch(parseInt(famID)) { - - case 96 : // Video Editing - try { addBoxItem(document.Support_Form.Product_ID, 'Video Blaster MovieMaker', '13'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - - } - break; - - case 13 : // Accessories - switch(parseInt(famID)) { - - case 55 : // Sound Blaster - try { addBoxItem(document.Support_Form.Product_ID, 'Optical Digital I/O Card II', '30'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Sound Blaster MIDI Adapter', '251'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Mini to Standard MIDI Adapter', '252'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Live!Drive II', '9278'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Sound Blaster Audigy Internal Drive', '88'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Sound Blaster Audigy External Drive', '89'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Live! Drive IR', '26'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Live! Drive I', '27'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Remote Controller SBLive', '1816'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 449 : // Zen Micro - try { addBoxItem(document.Support_Form.Product_ID, 'Universal Travel Adapter for Zen Micro', '11711'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Leather Case', '11511'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 483 : // Zen Neeon - try { addBoxItem(document.Support_Form.Product_ID, 'Zen Neeon Stik-On', '12982'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Zen Neeon Leather Case', '12978'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Zen Neeon Universal Travel Adapter', '12979'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 264 : // Portable Media Center - try { addBoxItem(document.Support_Form.Product_ID, 'Zen PMC Docking Station', '10756'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Zen PMC Li-ion Polymer Battery', '10679'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Zen PMC FM Wired Remote', '10663'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 57 : // MP3 Players - try { addBoxItem(document.Support_Form.Product_ID, 'Creative NOMAD JukeBox 3 Car Kit', '4894'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Home Kit - Jukebox 3', '497'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative NOMAD Jukebox 3 Leather Case', '498'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Faceplates - Jukebox 3', '499'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'MuVo Armband', '511'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative NOMAD Jukebox Accessory Kit', '533'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative NOMAD Jukebox Battery Charger Kit', '538'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative NOMAD Jukebox Battery Pack', '539'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Leather Case - Jukebox 2', '562'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Battery - Jukebox 2', '563'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Li-Ion Battery - Jukebox 3', '86'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'FM Wired Remote - Jukebox 3/Jukebox Zen/MuVo\u00B2', '115'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative NOMAD Jukebox Power Adapter', '125'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Cassette Adapter Kit', '401'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Car Kit - Jukebox 3/Jukebox 2/Jukebox Zen/MuVo\u00B2', '496'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Battery Modules - MuVo NX / TX / TX FM', '9217'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Armband - MuVo NX / TX / TX FM', '10126'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 58 : // Speaker Systems - try { addBoxItem(document.Support_Form.Product_ID, 'MT-1100 Speaker Stands', '166'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Headphones HQ-1700', '11164'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Earphones EP-880', '11156'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Headset HE-100', '11023'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'MT-500 Speaker Tripods', '399'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Speaker Extension Cables', '415'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Inspire 5300 Spkr Grilles', '637'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Inspire 5700 Spkr Grilles', '664'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 256 : // Wireless - try { addBoxItem(document.Support_Form.Product_ID, 'Wireless Headset for Bluetooth', '10287'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Headset CB2455', '11394'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Headphones CB2530', '11644'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 59 : // Storage - try { addBoxItem(document.Support_Form.Product_ID, 'S-Video Cable Coupler', '250'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'IDE Cable Set', '255'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Dxr2 Decoder Board', '1648'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Dxr3 Decoder Card', '12'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - - } - break; - - case 118 : // Digital Cameras - switch(parseInt(famID)) { - - case 117 : // Digital Still Cameras - try { addBoxItem(document.Support_Form.Product_ID, 'DC-CAM 4200ZS', '10822'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'DC-CAM 3200Z', '9762'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'DC-CAM 3000Z', '9028'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'CardCam', '120'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'CardCam Value', '116'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 309 : // Digital Video Cameras - try { addBoxItem(document.Support_Form.Product_ID, 'DiVi CAM 316', '11175'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - - } - break; - - case 10 : // Mice & Keyboards - switch(parseInt(famID)) { - - case 223 : // Wired Mice - try { addBoxItem(document.Support_Form.Product_ID, 'Mouse 5500', '11387'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Mouse 3500', '11388'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Mouse Classic', '4919'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Mouse Optical Lite', '4920'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Mouse Optical 3000', '4924'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Creative Optical Mouse', '262'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Mouse Notebook Optical', '9147'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 224 : // Wireless Mice - try { addBoxItem(document.Support_Form.Product_ID, 'FreePoint Travel', '11165'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'FreePoint Travel Mini', '11166'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'FreePoint 5500', '11178'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'FreePoint 3500', '11386'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Mouse Wireless Optical 5000', '9145'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Mouse Wireless Optical', '263'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Mouse Wireless Optical 3000', '4923'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 227 : // Wireless Mice & Keyboards - try { addBoxItem(document.Support_Form.Product_ID, 'Desktop Wireless 9000 Pro', '11493'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Desktop Wireless 8000', '10104'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Desktop Wireless 6000', '5039'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 228 : // Wired PC & MIDI Keyboards - try { addBoxItem(document.Support_Form.Product_ID, 'Prodikeys DM', '9389'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Prodikeys DM Value', '9600'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Prodikeys', '504'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 52 : // Gaming Devices - try { addBoxItem(document.Support_Form.Product_ID, 'Avant Force NX', '9394'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Cobra Force 3D', '9396'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Gamepad I', '1658'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - - } - break; - - case 8 : // Musical Keyboards - switch(parseInt(famID)) { - - case 234 : // PC & MIDI Keyboards - try { addBoxItem(document.Support_Form.Product_ID, 'Prodikeys DM', '9389'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Prodikeys DM Value', '9600'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Prodikeys', '504'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 231 : // MIDI Keyboards - try { addBoxItem(document.Support_Form.Product_ID, 'Creative Blasterkeys', '40'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - - } - break; - - case 237 : // Creative Professional - switch(parseInt(famID)) { - - case 239 : // Digital Audio Systems - try { addBoxItem(document.Support_Form.Product_ID, 'E-MU 1820M', '10496'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'E-MU 1212M', '10500'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'E-MU 1820', '10494'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'E-MU 0404', '10498'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 240 : // Desktop Sampling Systems - try { addBoxItem(document.Support_Form.Product_ID, 'Emulator X', '10502'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Emulator X Studio', '10504'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Proteus X', '11074'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 421 : // Desktop Sound Modules - try { addBoxItem(document.Support_Form.Product_ID, 'Proteus X', '11074'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 258 : // Accessories and Upgrades - try { addBoxItem(document.Support_Form.Product_ID, 'Proteus X Software Upgrade', '11073'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Emulator X OS Upgrade', '10225'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Mo\'Phatt X', '11329'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Planet Earth X', '11330'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Virtuoso X', '11332'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Vintage X Pro Collection', '11072'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Street Kits', '11331'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'AudioDock M', '10229'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Audio Dock', '10230'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Beat Shop 2', '10404'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'EDI Cable', '10227'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Sync Daughter Card', '10576'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - - } - break; - - case 243 : // Wireless - switch(parseInt(famID)) { - - case 246 : // Mice & Keyboards - try { addBoxItem(document.Support_Form.Product_ID, 'FreePoint 5500', '11178'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'FreePoint 3500', '11386'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Mouse Wireless Optical 5000', '9145'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Desktop Wireless 8000', '10104'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Desktop Wireless 6000', '5039'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Mouse Wireless Optical', '263'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Mouse Wireless Optical 3000', '4923'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 248 : // Accessories - try { addBoxItem(document.Support_Form.Product_ID, 'Headset CB2460', '11238'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Headset CB2455', '11394'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Wireless Headset for Bluetooth', '10287'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Headphones CB2530', '11644'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - - } - break; - - case 244 : // Notebook Products - switch(parseInt(famID)) { - - case 250 : // PCMCIA Sound Blaster - try { addBoxItem(document.Support_Form.Product_ID, 'Audigy 2 ZS Notebook', '10769'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 249 : // USB Sound Blaster - try { addBoxItem(document.Support_Form.Product_ID, 'Audigy 2 NX', '9103'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Live! 24-bit External', '10702'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Digital Music LX', '10246'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Digital Music', '154'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Extigy', '585'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 251 : // Portable Speaker Systems - try { addBoxItem(document.Support_Form.Product_ID, 'TravelSound 200', '10164'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'TravelSound i-300', '9022'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'TravelSound MP3', '1874'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 252 : // Mice & Keyboards - try { addBoxItem(document.Support_Form.Product_ID, 'Mouse Wireless NoteBook Optical', '10188'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Mouse Notebook Optical', '9147'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 253 : // Web Cameras - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam Live! Ultra for Notebooks', '11491'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam Notebook', '629'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'WebCam Mobile', '4890'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - - } - break; - - case 6 : // Graphics - switch(parseInt(famID)) { - - case 37 : // ATI Radeon 9000 series - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster RX9250', '11489'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster RX9250 Xtreme', '11490'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 230 : // 3D Labs - try { addBoxItem(document.Support_Form.Product_ID, 'Graphics Blaster Picture Perfect', '164'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 99 : // NVIDIA GeForce - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster GeForce', '1500'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster GeForce 2', '1501'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster GeForce Pro', '1505'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster GeForce2 ULTRA 64MB AGP', '1512'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 98 : // NVIDIA Riva TNT Series - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster RIVA TNT2 Pro', '1527'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Graphics Blaster RIVA128ZX', '1689'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster Riva TNT2', '4841'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster RIVA TNT2 Value', '4842'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster TNT2 Ultra', '4843'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 73 : // 3D Blaster - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster 4 Titanium 4200', '1516'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster 5 RX9700 Pro', '1524'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster 4 MX440', '1539'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster 5 RX9000 64MB', '1540'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster 5 RX9000 Pro', '1541'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster 4 MX420', '4869'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster 5 RX9800 Pro', '4917'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster 4 MX460', '4969'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster 5 RX9600', '4973'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster 5 RX9000 Pro 128MB', '8995'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster 5 RX9200 SE', '9024'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster 5 RX9600 Pro', '9576'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster 5 RX9600 XT', '10311'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster 5 RX9600 SE', '10335'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster Savage 4', '1536'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster VLB', '1537'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster Voodoo 2', '1538'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster PCI', '1523'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster Banshee', '1506'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, '3D Blaster Banshee AGP', '1507'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - - } - break; - - case 7 : // Modems & Networking - switch(parseInt(famID)) { - - case 41 : // Wireless - try { addBoxItem(document.Support_Form.Product_ID, 'USB Adapter CB2431', '10863'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Network Blaster Wireless PCMCIA Card', '3868'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 42 : // Broadband - try { addBoxItem(document.Support_Form.Product_ID, 'Broadband Blaster DSL Router 8015U', '11176'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Broadband Blaster Router 8110', '10280'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Broadband Blaster ADSL Bridge ', '4873'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Broadband Blaster USB Modem', '4871'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Broadband Blaster DSL', '4921'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 40 : // Analog - try { addBoxItem(document.Support_Form.Product_ID, 'Modem Blaster PCMCIA', '24'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Modem Blaster V.92 PCI', '52'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Modem Blaster V.92 Serial', '258'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Modem Blaster V.92 USB', '266'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Modem 56k Internal', '1715'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Modem Blaster Flash 56II ISA', '18'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Modem Blaster V.90 ISA', '19'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Modem Blaster Flash 56 PCI', '21'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Modem Blaster V.90 USB', '22'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Modem Blaster V.90 External', '23'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Modem Blaster USB (DE5675)', '8992'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Modem Blaster USB (DE5673)', '8991'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Modem Blaster PCI (DI5663)', '4999'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Modem Blaster PCI (DI5656)', '8988'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Modem Blaster PCI (DI5655)', '8989'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Modem Blaster External (DE5625)', '8990'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Modem Blaster 28.8 External', '5000'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'CT5451 Modem Blaster Voice PnP', '5001'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'Phone Blaster', '1809'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - - } - break; - - case 106 : // Software - switch(parseInt(famID)) { - - case 241 : // HansVision DXT - try { addBoxItem(document.Support_Form.Product_ID, 'HansVision DXT 2005 Edition', '12218'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 242 : // Children\'s Multimedia Educational - try { addBoxItem(document.Support_Form.Product_ID, 'WaWaYaYa Happy Mandarin Series', '11269'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - try { addBoxItem(document.Support_Form.Product_ID, 'WaWaYaYa Happy English Series', '4932'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 107 : // HansVision - try { addBoxItem(document.Support_Form.Product_ID, 'HansVision DXT', '4928'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 108 : // WaWaYaYa - try { addBoxItem(document.Support_Form.Product_ID, 'WaWaYaYa Comprehensive Ability Series', '4930'); } catch(e) {addBoxItem(document.Support_Form.Product_ID, '1', '2'); } // - - break; - - case 109 : // Others - - break; - - - } - break; - - } - // addBoxItem(document.Support_Form.Product_ID, 'Zen Portable Media Center', 'DUMMYPREFIX_ZenPMC_Temp|9882'); -} - -try -{ - productList(0,0); -} -catch(e) -{ -} - -reportCompare(expect, actual, summary); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-324650.js b/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-324650.js deleted file mode 100755 index 003cd0fa42..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-324650.js +++ /dev/null @@ -1,5461 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2006 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Philipp Vogt - * Brendan Eich - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-324650.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 324650; -var summary = 'Switch Statement with many cases'; -var actual = 'No Hang'; -var expect = 'No Hang'; - -printBugNumber(BUGNUMBER); -printStatus (summary); - -var notevil = "z1"; -var notevil2 = "z2"; -var notevil3 = "z3"; -var dut = 7; -var dut2 = 7; -var dut3 = 7; - -/* shouldn't be evil */ - -switch ( notevil ) { -case "z1": dut = 2; - break; -case "z2": - notevil = (notevil + 2)/2; - break; -case "z3": - notevil = (notevil + 3)/2; - break; -case "z4": - notevil = (notevil + 4)/2; - break; -case "z5": - notevil = (notevil + 5)/2; - break; -case "z6": - notevil = (notevil + 6)/2; - break; -case "z7": - notevil = (notevil + 7)/2; - break; -case "z8": - notevil = (notevil + 8)/2; - break; -case "z9": - notevil = (notevil + 9)/2; - break; -case "z10": - notevil = (notevil + 10)/2; - break; -case "z11": - notevil = (notevil + 11)/2; - break; -case "z12": - notevil = (notevil + 12)/2; - break; -case "z13": - notevil = (notevil + 13)/2; - break; -case "z14": - notevil = (notevil + 14)/2; - break; -case "z15": - notevil = (notevil + 15)/2; - break; -case "z16": - notevil = (notevil + 16)/2; - break; -case "z17": - notevil = (notevil + 17)/2; - break; -case "z18": - notevil = (notevil + 18)/2; - break; -case "z19": - notevil = (notevil + 19)/2; - break; -case "z20": - notevil = (notevil + 20)/2; - break; -case "z21": - notevil = (notevil + 21)/2; - break; -case "z22": - notevil = (notevil + 22)/2; - break; -case "z23": - notevil = (notevil + 23)/2; - break; -case "z24": - notevil = (notevil + 24)/2; - break; -case "z25": - notevil = (notevil + 25)/2; - break; -case "z26": - notevil = (notevil + 26)/2; - break; -case "z27": - notevil = (notevil + 27)/2; - break; -case "z28": - notevil = (notevil + 28)/2; - break; -case "z29": - notevil = (notevil + 29)/2; - break; -case "z30": - notevil = (notevil + 30)/2; - break; -case "z31": - notevil = (notevil + 31)/2; - break; -case "z32": - notevil = (notevil + 32)/2; - break; -case "z33": - notevil = (notevil + 33)/2; - break; -case "z34": - notevil = (notevil + 34)/2; - break; -case "z35": - notevil = (notevil + 35)/2; - break; -case "z36": - notevil = (notevil + 36)/2; - break; -case "z37": - notevil = (notevil + 37)/2; - break; -case "z38": - notevil = (notevil + 38)/2; - break; -case "z39": - notevil = (notevil + 39)/2; - break; -case "z40": - notevil = (notevil + 40)/2; - break; -case "z41": - notevil = (notevil + 41)/2; - break; -case "z42": - notevil = (notevil + 42)/2; - break; -case "z43": - notevil = (notevil + 43)/2; - break; -case "z44": - notevil = (notevil + 44)/2; - break; -case "z45": - notevil = (notevil + 45)/2; - break; -case "z46": - notevil = (notevil + 46)/2; - break; -case "z47": - notevil = (notevil + 47)/2; - break; -case "z48": - notevil = (notevil + 48)/2; - break; -case "z49": - notevil = (notevil + 49)/2; - break; -case "z50": - notevil = (notevil + 50)/2; - break; -case "z51": - notevil = (notevil + 51)/2; - break; -case "z52": - notevil = (notevil + 52)/2; - break; -case "z53": - notevil = (notevil + 53)/2; - break; -case "z54": - notevil = (notevil + 54)/2; - break; -case "z55": - notevil = (notevil + 55)/2; - break; -case "z56": - notevil = (notevil + 56)/2; - break; -case "z57": - notevil = (notevil + 57)/2; - break; -case "z58": - notevil = (notevil + 58)/2; - break; -case "z59": - notevil = (notevil + 59)/2; - break; -case "z60": - notevil = (notevil + 60)/2; - break; -case "z61": - notevil = (notevil + 61)/2; - break; -case "z62": - notevil = (notevil + 62)/2; - break; -case "z63": - notevil = (notevil + 63)/2; - break; -case "z64": - notevil = (notevil + 64)/2; - break; -case "z65": - notevil = (notevil + 65)/2; - break; -case "z66": - notevil = (notevil + 66)/2; - break; -case "z67": - notevil = (notevil + 67)/2; - break; -case "z68": - notevil = (notevil + 68)/2; - break; -case "z69": - notevil = (notevil + 69)/2; - break; -case "z70": - notevil = (notevil + 70)/2; - break; -case "z71": - notevil = (notevil + 71)/2; - break; -case "z72": - notevil = (notevil + 72)/2; - break; -case "z73": - notevil = (notevil + 73)/2; - break; -case "z74": - notevil = (notevil + 74)/2; - break; -case "z75": - notevil = (notevil + 75)/2; - break; -case "z76": - notevil = (notevil + 76)/2; - break; -case "z77": - notevil = (notevil + 77)/2; - break; -case "z78": - notevil = (notevil + 78)/2; - break; -case "z79": - notevil = (notevil + 79)/2; - break; -case "z80": - notevil = (notevil + 80)/2; - break; -case "z81": - notevil = (notevil + 81)/2; - break; -case "z82": - notevil = (notevil + 82)/2; - break; -case "z83": - notevil = (notevil + 83)/2; - break; -case "z84": - notevil = (notevil + 84)/2; - break; -case "z85": - notevil = (notevil + 85)/2; - break; -case "z86": - notevil = (notevil + 86)/2; - break; -case "z87": - notevil = (notevil + 87)/2; - break; -case "z88": - notevil = (notevil + 88)/2; - break; -case "z89": - notevil = (notevil + 89)/2; - break; -case "z90": - notevil = (notevil + 90)/2; - break; -case "z91": - notevil = (notevil + 91)/2; - break; -case "z92": - notevil = (notevil + 92)/2; - break; -case "z93": - notevil = (notevil + 93)/2; - break; -case "z94": - notevil = (notevil + 94)/2; - break; -case "z95": - notevil = (notevil + 95)/2; - break; -case "z96": - notevil = (notevil + 96)/2; - break; -case "z97": - notevil = (notevil + 97)/2; - break; -case "z98": - notevil = (notevil + 98)/2; - break; -case "z99": - notevil = (notevil + 99)/2; - break; -case "z100": - notevil = (notevil + 100)/2; - break; -case "z101": - notevil = (notevil + 101)/2; - break; -case "z102": - notevil = (notevil + 102)/2; - break; -case "z103": - notevil = (notevil + 103)/2; - break; -case "z104": - notevil = (notevil + 104)/2; - break; -case "z105": - notevil = (notevil + 105)/2; - break; -case "z106": - notevil = (notevil + 106)/2; - break; -case "z107": - notevil = (notevil + 107)/2; - break; -case "z108": - notevil = (notevil + 108)/2; - break; -case "z109": - notevil = (notevil + 109)/2; - break; -case "z110": - notevil = (notevil + 110)/2; - break; -case "z111": - notevil = (notevil + 111)/2; - break; -case "z112": - notevil = (notevil + 112)/2; - break; -case "z113": - notevil = (notevil + 113)/2; - break; -case "z114": - notevil = (notevil + 114)/2; - break; -case "z115": - notevil = (notevil + 115)/2; - break; -case "z116": - notevil = (notevil + 116)/2; - break; -case "z117": - notevil = (notevil + 117)/2; - break; -case "z118": - notevil = (notevil + 118)/2; - break; -case "z119": - notevil = (notevil + 119)/2; - break; -case "z120": - notevil = (notevil + 120)/2; - break; -case "z121": - notevil = (notevil + 121)/2; - break; -case "z122": - notevil = (notevil + 122)/2; - break; -case "z123": - notevil = (notevil + 123)/2; - break; -case "z124": - notevil = (notevil + 124)/2; - break; -case "z125": - notevil = (notevil + 125)/2; - break; -case "z126": - notevil = (notevil + 126)/2; - break; -case "z127": - notevil = (notevil + 127)/2; - break; -case "z128": - notevil = (notevil + 128)/2; - break; -case "z129": - notevil = (notevil + 129)/2; - break; -case "z130": - notevil = (notevil + 130)/2; - break; -case "z131": - notevil = (notevil + 131)/2; - break; -case "z132": - notevil = (notevil + 132)/2; - break; -case "z133": - notevil = (notevil + 133)/2; - break; -case "z134": - notevil = (notevil + 134)/2; - break; -case "z135": - notevil = (notevil + 135)/2; - break; -case "z136": - notevil = (notevil + 136)/2; - break; -case "z137": - notevil = (notevil + 137)/2; - break; -case "z138": - notevil = (notevil + 138)/2; - break; -case "z139": - notevil = (notevil + 139)/2; - break; -case "z140": - notevil = (notevil + 140)/2; - break; -case "z141": - notevil = (notevil + 141)/2; - break; -case "z142": - notevil = (notevil + 142)/2; - break; -case "z143": - notevil = (notevil + 143)/2; - break; -case "z144": - notevil = (notevil + 144)/2; - break; -case "z145": - notevil = (notevil + 145)/2; - break; -case "z146": - notevil = (notevil + 146)/2; - break; -case "z147": - notevil = (notevil + 147)/2; - break; -case "z148": - notevil = (notevil + 148)/2; - break; -case "z149": - notevil = (notevil + 149)/2; - break; -case "z150": - notevil = (notevil + 150)/2; - break; -case "z151": - notevil = (notevil + 151)/2; - break; -case "z152": - notevil = (notevil + 152)/2; - break; -case "z153": - notevil = (notevil + 153)/2; - break; -case "z154": - notevil = (notevil + 154)/2; - break; -case "z155": - notevil = (notevil + 155)/2; - break; -case "z156": - notevil = (notevil + 156)/2; - break; -case "z157": - notevil = (notevil + 157)/2; - break; -case "z158": - notevil = (notevil + 158)/2; - break; -case "z159": - notevil = (notevil + 159)/2; - break; -case "z160": - notevil = (notevil + 160)/2; - break; -case "z161": - notevil = (notevil + 161)/2; - break; -case "z162": - notevil = (notevil + 162)/2; - break; -case "z163": - notevil = (notevil + 163)/2; - break; -case "z164": - notevil = (notevil + 164)/2; - break; -case "z165": - notevil = (notevil + 165)/2; - break; -case "z166": - notevil = (notevil + 166)/2; - break; -case "z167": - notevil = (notevil + 167)/2; - break; -case "z168": - notevil = (notevil + 168)/2; - break; -case "z169": - notevil = (notevil + 169)/2; - break; -case "z170": - notevil = (notevil + 170)/2; - break; -case "z171": - notevil = (notevil + 171)/2; - break; -case "z172": - notevil = (notevil + 172)/2; - break; -case "z173": - notevil = (notevil + 173)/2; - break; -case "z174": - notevil = (notevil + 174)/2; - break; -case "z175": - notevil = (notevil + 175)/2; - break; -case "z176": - notevil = (notevil + 176)/2; - break; -case "z177": - notevil = (notevil + 177)/2; - break; -case "z178": - notevil = (notevil + 178)/2; - break; -case "z179": - notevil = (notevil + 179)/2; - break; -case "z180": - notevil = (notevil + 180)/2; - break; -case "z181": - notevil = (notevil + 181)/2; - break; -case "z182": - notevil = (notevil + 182)/2; - break; -case "z183": - notevil = (notevil + 183)/2; - break; -case "z184": - notevil = (notevil + 184)/2; - break; -case "z185": - notevil = (notevil + 185)/2; - break; -case "z186": - notevil = (notevil + 186)/2; - break; -case "z187": - notevil = (notevil + 187)/2; - break; -case "z188": - notevil = (notevil + 188)/2; - break; -case "z189": - notevil = (notevil + 189)/2; - break; -case "z190": - notevil = (notevil + 190)/2; - break; -case "z191": - notevil = (notevil + 191)/2; - break; -case "z192": - notevil = (notevil + 192)/2; - break; -case "z193": - notevil = (notevil + 193)/2; - break; -case "z194": - notevil = (notevil + 194)/2; - break; -case "z195": - notevil = (notevil + 195)/2; - break; -case "z196": - notevil = (notevil + 196)/2; - break; -case "z197": - notevil = (notevil + 197)/2; - break; -case "z198": - notevil = (notevil + 198)/2; - break; -case "z199": - notevil = (notevil + 199)/2; - break; -case "z200": - notevil = (notevil + 200)/2; - break; -case "z201": - notevil = (notevil + 201)/2; - break; -case "z202": - notevil = (notevil + 202)/2; - break; -case "z203": - notevil = (notevil + 203)/2; - break; -case "z204": - notevil = (notevil + 204)/2; - break; -case "z205": - notevil = (notevil + 205)/2; - break; -case "z206": - notevil = (notevil + 206)/2; - break; -case "z207": - notevil = (notevil + 207)/2; - break; -case "z208": - notevil = (notevil + 208)/2; - break; -case "z209": - notevil = (notevil + 209)/2; - break; -case "z210": - notevil = (notevil + 210)/2; - break; -case "z211": - notevil = (notevil + 211)/2; - break; -case "z212": - notevil = (notevil + 212)/2; - break; -case "z213": - notevil = (notevil + 213)/2; - break; -case "z214": - notevil = (notevil + 214)/2; - break; -case "z215": - notevil = (notevil + 215)/2; - break; -case "z216": - notevil = (notevil + 216)/2; - break; -case "z217": - notevil = (notevil + 217)/2; - break; -case "z218": - notevil = (notevil + 218)/2; - break; -case "z219": - notevil = (notevil + 219)/2; - break; -case "z220": - notevil = (notevil + 220)/2; - break; -case "z221": - notevil = (notevil + 221)/2; - break; -case "z222": - notevil = (notevil + 222)/2; - break; -case "z223": - notevil = (notevil + 223)/2; - break; -case "z224": - notevil = (notevil + 224)/2; - break; -case "z225": - notevil = (notevil + 225)/2; - break; -case "z226": - notevil = (notevil + 226)/2; - break; -case "z227": - notevil = (notevil + 227)/2; - break; -case "z228": - notevil = (notevil + 228)/2; - break; -case "z229": - notevil = (notevil + 229)/2; - break; -case "z230": - notevil = (notevil + 230)/2; - break; -case "z231": - notevil = (notevil + 231)/2; - break; -case "z232": - notevil = (notevil + 232)/2; - break; -case "z233": - notevil = (notevil + 233)/2; - break; -case "z234": - notevil = (notevil + 234)/2; - break; -case "z235": - notevil = (notevil + 235)/2; - break; -case "z236": - notevil = (notevil + 236)/2; - break; -case "z237": - notevil = (notevil + 237)/2; - break; -case "z238": - notevil = (notevil + 238)/2; - break; -case "z239": - notevil = (notevil + 239)/2; - break; -case "z240": - notevil = (notevil + 240)/2; - break; -case "z241": - notevil = (notevil + 241)/2; - break; -case "z242": - notevil = (notevil + 242)/2; - break; -case "z243": - notevil = (notevil + 243)/2; - break; -case "z244": - notevil = (notevil + 244)/2; - break; -case "z245": - notevil = (notevil + 245)/2; - break; -case "z246": - notevil = (notevil + 246)/2; - break; -case "z247": - notevil = (notevil + 247)/2; - break; -case "z248": - notevil = (notevil + 248)/2; - break; -case "z249": - notevil = (notevil + 249)/2; - break; -case "z250": - notevil = (notevil + 250)/2; - break; -case "z251": - notevil = (notevil + 251)/2; - break; -case "z252": - notevil = (notevil + 252)/2; - break; -case "z253": - notevil = (notevil + 253)/2; - break; -case "z254": - notevil = (notevil + 254)/2; - break; -case "z255": - notevil = (notevil + 255)/2; - break; -case "z256": - notevil = (notevil + 256)/2; - break; -case "z257": - notevil = (notevil + 257)/2; - break; -case "z258": - notevil = (notevil + 258)/2; - break; -case "z259": - notevil = (notevil + 259)/2; - break; -case "z260": - notevil = (notevil + 260)/2; - break; -case "z261": - notevil = (notevil + 261)/2; - break; -case "z262": - notevil = (notevil + 262)/2; - break; -case "z263": - notevil = (notevil + 263)/2; - break; -case "z264": - notevil = (notevil + 264)/2; - break; -case "z265": - notevil = (notevil + 265)/2; - break; -case "z266": - notevil = (notevil + 266)/2; - break; -case "z267": - notevil = (notevil + 267)/2; - break; -case "z268": - notevil = (notevil + 268)/2; - break; -case "z269": - notevil = (notevil + 269)/2; - break; -case "z270": - notevil = (notevil + 270)/2; - break; -case "z271": - notevil = (notevil + 271)/2; - break; -case "z272": - notevil = (notevil + 272)/2; - break; -case "z273": - notevil = (notevil + 273)/2; - break; -case "z274": - notevil = (notevil + 274)/2; - break; -case "z275": - notevil = (notevil + 275)/2; - break; -case "z276": - notevil = (notevil + 276)/2; - break; -case "z277": - notevil = (notevil + 277)/2; - break; -case "z278": - notevil = (notevil + 278)/2; - break; -case "z279": - notevil = (notevil + 279)/2; - break; -case "z280": - notevil = (notevil + 280)/2; - break; -case "z281": - notevil = (notevil + 281)/2; - break; -case "z282": - notevil = (notevil + 282)/2; - break; -case "z283": - notevil = (notevil + 283)/2; - break; -case "z284": - notevil = (notevil + 284)/2; - break; -case "z285": - notevil = (notevil + 285)/2; - break; -case "z286": - notevil = (notevil + 286)/2; - break; -case "z287": - notevil = (notevil + 287)/2; - break; -case "z288": - notevil = (notevil + 288)/2; - break; -case "z289": - notevil = (notevil + 289)/2; - break; -case "z290": - notevil = (notevil + 290)/2; - break; -case "z291": - notevil = (notevil + 291)/2; - break; -case "z292": - notevil = (notevil + 292)/2; - break; -case "z293": - notevil = (notevil + 293)/2; - break; -case "z294": - notevil = (notevil + 294)/2; - break; -case "z295": - notevil = (notevil + 295)/2; - break; -case "z296": - notevil = (notevil + 296)/2; - break; -case "z297": - notevil = (notevil + 297)/2; - break; -case "z298": - notevil = (notevil + 298)/2; - break; -case "z299": - notevil = (notevil + 299)/2; - break; -case "z300": - notevil = (notevil + 300)/2; - break; -case "z301": - notevil = (notevil + 301)/2; - break; -case "z302": - notevil = (notevil + 302)/2; - break; -case "z303": - notevil = (notevil + 303)/2; - break; -case "z304": - notevil = (notevil + 304)/2; - break; -case "z305": - notevil = (notevil + 305)/2; - break; -case "z306": - notevil = (notevil + 306)/2; - break; -case "z307": - notevil = (notevil + 307)/2; - break; -case "z308": - notevil = (notevil + 308)/2; - break; -case "z309": - notevil = (notevil + 309)/2; - break; -case "z310": - notevil = (notevil + 310)/2; - break; -case "z311": - notevil = (notevil + 311)/2; - break; -case "z312": - notevil = (notevil + 312)/2; - break; -case "z313": - notevil = (notevil + 313)/2; - break; -case "z314": - notevil = (notevil + 314)/2; - break; -case "z315": - notevil = (notevil + 315)/2; - break; -case "z316": - notevil = (notevil + 316)/2; - break; -case "z317": - notevil = (notevil + 317)/2; - break; -case "z318": - notevil = (notevil + 318)/2; - break; -case "z319": - notevil = (notevil + 319)/2; - break; -case "z320": - notevil = (notevil + 320)/2; - break; -case "z321": - notevil = (notevil + 321)/2; - break; -case "z322": - notevil = (notevil + 322)/2; - break; -case "z323": - notevil = (notevil + 323)/2; - break; -case "z324": - notevil = (notevil + 324)/2; - break; -case "z325": - notevil = (notevil + 325)/2; - break; -case "z326": - notevil = (notevil + 326)/2; - break; -case "z327": - notevil = (notevil + 327)/2; - break; -case "z328": - notevil = (notevil + 328)/2; - break; -case "z329": - notevil = (notevil + 329)/2; - break; -case "z330": - notevil = (notevil + 330)/2; - break; -case "z331": - notevil = (notevil + 331)/2; - break; -case "z332": - notevil = (notevil + 332)/2; - break; -case "z333": - notevil = (notevil + 333)/2; - break; -case "z334": - notevil = (notevil + 334)/2; - break; -case "z335": - notevil = (notevil + 335)/2; - break; -case "z336": - notevil = (notevil + 336)/2; - break; -case "z337": - notevil = (notevil + 337)/2; - break; -case "z338": - notevil = (notevil + 338)/2; - break; -case "z339": - notevil = (notevil + 339)/2; - break; -case "z340": - notevil = (notevil + 340)/2; - break; -case "z341": - notevil = (notevil + 341)/2; - break; -case "z342": - notevil = (notevil + 342)/2; - break; -case "z343": - notevil = (notevil + 343)/2; - break; -case "z344": - notevil = (notevil + 344)/2; - break; -case "z345": - notevil = (notevil + 345)/2; - break; -case "z346": - notevil = (notevil + 346)/2; - break; -case "z347": - notevil = (notevil + 347)/2; - break; -case "z348": - notevil = (notevil + 348)/2; - break; -case "z349": - notevil = (notevil + 349)/2; - break; -case "z350": - notevil = (notevil + 350)/2; - break; -case "z351": - notevil = (notevil + 351)/2; - break; -case "z352": - notevil = (notevil + 352)/2; - break; -case "z353": - notevil = (notevil + 353)/2; - break; -case "z354": - notevil = (notevil + 354)/2; - break; -case "z355": - notevil = (notevil + 355)/2; - break; -case "z356": - notevil = (notevil + 356)/2; - break; -case "z357": - notevil = (notevil + 357)/2; - break; -case "z358": - notevil = (notevil + 358)/2; - break; -case "z359": - notevil = (notevil + 359)/2; - break; -case "z360": - notevil = (notevil + 360)/2; - break; -case "z361": - notevil = (notevil + 361)/2; - break; -case "z362": - notevil = (notevil + 362)/2; - break; -case "z363": - notevil = (notevil + 363)/2; - break; -case "z364": - notevil = (notevil + 364)/2; - break; -case "z365": - notevil = (notevil + 365)/2; - break; -case "z366": - notevil = (notevil + 366)/2; - break; -case "z367": - notevil = (notevil + 367)/2; - break; -case "z368": - notevil = (notevil + 368)/2; - break; -case "z369": - notevil = (notevil + 369)/2; - break; -case "z370": - notevil = (notevil + 370)/2; - break; -case "z371": - notevil = (notevil + 371)/2; - break; -case "z372": - notevil = (notevil + 372)/2; - break; -case "z373": - notevil = (notevil + 373)/2; - break; -case "z374": - notevil = (notevil + 374)/2; - break; -case "z375": - notevil = (notevil + 375)/2; - break; -case "z376": - notevil = (notevil + 376)/2; - break; -case "z377": - notevil = (notevil + 377)/2; - break; -case "z378": - notevil = (notevil + 378)/2; - break; -case "z379": - notevil = (notevil + 379)/2; - break; -case "z380": - notevil = (notevil + 380)/2; - break; -case "z381": - notevil = (notevil + 381)/2; - break; -case "z382": - notevil = (notevil + 382)/2; - break; -case "z383": - notevil = (notevil + 383)/2; - break; -case "z384": - notevil = (notevil + 384)/2; - break; -case "z385": - notevil = (notevil + 385)/2; - break; -case "z386": - notevil = (notevil + 386)/2; - break; -case "z387": - notevil = (notevil + 387)/2; - break; -case "z388": - notevil = (notevil + 388)/2; - break; -case "z389": - notevil = (notevil + 389)/2; - break; -case "z390": - notevil = (notevil + 390)/2; - break; -case "z391": - notevil = (notevil + 391)/2; - break; -case "z392": - notevil = (notevil + 392)/2; - break; -case "z393": - notevil = (notevil + 393)/2; - break; -case "z394": - notevil = (notevil + 394)/2; - break; -case "z395": - notevil = (notevil + 395)/2; - break; -case "z396": - notevil = (notevil + 396)/2; - break; -case "z397": - notevil = (notevil + 397)/2; - break; -case "z398": - notevil = (notevil + 398)/2; - break; -case "z399": - notevil = (notevil + 399)/2; - break; -case "z400": - notevil = (notevil + 400)/2; - break; -case "z401": - notevil = (notevil + 401)/2; - break; -case "z402": - notevil = (notevil + 402)/2; - break; -case "z403": - notevil = (notevil + 403)/2; - break; -case "z404": - notevil = (notevil + 404)/2; - break; -case "z405": - notevil = (notevil + 405)/2; - break; -case "z406": - notevil = (notevil + 406)/2; - break; -case "z407": - notevil = (notevil + 407)/2; - break; -case "z408": - notevil = (notevil + 408)/2; - break; -case "z409": - notevil = (notevil + 409)/2; - break; -case "z410": - notevil = (notevil + 410)/2; - break; -case "z411": - notevil = (notevil + 411)/2; - break; -case "z412": - notevil = (notevil + 412)/2; - break; -case "z413": - notevil = (notevil + 413)/2; - break; -case "z414": - notevil = (notevil + 414)/2; - break; -case "z415": - notevil = (notevil + 415)/2; - break; -case "z416": - notevil = (notevil + 416)/2; - break; -case "z417": - notevil = (notevil + 417)/2; - break; -case "z418": - notevil = (notevil + 418)/2; - break; -case "z419": - notevil = (notevil + 419)/2; - break; -case "z420": - notevil = (notevil + 420)/2; - break; -case "z421": - notevil = (notevil + 421)/2; - break; -case "z422": - notevil = (notevil + 422)/2; - break; -case "z423": - notevil = (notevil + 423)/2; - break; -case "z424": - notevil = (notevil + 424)/2; - break; -case "z425": - notevil = (notevil + 425)/2; - break; -case "z426": - notevil = (notevil + 426)/2; - break; -case "z427": - notevil = (notevil + 427)/2; - break; -case "z428": - notevil = (notevil + 428)/2; - break; -case "z429": - notevil = (notevil + 429)/2; - break; -case "z430": - notevil = (notevil + 430)/2; - break; -case "z431": - notevil = (notevil + 431)/2; - break; -case "z432": - notevil = (notevil + 432)/2; - break; -case "z433": - notevil = (notevil + 433)/2; - break; -case "z434": - notevil = (notevil + 434)/2; - break; -case "z435": - notevil = (notevil + 435)/2; - break; -case "z436": - notevil = (notevil + 436)/2; - break; -case "z437": - notevil = (notevil + 437)/2; - break; -case "z438": - notevil = (notevil + 438)/2; - break; -case "z439": - notevil = (notevil + 439)/2; - break; -case "z440": - notevil = (notevil + 440)/2; - break; -case "z441": - notevil = (notevil + 441)/2; - break; -case "z442": - notevil = (notevil + 442)/2; - break; -case "z443": - notevil = (notevil + 443)/2; - break; -case "z444": - notevil = (notevil + 444)/2; - break; -case "z445": - notevil = (notevil + 445)/2; - break; -case "z446": - notevil = (notevil + 446)/2; - break; -case "z447": - notevil = (notevil + 447)/2; - break; -case "z448": - notevil = (notevil + 448)/2; - break; -case "z449": - notevil = (notevil + 449)/2; - break; -case "z450": - notevil = (notevil + 450)/2; - break; -case "z451": - notevil = (notevil + 451)/2; - break; -case "z452": - notevil = (notevil + 452)/2; - break; -case "z453": - notevil = (notevil + 453)/2; - break; -case "z454": - notevil = (notevil + 454)/2; - break; -case "z455": - notevil = (notevil + 455)/2; - break; -case "z456": - notevil = (notevil + 456)/2; - break; -case "z457": - notevil = (notevil + 457)/2; - break; -case "z458": - notevil = (notevil + 458)/2; - break; -case "z459": - notevil = (notevil + 459)/2; - break; -case "z460": - notevil = (notevil + 460)/2; - break; -case "z461": - notevil = (notevil + 461)/2; - break; -case "z462": - notevil = (notevil + 462)/2; - break; -case "z463": - notevil = (notevil + 463)/2; - break; -case "z464": - notevil = (notevil + 464)/2; - break; -case "z465": - notevil = (notevil + 465)/2; - break; -case "z466": - notevil = (notevil + 466)/2; - break; -case "z467": - notevil = (notevil + 467)/2; - break; -case "z468": - notevil = (notevil + 468)/2; - break; -case "z469": - notevil = (notevil + 469)/2; - break; -case "z470": - notevil = (notevil + 470)/2; - break; -case "z471": - notevil = (notevil + 471)/2; - break; -case "z472": - notevil = (notevil + 472)/2; - break; -case "z473": - notevil = (notevil + 473)/2; - break; -case "z474": - notevil = (notevil + 474)/2; - break; -case "z475": - notevil = (notevil + 475)/2; - break; -case "z476": - notevil = (notevil + 476)/2; - break; -case "z477": - notevil = (notevil + 477)/2; - break; -case "z478": - notevil = (notevil + 478)/2; - break; -case "z479": - notevil = (notevil + 479)/2; - break; -case "z480": - notevil = (notevil + 480)/2; - break; -case "z481": - notevil = (notevil + 481)/2; - break; -case "z482": - notevil = (notevil + 482)/2; - break; -case "z483": - notevil = (notevil + 483)/2; - break; -case "z484": - notevil = (notevil + 484)/2; - break; -case "z485": - notevil = (notevil + 485)/2; - break; -case "z486": - notevil = (notevil + 486)/2; - break; -case "z487": - notevil = (notevil + 487)/2; - break; -case "z488": - notevil = (notevil + 488)/2; - break; -case "z489": - notevil = (notevil + 489)/2; - break; -case "z490": - notevil = (notevil + 490)/2; - break; -case "z491": - notevil = (notevil + 491)/2; - break; -case "z492": - notevil = (notevil + 492)/2; - break; -case "z493": - notevil = (notevil + 493)/2; - break; -case "z494": - notevil = (notevil + 494)/2; - break; -case "z495": - notevil = (notevil + 495)/2; - break; -case "z496": - notevil = (notevil + 496)/2; - break; -case "z497": - notevil = (notevil + 497)/2; - break; -case "z498": - notevil = (notevil + 498)/2; - break; -case "z499": - notevil = (notevil + 499)/2; - break; -case "z500": - notevil = (notevil + 500)/2; - break; -case "z501": - notevil = (notevil + 501)/2; - break; -case "z502": - notevil = (notevil + 502)/2; - break; -case "z503": - notevil = (notevil + 503)/2; - break; -case "z504": - notevil = (notevil + 504)/2; - break; -case "z505": - notevil = (notevil + 505)/2; - break; -case "z506": - notevil = (notevil + 506)/2; - break; -case "z507": - notevil = (notevil + 507)/2; - break; -case "z508": - notevil = (notevil + 508)/2; - break; -case "z509": - notevil = (notevil + 509)/2; - break; -case "z510": - notevil = (notevil + 510)/2; - break; -case "z511": - notevil = (notevil + 511)/2; - break; -case "z512": - notevil = (notevil + 512)/2; - break; -case "z513": - notevil = (notevil + 513)/2; - break; -case "z514": - notevil = (notevil + 514)/2; - break; -case "z515": - notevil = (notevil + 515)/2; - break; -case "z516": - notevil = (notevil + 516)/2; - break; -case "z517": - notevil = (notevil + 517)/2; - break; -case "z518": - notevil = (notevil + 518)/2; - break; -case "z519": - notevil = (notevil + 519)/2; - break; -case "z520": - notevil = (notevil + 520)/2; - break; -case "z521": - notevil = (notevil + 521)/2; - break; -case "z522": - notevil = (notevil + 522)/2; - break; -case "z523": - notevil = (notevil + 523)/2; - break; -case "z524": - notevil = (notevil + 524)/2; - break; -case "z525": - notevil = (notevil + 525)/2; - break; -case "z526": - notevil = (notevil + 526)/2; - break; -case "z527": - notevil = (notevil + 527)/2; - break; -case "z528": - notevil = (notevil + 528)/2; - break; -case "z529": - notevil = (notevil + 529)/2; - break; -case "z530": - notevil = (notevil + 530)/2; - break; -case "z531": - notevil = (notevil + 531)/2; - break; -case "z532": - notevil = (notevil + 532)/2; - break; -case "z533": - notevil = (notevil + 533)/2; - break; -case "z534": - notevil = (notevil + 534)/2; - break; -case "z535": - notevil = (notevil + 535)/2; - break; -case "z536": - notevil = (notevil + 536)/2; - break; -case "z537": - notevil = (notevil + 537)/2; - break; -case "z538": - notevil = (notevil + 538)/2; - break; -case "z539": - notevil = (notevil + 539)/2; - break; -case "z540": - notevil = (notevil + 540)/2; - break; -case "z541": - notevil = (notevil + 541)/2; - break; -case "z542": - notevil = (notevil + 542)/2; - break; -case "z543": - notevil = (notevil + 543)/2; - break; -case "z544": - notevil = (notevil + 544)/2; - break; -case "z545": - notevil = (notevil + 545)/2; - break; -case "z546": - notevil = (notevil + 546)/2; - break; -case "z547": - notevil = (notevil + 547)/2; - break; -case "z548": - notevil = (notevil + 548)/2; - break; -case "z549": - notevil = (notevil + 549)/2; - break; -case "z550": - notevil = (notevil + 550)/2; - break; -case "z551": - notevil = (notevil + 551)/2; - break; -case "z552": - notevil = (notevil + 552)/2; - break; -case "z553": - notevil = (notevil + 553)/2; - break; -case "z554": - notevil = (notevil + 554)/2; - break; -case "z555": - notevil = (notevil + 555)/2; - break; -case "z556": - notevil = (notevil + 556)/2; - break; -case "z557": - notevil = (notevil + 557)/2; - break; -case "z558": - notevil = (notevil + 558)/2; - break; -case "z559": - notevil = (notevil + 559)/2; - break; -case "z560": - notevil = (notevil + 560)/2; - break; -case "z561": - notevil = (notevil + 561)/2; - break; -case "z562": - notevil = (notevil + 562)/2; - break; -case "z563": - notevil = (notevil + 563)/2; - break; -case "z564": - notevil = (notevil + 564)/2; - break; -case "z565": - notevil = (notevil + 565)/2; - break; -case "z566": - notevil = (notevil + 566)/2; - break; -case "z567": - notevil = (notevil + 567)/2; - break; -case "z568": - notevil = (notevil + 568)/2; - break; -case "z569": - notevil = (notevil + 569)/2; - break; -case "z570": - notevil = (notevil + 570)/2; - break; -case "z571": - notevil = (notevil + 571)/2; - break; -case "z572": - notevil = (notevil + 572)/2; - break; -case "z573": - notevil = (notevil + 573)/2; - break; -case "z574": - notevil = (notevil + 574)/2; - break; -case "z575": - notevil = (notevil + 575)/2; - break; -case "z576": - notevil = (notevil + 576)/2; - break; -case "z577": - notevil = (notevil + 577)/2; - break; -case "z578": - notevil = (notevil + 578)/2; - break; -case "z579": - notevil = (notevil + 579)/2; - break; -case "z580": - notevil = (notevil + 580)/2; - break; -case "z581": - notevil = (notevil + 581)/2; - break; -case "z582": - notevil = (notevil + 582)/2; - break; -case "z583": - notevil = (notevil + 583)/2; - break; -case "z584": - notevil = (notevil + 584)/2; - break; -case "z585": - notevil = (notevil + 585)/2; - break; -case "z586": - notevil = (notevil + 586)/2; - break; -case "z587": - notevil = (notevil + 587)/2; - break; -case "z588": - notevil = (notevil + 588)/2; - break; -case "z589": - notevil = (notevil + 589)/2; - break; -case "z590": - notevil = (notevil + 590)/2; - break; -case "z591": - notevil = (notevil + 591)/2; - break; -case "z592": - notevil = (notevil + 592)/2; - break; -case "z593": - notevil = (notevil + 593)/2; - break; -case "z594": - notevil = (notevil + 594)/2; - break; -case "z595": - notevil = (notevil + 595)/2; - break; -case "z596": - notevil = (notevil + 596)/2; - break; -case "z597": - notevil = (notevil + 597)/2; - break; -case "z598": - notevil = (notevil + 598)/2; - break; -case "z599": - notevil = (notevil + 599)/2; - break; -case "z600": - notevil = (notevil + 600)/2; - break; -case "z601": - notevil = (notevil + 601)/2; - break; -case "z602": - notevil = (notevil + 602)/2; - break; -case "z603": - notevil = (notevil + 603)/2; - break; -case "z604": - notevil = (notevil + 604)/2; - break; -case "z605": - notevil = (notevil + 605)/2; - break; -case "z606": - notevil = (notevil + 606)/2; - break; -case "z607": - notevil = (notevil + 607)/2; - break; -case "z608": - notevil = (notevil + 608)/2; - break; -case "z609": - notevil = (notevil + 609)/2; - break; -case "z610": - notevil = (notevil + 610)/2; - break; -case "z611": - notevil = (notevil + 611)/2; - break; -case "z612": - notevil = (notevil + 612)/2; - break; -case "z613": - notevil = (notevil + 613)/2; - break; -case "z614": - notevil = (notevil + 614)/2; - break; -case "z615": - notevil = (notevil + 615)/2; - break; -case "z616": - notevil = (notevil + 616)/2; - break; -case "z617": - notevil = (notevil + 617)/2; - break; -case "z618": - notevil = (notevil + 618)/2; - break; -case "z619": - notevil = (notevil + 619)/2; - break; -case "z620": - notevil = (notevil + 620)/2; - break; -case "z621": - notevil = (notevil + 621)/2; - break; -case "z622": - notevil = (notevil + 622)/2; - break; -case "z623": - notevil = (notevil + 623)/2; - break; -case "z624": - notevil = (notevil + 624)/2; - break; -case "z625": - notevil = (notevil + 625)/2; - break; -case "z626": - notevil = (notevil + 626)/2; - break; -case "z627": - notevil = (notevil + 627)/2; - break; -case "z628": - notevil = (notevil + 628)/2; - break; -case "z629": - notevil = (notevil + 629)/2; - break; -case "z630": - notevil = (notevil + 630)/2; - break; -case "z631": - notevil = (notevil + 631)/2; - break; -case "z632": - notevil = (notevil + 632)/2; - break; -case "z633": - notevil = (notevil + 633)/2; - break; -case "z634": - notevil = (notevil + 634)/2; - break; -case "z635": - notevil = (notevil + 635)/2; - break; -case "z636": - notevil = (notevil + 636)/2; - break; -case "z637": - notevil = (notevil + 637)/2; - break; -case "z638": - notevil = (notevil + 638)/2; - break; -case "z639": - notevil = (notevil + 639)/2; - break; -case "z640": - notevil = (notevil + 640)/2; - break; -case "z641": - notevil = (notevil + 641)/2; - break; -case "z642": - notevil = (notevil + 642)/2; - break; -case "z643": - notevil = (notevil + 643)/2; - break; -case "z644": - notevil = (notevil + 644)/2; - break; -case "z645": - notevil = (notevil + 645)/2; - break; -case "z646": - notevil = (notevil + 646)/2; - break; -case "z647": - notevil = (notevil + 647)/2; - break; -case "z648": - notevil = (notevil + 648)/2; - break; -case "z649": - notevil = (notevil + 649)/2; - break; -case "z650": - notevil = (notevil + 650)/2; - break; -case "z651": - notevil = (notevil + 651)/2; - break; -case "z652": - notevil = (notevil + 652)/2; - break; -case "z653": - notevil = (notevil + 653)/2; - break; -case "z654": - notevil = (notevil + 654)/2; - break; -case "z655": - notevil = (notevil + 655)/2; - break; -case "z656": - notevil = (notevil + 656)/2; - break; -case "z657": - notevil = (notevil + 657)/2; - break; -case "z658": - notevil = (notevil + 658)/2; - break; -case "z659": - notevil = (notevil + 659)/2; - break; -case "z660": - notevil = (notevil + 660)/2; - break; -case "z661": - notevil = (notevil + 661)/2; - break; -case "z662": - notevil = (notevil + 662)/2; - break; -case "z663": - notevil = (notevil + 663)/2; - break; -case "z664": - notevil = (notevil + 664)/2; - break; -case "z665": - notevil = (notevil + 665)/2; - break; -case "z666": - notevil = (notevil + 666)/2; - break; -case "z667": - notevil = (notevil + 667)/2; - break; -case "z668": - notevil = (notevil + 668)/2; - break; -case "z669": - notevil = (notevil + 669)/2; - break; -case "z670": - notevil = (notevil + 670)/2; - break; -case "z671": - notevil = (notevil + 671)/2; - break; -case "z672": - notevil = (notevil + 672)/2; - break; -case "z673": - notevil = (notevil + 673)/2; - break; -case "z674": - notevil = (notevil + 674)/2; - break; -case "z675": - notevil = (notevil + 675)/2; - break; -case "z676": - notevil = (notevil + 676)/2; - break; -case "z677": - notevil = (notevil + 677)/2; - break; -case "z678": - notevil = (notevil + 678)/2; - break; -case "z679": - notevil = (notevil + 679)/2; - break; -case "z680": - notevil = (notevil + 680)/2; - break; -case "z681": - notevil = (notevil + 681)/2; - break; -case "z682": - notevil = (notevil + 682)/2; - break; -case "z683": - notevil = (notevil + 683)/2; - break; -case "z684": - notevil = (notevil + 684)/2; - break; -case "z685": - notevil = (notevil + 685)/2; - break; -case "z686": - notevil = (notevil + 686)/2; - break; -case "z687": - notevil = (notevil + 687)/2; - break; -case "z688": - notevil = (notevil + 688)/2; - break; -case "z689": - notevil = (notevil + 689)/2; - break; -case "z690": - notevil = (notevil + 690)/2; - break; -case "z691": - notevil = (notevil + 691)/2; - break; -case "z692": - notevil = (notevil + 692)/2; - break; -case "z693": - notevil = (notevil + 693)/2; - break; -case "z694": - notevil = (notevil + 694)/2; - break; -case "z695": - notevil = (notevil + 695)/2; - break; -case "z696": - notevil = (notevil + 696)/2; - break; -case "z697": - notevil = (notevil + 697)/2; - break; -case "z698": - notevil = (notevil + 698)/2; - break; -case "z699": - notevil = (notevil + 699)/2; - break; -case "z700": - notevil = (notevil + 700)/2; - break; -case "z701": - notevil = (notevil + 701)/2; - break; -case "z702": - notevil = (notevil + 702)/2; - break; -case "z703": - notevil = (notevil + 703)/2; - break; -case "z704": - notevil = (notevil + 704)/2; - break; -case "z705": - notevil = (notevil + 705)/2; - break; -case "z706": - notevil = (notevil + 706)/2; - break; -case "z707": - notevil = (notevil + 707)/2; - break; -case "z708": - notevil = (notevil + 708)/2; - break; -case "z709": - notevil = (notevil + 709)/2; - break; -case "z710": - notevil = (notevil + 710)/2; - break; -case "z711": - notevil = (notevil + 711)/2; - break; -case "z712": - notevil = (notevil + 712)/2; - break; -case "z713": - notevil = (notevil + 713)/2; - break; -case "z714": - notevil = (notevil + 714)/2; - break; -case "z715": - notevil = (notevil + 715)/2; - break; -case "z716": - notevil = (notevil + 716)/2; - break; -case "z717": - notevil = (notevil + 717)/2; - break; -case "z718": - notevil = (notevil + 718)/2; - break; -case "z719": - notevil = (notevil + 719)/2; - break; -case "z720": - notevil = (notevil + 720)/2; - break; -case "z721": - notevil = (notevil + 721)/2; - break; -case "z722": - notevil = (notevil + 722)/2; - break; -case "z723": - notevil = (notevil + 723)/2; - break; -case "z724": - notevil = (notevil + 724)/2; - break; -case "z725": - notevil = (notevil + 725)/2; - break; -case "z726": - notevil = (notevil + 726)/2; - break; -case "z727": - notevil = (notevil + 727)/2; - break; -case "z728": - notevil = (notevil + 728)/2; - break; -case "z729": - notevil = (notevil + 729)/2; - break; -case "z730": - notevil = (notevil + 730)/2; - break; -case "z731": - notevil = (notevil + 731)/2; - break; -case "z732": - notevil = (notevil + 732)/2; - break; -case "z733": - notevil = (notevil + 733)/2; - break; -case "z734": - notevil = (notevil + 734)/2; - break; -case "z735": - notevil = (notevil + 735)/2; - break; -case "z736": - notevil = (notevil + 736)/2; - break; -case "z737": - notevil = (notevil + 737)/2; - break; -case "z738": - notevil = (notevil + 738)/2; - break; -case "z739": - notevil = (notevil + 739)/2; - break; -case "z740": - notevil = (notevil + 740)/2; - break; -case "z741": - notevil = (notevil + 741)/2; - break; -case "z742": - notevil = (notevil + 742)/2; - break; -case "z743": - notevil = (notevil + 743)/2; - break; -case "z744": - notevil = (notevil + 744)/2; - break; -case "z745": - notevil = (notevil + 745)/2; - break; -case "z746": - notevil = (notevil + 746)/2; - break; -case "z747": - notevil = (notevil + 747)/2; - break; -case "z748": - notevil = (notevil + 748)/2; - break; -case "z749": - notevil = (notevil + 749)/2; - break; -case "z750": - notevil = (notevil + 750)/2; - break; -case "z751": - notevil = (notevil + 751)/2; - break; -case "z752": - notevil = (notevil + 752)/2; - break; -case "z753": - notevil = (notevil + 753)/2; - break; -case "z754": - notevil = (notevil + 754)/2; - break; -case "z755": - notevil = (notevil + 755)/2; - break; -case "z756": - notevil = (notevil + 756)/2; - break; -case "z757": - notevil = (notevil + 757)/2; - break; -case "z758": - notevil = (notevil + 758)/2; - break; -case "z759": - notevil = (notevil + 759)/2; - break; -case "z760": - notevil = (notevil + 760)/2; - break; -case "z761": - notevil = (notevil + 761)/2; - break; -case "z762": - notevil = (notevil + 762)/2; - break; -case "z763": - notevil = (notevil + 763)/2; - break; -case "z764": - notevil = (notevil + 764)/2; - break; -case "z765": - notevil = (notevil + 765)/2; - break; -case "z766": - notevil = (notevil + 766)/2; - break; -case "z767": - notevil = (notevil + 767)/2; - break; -case "z768": - notevil = (notevil + 768)/2; - break; -case "z769": - notevil = (notevil + 769)/2; - break; -case "z770": - notevil = (notevil + 770)/2; - break; -case "z771": - notevil = (notevil + 771)/2; - break; -case "z772": - notevil = (notevil + 772)/2; - break; -case "z773": - notevil = (notevil + 773)/2; - break; -case "z774": - notevil = (notevil + 774)/2; - break; -case "z775": - notevil = (notevil + 775)/2; - break; -case "z776": - notevil = (notevil + 776)/2; - break; -case "z777": - notevil = (notevil + 777)/2; - break; -case "z778": - notevil = (notevil + 778)/2; - break; -case "z779": - notevil = (notevil + 779)/2; - break; -case "z780": - notevil = (notevil + 780)/2; - break; -case "z781": - notevil = (notevil + 781)/2; - break; -case "z782": - notevil = (notevil + 782)/2; - break; -case "z783": - notevil = (notevil + 783)/2; - break; -case "z784": - notevil = (notevil + 784)/2; - break; -case "z785": - notevil = (notevil + 785)/2; - break; -case "z786": - notevil = (notevil + 786)/2; - break; -case "z787": - notevil = (notevil + 787)/2; - break; -case "z788": - notevil = (notevil + 788)/2; - break; -case "z789": - notevil = (notevil + 789)/2; - break; -case "z790": - notevil = (notevil + 790)/2; - break; -case "z791": - notevil = (notevil + 791)/2; - break; -case "z792": - notevil = (notevil + 792)/2; - break; -case "z793": - notevil = (notevil + 793)/2; - break; -case "z794": - notevil = (notevil + 794)/2; - break; -case "z795": - notevil = (notevil + 795)/2; - break; -case "z796": - notevil = (notevil + 796)/2; - break; -case "z797": - notevil = (notevil + 797)/2; - break; -case "z798": - notevil = (notevil + 798)/2; - break; -case "z799": - notevil = (notevil + 799)/2; - break; -case "z800": - notevil = (notevil + 800)/2; - break; -case "z801": - notevil = (notevil + 801)/2; - break; -case "z802": - notevil = (notevil + 802)/2; - break; -case "z803": - notevil = (notevil + 803)/2; - break; -case "z804": - notevil = (notevil + 804)/2; - break; -case "z805": - notevil = (notevil + 805)/2; - break; -case "z806": - notevil = (notevil + 806)/2; - break; -case "z807": - notevil = (notevil + 807)/2; - break; -case "z808": - notevil = (notevil + 808)/2; - break; -case "z809": - notevil = (notevil + 809)/2; - break; -case "z810": - notevil = (notevil + 810)/2; - break; -case "z811": - notevil = (notevil + 811)/2; - break; -case "z812": - notevil = (notevil + 812)/2; - break; -case "z813": - notevil = (notevil + 813)/2; - break; -case "z814": - notevil = (notevil + 814)/2; - break; -case "z815": - notevil = (notevil + 815)/2; - break; -case "z816": - notevil = (notevil + 816)/2; - break; -case "z817": - notevil = (notevil + 817)/2; - break; -case "z818": - notevil = (notevil + 818)/2; - break; -case "z819": - notevil = (notevil + 819)/2; - break; -case "z820": - notevil = (notevil + 820)/2; - break; -case "z821": - notevil = (notevil + 821)/2; - break; -case "z822": - notevil = (notevil + 822)/2; - break; -case "z823": - notevil = (notevil + 823)/2; - break; -case "z824": - notevil = (notevil + 824)/2; - break; -case "z825": - notevil = (notevil + 825)/2; - break; -case "z826": - notevil = (notevil + 826)/2; - break; -case "z827": - notevil = (notevil + 827)/2; - break; -case "z828": - notevil = (notevil + 828)/2; - break; -case "z829": - notevil = (notevil + 829)/2; - break; -case "z830": - notevil = (notevil + 830)/2; - break; -case "z831": - notevil = (notevil + 831)/2; - break; -case "z832": - notevil = (notevil + 832)/2; - break; -case "z833": - notevil = (notevil + 833)/2; - break; -case "z834": - notevil = (notevil + 834)/2; - break; -case "z835": - notevil = (notevil + 835)/2; - break; -case "z836": - notevil = (notevil + 836)/2; - break; -case "z837": - notevil = (notevil + 837)/2; - break; -case "z838": - notevil = (notevil + 838)/2; - break; -case "z839": - notevil = (notevil + 839)/2; - break; -case "z840": - notevil = (notevil + 840)/2; - break; -case "z841": - notevil = (notevil + 841)/2; - break; -case "z842": - notevil = (notevil + 842)/2; - break; -case "z843": - notevil = (notevil + 843)/2; - break; -case "z844": - notevil = (notevil + 844)/2; - break; -case "z845": - notevil = (notevil + 845)/2; - break; -case "z846": - notevil = (notevil + 846)/2; - break; -case "z847": - notevil = (notevil + 847)/2; - break; -case "z848": - notevil = (notevil + 848)/2; - break; -case "z849": - notevil = (notevil + 849)/2; - break; -case "z850": - notevil = (notevil + 850)/2; - break; -case "z851": - notevil = (notevil + 851)/2; - break; -case "z852": - notevil = (notevil + 852)/2; - break; -case "z853": - notevil = (notevil + 853)/2; - break; -case "z854": - notevil = (notevil + 854)/2; - break; -case "z855": - notevil = (notevil + 855)/2; - break; -case "z856": - notevil = (notevil + 856)/2; - break; -case "z857": - notevil = (notevil + 857)/2; - break; -case "z858": - notevil = (notevil + 858)/2; - break; -case "z859": - notevil = (notevil + 859)/2; - break; -case "z860": - notevil = (notevil + 860)/2; - break; -case "z861": - notevil = (notevil + 861)/2; - break; -case "z862": - notevil = (notevil + 862)/2; - break; -case "z863": - notevil = (notevil + 863)/2; - break; -case "z864": - notevil = (notevil + 864)/2; - break; -case "z865": - notevil = (notevil + 865)/2; - break; -case "z866": - notevil = (notevil + 866)/2; - break; -case "z867": - notevil = (notevil + 867)/2; - break; -case "z868": - notevil = (notevil + 868)/2; - break; -case "z869": - notevil = (notevil + 869)/2; - break; -case "z870": - notevil = (notevil + 870)/2; - break; -case "z871": - notevil = (notevil + 871)/2; - break; -case "z872": - notevil = (notevil + 872)/2; - break; -case "z873": - notevil = (notevil + 873)/2; - break; -case "z874": - notevil = (notevil + 874)/2; - break; -case "z875": - notevil = (notevil + 875)/2; - break; -case "z876": - notevil = (notevil + 876)/2; - break; -case "z877": - notevil = (notevil + 877)/2; - break; -case "z878": - notevil = (notevil + 878)/2; - break; -case "z879": - notevil = (notevil + 879)/2; - break; -case "z880": - notevil = (notevil + 880)/2; - break; -case "z881": - notevil = (notevil + 881)/2; - break; -case "z882": - notevil = (notevil + 882)/2; - break; -case "z883": - notevil = (notevil + 883)/2; - break; -case "z884": - notevil = (notevil + 884)/2; - break; -case "z885": - notevil = (notevil + 885)/2; - break; -case "z886": - notevil = (notevil + 886)/2; - break; -case "z887": - notevil = (notevil + 887)/2; - break; -case "z888": - notevil = (notevil + 888)/2; - break; -case "z889": - notevil = (notevil + 889)/2; - break; -case "z890": - notevil = (notevil + 890)/2; - break; -case "z891": - notevil = (notevil + 891)/2; - break; -case "z892": - notevil = (notevil + 892)/2; - break; -case "z893": - notevil = (notevil + 893)/2; - break; -case "z894": - notevil = (notevil + 894)/2; - break; -case "z895": - notevil = (notevil + 895)/2; - break; -case "z896": - notevil = (notevil + 896)/2; - break; -case "z897": - notevil = (notevil + 897)/2; - break; -case "z898": - notevil = (notevil + 898)/2; - break; -case "z899": - notevil = (notevil + 899)/2; - break; -case "z900": - notevil = (notevil + 900)/2; - break; -case "z901": - notevil = (notevil + 901)/2; - break; -case "z902": - notevil = (notevil + 902)/2; - break; -case "z903": - notevil = (notevil + 903)/2; - break; -case "z904": - notevil = (notevil + 904)/2; - break; -case "z905": - notevil = (notevil + 905)/2; - break; -case "z906": - notevil = (notevil + 906)/2; - break; -case "z907": - notevil = (notevil + 907)/2; - break; -case "z908": - notevil = (notevil + 908)/2; - break; -case "z909": - notevil = (notevil + 909)/2; - break; -case "z910": - notevil = (notevil + 910)/2; - break; -case "z911": - notevil = (notevil + 911)/2; - break; -case "z912": - notevil = (notevil + 912)/2; - break; -case "z913": - notevil = (notevil + 913)/2; - break; -case "z914": - notevil = (notevil + 914)/2; - break; -case "z915": - notevil = (notevil + 915)/2; - break; -case "z916": - notevil = (notevil + 916)/2; - break; -case "z917": - notevil = (notevil + 917)/2; - break; -case "z918": - notevil = (notevil + 918)/2; - break; -case "z919": - notevil = (notevil + 919)/2; - break; -case "z920": - notevil = (notevil + 920)/2; - break; -case "z921": - notevil = (notevil + 921)/2; - break; -case "z922": - notevil = (notevil + 922)/2; - break; -case "z923": - notevil = (notevil + 923)/2; - break; -case "z924": - notevil = (notevil + 924)/2; - break; -case "z925": - notevil = (notevil + 925)/2; - break; -case "z926": - notevil = (notevil + 926)/2; - break; -case "z927": - notevil = (notevil + 927)/2; - break; -case "z928": - notevil = (notevil + 928)/2; - break; -case "z929": - notevil = (notevil + 929)/2; - break; -case "z930": - notevil = (notevil + 930)/2; - break; -case "z931": - notevil = (notevil + 931)/2; - break; -case "z932": - notevil = (notevil + 932)/2; - break; -case "z933": - notevil = (notevil + 933)/2; - break; -case "z934": - notevil = (notevil + 934)/2; - break; -case "z935": - notevil = (notevil + 935)/2; - break; -case "z936": - notevil = (notevil + 936)/2; - break; -case "z937": - notevil = (notevil + 937)/2; - break; -case "z938": - notevil = (notevil + 938)/2; - break; -case "z939": - notevil = (notevil + 939)/2; - break; -case "z940": - notevil = (notevil + 940)/2; - break; -case "z941": - notevil = (notevil + 941)/2; - break; -case "z942": - notevil = (notevil + 942)/2; - break; -case "z943": - notevil = (notevil + 943)/2; - break; -case "z944": - notevil = (notevil + 944)/2; - break; -case "z945": - notevil = (notevil + 945)/2; - break; -case "z946": - notevil = (notevil + 946)/2; - break; -case "z947": - notevil = (notevil + 947)/2; - break; -case "z948": - notevil = (notevil + 948)/2; - break; -case "z949": - notevil = (notevil + 949)/2; - break; -case "z950": - notevil = (notevil + 950)/2; - break; -case "z951": - notevil = (notevil + 951)/2; - break; -case "z952": - notevil = (notevil + 952)/2; - break; -case "z953": - notevil = (notevil + 953)/2; - break; -case "z954": - notevil = (notevil + 954)/2; - break; -case "z955": - notevil = (notevil + 955)/2; - break; -case "z956": - notevil = (notevil + 956)/2; - break; -case "z957": - notevil = (notevil + 957)/2; - break; -case "z958": - notevil = (notevil + 958)/2; - break; -case "z959": - notevil = (notevil + 959)/2; - break; -case "z960": - notevil = (notevil + 960)/2; - break; -case "z961": - notevil = (notevil + 961)/2; - break; -case "z962": - notevil = (notevil + 962)/2; - break; -case "z963": - notevil = (notevil + 963)/2; - break; -case "z964": - notevil = (notevil + 964)/2; - break; -case "z965": - notevil = (notevil + 965)/2; - break; -case "z966": - notevil = (notevil + 966)/2; - break; -case "z967": - notevil = (notevil + 967)/2; - break; -case "z968": - notevil = (notevil + 968)/2; - break; -case "z969": - notevil = (notevil + 969)/2; - break; -case "z970": - notevil = (notevil + 970)/2; - break; -case "z971": - notevil = (notevil + 971)/2; - break; -case "z972": - notevil = (notevil + 972)/2; - break; -case "z973": - notevil = (notevil + 973)/2; - break; -case "z974": - notevil = (notevil + 974)/2; - break; -case "z975": - notevil = (notevil + 975)/2; - break; -case "z976": - notevil = (notevil + 976)/2; - break; -case "z977": - notevil = (notevil + 977)/2; - break; -case "z978": - notevil = (notevil + 978)/2; - break; -case "z979": - notevil = (notevil + 979)/2; - break; -case "z980": - notevil = (notevil + 980)/2; - break; -case "z981": - notevil = (notevil + 981)/2; - break; -case "z982": - notevil = (notevil + 982)/2; - break; -case "z983": - notevil = (notevil + 983)/2; - break; -case "z984": - notevil = (notevil + 984)/2; - break; -case "z985": - notevil = (notevil + 985)/2; - break; -case "z986": - notevil = (notevil + 986)/2; - break; -case "z987": - notevil = (notevil + 987)/2; - break; -case "z988": - notevil = (notevil + 988)/2; - break; -case "z989": - notevil = (notevil + 989)/2; - break; -case "z990": - notevil = (notevil + 990)/2; - break; -case "z991": - notevil = (notevil + 991)/2; - break; -case "z992": - notevil = (notevil + 992)/2; - break; -case "z993": - notevil = (notevil + 993)/2; - break; -case "z994": - notevil = (notevil + 994)/2; - break; -case "z995": - notevil = (notevil + 995)/2; - break; -case "z996": - notevil = (notevil + 996)/2; - break; -case "z997": - notevil = (notevil + 997)/2; - break; -case "z998": - notevil = (notevil + 998)/2; - break; -case "z999": - notevil = (notevil + 999)/2; - break; -case "z1000": - notevil = (notevil + 1000)/2; - break; -case "z1001": - notevil = (notevil + 1001)/2; - break; -case "z1002": - notevil = (notevil + 1002)/2; - break; -case "z1003": - notevil = (notevil + 1003)/2; - break; -case "z1004": - notevil = (notevil + 1004)/2; - break; -case "z1005": - notevil = (notevil + 1005)/2; - break; -case "z1006": - notevil = (notevil + 1006)/2; - break; -case "z1007": - notevil = (notevil + 1007)/2; - break; -case "z1008": - notevil = (notevil + 1008)/2; - break; -case "z1009": - notevil = (notevil + 1009)/2; - break; -case "z1010": - notevil = (notevil + 1010)/2; - break; -case "z1011": - notevil = (notevil + 1011)/2; - break; -case "z1012": - notevil = (notevil + 1012)/2; - break; -case "z1013": - notevil = (notevil + 1013)/2; - break; -case "z1014": - notevil = (notevil + 1014)/2; - break; -case "z1015": - notevil = (notevil + 1015)/2; - break; -case "z1016": - notevil = (notevil + 1016)/2; - break; -case "z1017": - notevil = (notevil + 1017)/2; - break; -case "z1018": - notevil = (notevil + 1018)/2; - break; -case "z1019": - notevil = (notevil + 1019)/2; - break; -case "z1020": - notevil = (notevil + 1020)/2; - break; -case "z1021": - notevil = (notevil + 1021)/2; - break; -case "z1022": - notevil = (notevil + 1022)/2; - break; -case "z1023": - notevil = (notevil + 1023)/2; - break; -case "z1024": - notevil = (notevil + 1024)/2; - break; -case "z1025": - notevil = (notevil + 1025)/2; - break; -case "z1026": - notevil = (notevil + 1026)/2; - break; -case "z1027": - notevil = (notevil + 1027)/2; - break; -case "z1028": - notevil = (notevil + 1028)/2; - break; -case "z1029": - notevil = (notevil + 1029)/2; - break; -case "z1030": - notevil = (notevil + 1030)/2; - break; -case "z1031": - notevil = (notevil + 1031)/2; - break; -case "z1032": - notevil = (notevil + 1032)/2; - break; -case "z1033": - notevil = (notevil + 1033)/2; - break; -case "z1034": - notevil = (notevil + 1034)/2; - break; -case "z1035": - notevil = (notevil + 1035)/2; - break; -case "z1036": - notevil = (notevil + 1036)/2; - break; -case "z1037": - notevil = (notevil + 1037)/2; - break; -case "z1038": - notevil = (notevil + 1038)/2; - break; -case "z1039": - notevil = (notevil + 1039)/2; - break; -case "z1040": - notevil = (notevil + 1040)/2; - break; -case "z1041": - notevil = (notevil + 1041)/2; - break; -case "z1042": - notevil = (notevil + 1042)/2; - break; -case "z1043": - notevil = (notevil + 1043)/2; - break; -case "z1044": - notevil = (notevil + 1044)/2; - break; -case "z1045": - notevil = (notevil + 1045)/2; - break; -case "z1046": - notevil = (notevil + 1046)/2; - break; -case "z1047": - notevil = (notevil + 1047)/2; - break; -case "z1048": - notevil = (notevil + 1048)/2; - break; -case "z1049": - notevil = (notevil + 1049)/2; - break; -case "z1050": - notevil = (notevil + 1050)/2; - break; -case "z1051": - notevil = (notevil + 1051)/2; - break; -case "z1052": - notevil = (notevil + 1052)/2; - break; -case "z1053": - notevil = (notevil + 1053)/2; - break; -case "z1054": - notevil = (notevil + 1054)/2; - break; -case "z1055": - notevil = (notevil + 1055)/2; - break; -case "z1056": - notevil = (notevil + 1056)/2; - break; -case "z1057": - notevil = (notevil + 1057)/2; - break; -case "z1058": - notevil = (notevil + 1058)/2; - break; -case "z1059": - notevil = (notevil + 1059)/2; - break; -case "z1060": - notevil = (notevil + 1060)/2; - break; -case "z1061": - notevil = (notevil + 1061)/2; - break; -case "z1062": - notevil = (notevil + 1062)/2; - break; -case "z1063": - notevil = (notevil + 1063)/2; - break; -case "z1064": - notevil = (notevil + 1064)/2; - break; -case "z1065": - notevil = (notevil + 1065)/2; - break; -case "z1066": - notevil = (notevil + 1066)/2; - break; -case "z1067": - notevil = (notevil + 1067)/2; - break; -case "z1068": - notevil = (notevil + 1068)/2; - break; -case "z1069": - notevil = (notevil + 1069)/2; - break; -case "z1070": - notevil = (notevil + 1070)/2; - break; -case "z1071": - notevil = (notevil + 1071)/2; - break; -case "z1072": - notevil = (notevil + 1072)/2; - break; -case "z1073": - notevil = (notevil + 1073)/2; - break; -case "z1074": - notevil = (notevil + 1074)/2; - break; -case "z1075": - notevil = (notevil + 1075)/2; - break; -case "z1076": - notevil = (notevil + 1076)/2; - break; -case "z1077": - notevil = (notevil + 1077)/2; - break; -case "z1078": - notevil = (notevil + 1078)/2; - break; -case "z1079": - notevil = (notevil + 1079)/2; - break; -case "z1080": - notevil = (notevil + 1080)/2; - break; -case "z1081": - notevil = (notevil + 1081)/2; - break; -case "z1082": - notevil = (notevil + 1082)/2; - break; -case "z1083": - notevil = (notevil + 1083)/2; - break; -case "z1084": - notevil = (notevil + 1084)/2; - break; -case "z1085": - notevil = (notevil + 1085)/2; - break; -case "z1086": - notevil = (notevil + 1086)/2; - break; -case "z1087": - notevil = (notevil + 1087)/2; - break; -case "z1088": - notevil = (notevil + 1088)/2; - break; -case "z1089": - notevil = (notevil + 1089)/2; - break; -case "z1090": - notevil = (notevil + 1090)/2; - break; -case "z1091": - notevil = (notevil + 1091)/2; - break; -case "z1092": - notevil = (notevil + 1092)/2; - break; -case "z1093": - notevil = (notevil + 1093)/2; - break; -case "z1094": - notevil = (notevil + 1094)/2; - break; -case "z1095": - notevil = (notevil + 1095)/2; - break; -case "z1096": - notevil = (notevil + 1096)/2; - break; -case "z1097": - notevil = (notevil + 1097)/2; - break; -case "z1098": - notevil = (notevil + 1098)/2; - break; -case "z1099": - notevil = (notevil + 1099)/2; - break; -case "z1100": - notevil = (notevil + 1100)/2; - break; -case "z1101": - notevil = (notevil + 1101)/2; - break; -case "z1102": - notevil = (notevil + 1102)/2; - break; -case "z1103": - notevil = (notevil + 1103)/2; - break; -case "z1104": - notevil = (notevil + 1104)/2; - break; -case "z1105": - notevil = (notevil + 1105)/2; - break; -case "z1106": - notevil = (notevil + 1106)/2; - break; -case "z1107": - notevil = (notevil + 1107)/2; - break; -case "z1108": - notevil = (notevil + 1108)/2; - break; -case "z1109": - notevil = (notevil + 1109)/2; - break; -case "z1110": - notevil = (notevil + 1110)/2; - break; -case "z1111": - notevil = (notevil + 1111)/2; - break; -case "z1112": - notevil = (notevil + 1112)/2; - break; -case "z1113": - notevil = (notevil + 1113)/2; - break; -case "z1114": - notevil = (notevil + 1114)/2; - break; -case "z1115": - notevil = (notevil + 1115)/2; - break; -case "z1116": - notevil = (notevil + 1116)/2; - break; -case "z1117": - notevil = (notevil + 1117)/2; - break; -case "z1118": - notevil = (notevil + 1118)/2; - break; -case "z1119": - notevil = (notevil + 1119)/2; - break; -case "z1120": - notevil = (notevil + 1120)/2; - break; -case "z1121": - notevil = (notevil + 1121)/2; - break; -case "z1122": - notevil = (notevil + 1122)/2; - break; -case "z1123": - notevil = (notevil + 1123)/2; - break; -case "z1124": - notevil = (notevil + 1124)/2; - break; -case "z1125": - notevil = (notevil + 1125)/2; - break; -case "z1126": - notevil = (notevil + 1126)/2; - break; -case "z1127": - notevil = (notevil + 1127)/2; - break; -case "z1128": - notevil = (notevil + 1128)/2; - break; -case "z1129": - notevil = (notevil + 1129)/2; - break; -case "z1130": - notevil = (notevil + 1130)/2; - break; -case "z1131": - notevil = (notevil + 1131)/2; - break; -case "z1132": - notevil = (notevil + 1132)/2; - break; -case "z1133": - notevil = (notevil + 1133)/2; - break; -case "z1134": - notevil = (notevil + 1134)/2; - break; -case "z1135": - notevil = (notevil + 1135)/2; - break; -case "z1136": - notevil = (notevil + 1136)/2; - break; -case "z1137": - notevil = (notevil + 1137)/2; - break; -case "z1138": - notevil = (notevil + 1138)/2; - break; -case "z1139": - notevil = (notevil + 1139)/2; - break; -case "z1140": - notevil = (notevil + 1140)/2; - break; -case "z1141": - notevil = (notevil + 1141)/2; - break; -case "z1142": - notevil = (notevil + 1142)/2; - break; -case "z1143": - notevil = (notevil + 1143)/2; - break; -case "z1144": - notevil = (notevil + 1144)/2; - break; -case "z1145": - notevil = (notevil + 1145)/2; - break; -case "z1146": - notevil = (notevil + 1146)/2; - break; -case "z1147": - notevil = (notevil + 1147)/2; - break; -case "z1148": - notevil = (notevil + 1148)/2; - break; -case "z1149": - notevil = (notevil + 1149)/2; - break; -case "z1150": - notevil = (notevil + 1150)/2; - break; -case "z1151": - notevil = (notevil + 1151)/2; - break; -case "z1152": - notevil = (notevil + 1152)/2; - break; -case "z1153": - notevil = (notevil + 1153)/2; - break; -case "z1154": - notevil = (notevil + 1154)/2; - break; -case "z1155": - notevil = (notevil + 1155)/2; - break; -case "z1156": - notevil = (notevil + 1156)/2; - break; -case "z1157": - notevil = (notevil + 1157)/2; - break; -case "z1158": - notevil = (notevil + 1158)/2; - break; -case "z1159": - notevil = (notevil + 1159)/2; - break; -case "z1160": - notevil = (notevil + 1160)/2; - break; -case "z1161": - notevil = (notevil + 1161)/2; - break; -case "z1162": - notevil = (notevil + 1162)/2; - break; -case "z1163": - notevil = (notevil + 1163)/2; - break; -case "z1164": - notevil = (notevil + 1164)/2; - break; -case "z1165": - notevil = (notevil + 1165)/2; - break; -case "z1166": - notevil = (notevil + 1166)/2; - break; -case "z1167": - notevil = (notevil + 1167)/2; - break; -case "z1168": - notevil = (notevil + 1168)/2; - break; -case "z1169": - notevil = (notevil + 1169)/2; - break; -case "z1170": - notevil = (notevil + 1170)/2; - break; -case "z1171": - notevil = (notevil + 1171)/2; - break; -case "z1172": - notevil = (notevil + 1172)/2; - break; -case "z1173": - notevil = (notevil + 1173)/2; - break; -case "z1174": - notevil = (notevil + 1174)/2; - break; -case "z1175": - notevil = (notevil + 1175)/2; - break; -case "z1176": - notevil = (notevil + 1176)/2; - break; -case "z1177": - notevil = (notevil + 1177)/2; - break; -case "z1178": - notevil = (notevil + 1178)/2; - break; -case "z1179": - notevil = (notevil + 1179)/2; - break; -case "z1180": - notevil = (notevil + 1180)/2; - break; -case "z1181": - notevil = (notevil + 1181)/2; - break; -case "z1182": - notevil = (notevil + 1182)/2; - break; -case "z1183": - notevil = (notevil + 1183)/2; - break; -case "z1184": - notevil = (notevil + 1184)/2; - break; -case "z1185": - notevil = (notevil + 1185)/2; - break; -case "z1186": - notevil = (notevil + 1186)/2; - break; -case "z1187": - notevil = (notevil + 1187)/2; - break; -case "z1188": - notevil = (notevil + 1188)/2; - break; -case "z1189": - notevil = (notevil + 1189)/2; - break; -case "z1190": - notevil = (notevil + 1190)/2; - break; -case "z1191": - notevil = (notevil + 1191)/2; - break; -case "z1192": - notevil = (notevil + 1192)/2; - break; -case "z1193": - notevil = (notevil + 1193)/2; - break; -case "z1194": - notevil = (notevil + 1194)/2; - break; -case "z1195": - notevil = (notevil + 1195)/2; - break; -case "z1196": - notevil = (notevil + 1196)/2; - break; -case "z1197": - notevil = (notevil + 1197)/2; - break; -case "z1198": - notevil = (notevil + 1198)/2; - break; -case "z1199": - notevil = (notevil + 1199)/2; - break; -case "z1200": - notevil = (notevil + 1200)/2; - break; -case "z1201": - notevil = (notevil + 1201)/2; - break; -case "z1202": - notevil = (notevil + 1202)/2; - break; -case "z1203": - notevil = (notevil + 1203)/2; - break; -case "z1204": - notevil = (notevil + 1204)/2; - break; -case "z1205": - notevil = (notevil + 1205)/2; - break; -case "z1206": - notevil = (notevil + 1206)/2; - break; -case "z1207": - notevil = (notevil + 1207)/2; - break; -case "z1208": - notevil = (notevil + 1208)/2; - break; -case "z1209": - notevil = (notevil + 1209)/2; - break; -case "z1210": - notevil = (notevil + 1210)/2; - break; -case "z1211": - notevil = (notevil + 1211)/2; - break; -case "z1212": - notevil = (notevil + 1212)/2; - break; -case "z1213": - notevil = (notevil + 1213)/2; - break; -case "z1214": - notevil = (notevil + 1214)/2; - break; -case "z1215": - notevil = (notevil + 1215)/2; - break; -case "z1216": - notevil = (notevil + 1216)/2; - break; -case "z1217": - notevil = (notevil + 1217)/2; - break; -case "z1218": - notevil = (notevil + 1218)/2; - break; -case "z1219": - notevil = (notevil + 1219)/2; - break; -case "z1220": - notevil = (notevil + 1220)/2; - break; -case "z1221": - notevil = (notevil + 1221)/2; - break; -case "z1222": - notevil = (notevil + 1222)/2; - break; -case "z1223": - notevil = (notevil + 1223)/2; - break; -case "z1224": - notevil = (notevil + 1224)/2; - break; -case "z1225": - notevil = (notevil + 1225)/2; - break; -case "z1226": - notevil = (notevil + 1226)/2; - break; -case "z1227": - notevil = (notevil + 1227)/2; - break; -case "z1228": - notevil = (notevil + 1228)/2; - break; -case "z1229": - notevil = (notevil + 1229)/2; - break; -case "z1230": - notevil = (notevil + 1230)/2; - break; -case "z1231": - notevil = (notevil + 1231)/2; - break; -case "z1232": - notevil = (notevil + 1232)/2; - break; -case "z1233": - notevil = (notevil + 1233)/2; - break; -case "z1234": - notevil = (notevil + 1234)/2; - break; -case "z1235": - notevil = (notevil + 1235)/2; - break; -case "z1236": - notevil = (notevil + 1236)/2; - break; -case "z1237": - notevil = (notevil + 1237)/2; - break; -case "z1238": - notevil = (notevil + 1238)/2; - break; -case "z1239": - notevil = (notevil + 1239)/2; - break; -case "z1240": - notevil = (notevil + 1240)/2; - break; -case "z1241": - notevil = (notevil + 1241)/2; - break; -case "z1242": - notevil = (notevil + 1242)/2; - break; -case "z1243": - notevil = (notevil + 1243)/2; - break; -case "z1244": - notevil = (notevil + 1244)/2; - break; -case "z1245": - notevil = (notevil + 1245)/2; - break; -case "z1246": - notevil = (notevil + 1246)/2; - break; -case "z1247": - notevil = (notevil + 1247)/2; - break; -case "z1248": - notevil = (notevil + 1248)/2; - break; -case "z1249": - notevil = (notevil + 1249)/2; - break; -case "z1250": - notevil = (notevil + 1250)/2; - break; -case "z1251": - notevil = (notevil + 1251)/2; - break; -case "z1252": - notevil = (notevil + 1252)/2; - break; -case "z1253": - notevil = (notevil + 1253)/2; - break; -case "z1254": - notevil = (notevil + 1254)/2; - break; -case "z1255": - notevil = (notevil + 1255)/2; - break; -case "z1256": - notevil = (notevil + 1256)/2; - break; -case "z1257": - notevil = (notevil + 1257)/2; - break; -case "z1258": - notevil = (notevil + 1258)/2; - break; -case "z1259": - notevil = (notevil + 1259)/2; - break; -case "z1260": - notevil = (notevil + 1260)/2; - break; -case "z1261": - notevil = (notevil + 1261)/2; - break; -case "z1262": - notevil = (notevil + 1262)/2; - break; -case "z1263": - notevil = (notevil + 1263)/2; - break; -case "z1264": - notevil = (notevil + 1264)/2; - break; -case "z1265": - notevil = (notevil + 1265)/2; - break; -case "z1266": - notevil = (notevil + 1266)/2; - break; -case "z1267": - notevil = (notevil + 1267)/2; - break; -case "z1268": - notevil = (notevil + 1268)/2; - break; -case "z1269": - notevil = (notevil + 1269)/2; - break; -case "z1270": - notevil = (notevil + 1270)/2; - break; -case "z1271": - notevil = (notevil + 1271)/2; - break; -case "z1272": - notevil = (notevil + 1272)/2; - break; -case "z1273": - notevil = (notevil + 1273)/2; - break; -case "z1274": - notevil = (notevil + 1274)/2; - break; -case "z1275": - notevil = (notevil + 1275)/2; - break; -case "z1276": - notevil = (notevil + 1276)/2; - break; -case "z1277": - notevil = (notevil + 1277)/2; - break; -case "z1278": - notevil = (notevil + 1278)/2; - break; -case "z1279": - notevil = (notevil + 1279)/2; - break; -case "z1280": - notevil = (notevil + 1280)/2; - break; -case "z1281": - notevil = (notevil + 1281)/2; - break; -case "z1282": - notevil = (notevil + 1282)/2; - break; -case "z1283": - notevil = (notevil + 1283)/2; - break; -case "z1284": - notevil = (notevil + 1284)/2; - break; -case "z1285": - notevil = (notevil + 1285)/2; - break; -case "z1286": - notevil = (notevil + 1286)/2; - break; -case "z1287": - notevil = (notevil + 1287)/2; - break; -case "z1288": - notevil = (notevil + 1288)/2; - break; -case "z1289": - notevil = (notevil + 1289)/2; - break; -case "z1290": - notevil = (notevil + 1290)/2; - break; -case "z1291": - notevil = (notevil + 1291)/2; - break; -case "z1292": - notevil = (notevil + 1292)/2; - break; -case "z1293": - notevil = (notevil + 1293)/2; - break; -case "z1294": - notevil = (notevil + 1294)/2; - break; -case "z1295": - notevil = (notevil + 1295)/2; - break; -case "z1296": - notevil = (notevil + 1296)/2; - break; -case "z1297": - notevil = (notevil + 1297)/2; - break; -case "z1298": - notevil = (notevil + 1298)/2; - break; -case "z1299": - notevil = (notevil + 1299)/2; - break; -case "z1300": - notevil = (notevil + 1300)/2; - break; -case "z1301": - notevil = (notevil + 1301)/2; - break; -case "z1302": - notevil = (notevil + 1302)/2; - break; -case "z1303": - notevil = (notevil + 1303)/2; - break; -case "z1304": - notevil = (notevil + 1304)/2; - break; -case "z1305": - notevil = (notevil + 1305)/2; - break; -case "z1306": - notevil = (notevil + 1306)/2; - break; -case "z1307": - notevil = (notevil + 1307)/2; - break; -case "z1308": - notevil = (notevil + 1308)/2; - break; -case "z1309": - notevil = (notevil + 1309)/2; - break; -case "z1310": - notevil = (notevil + 1310)/2; - break; -case "z1311": - notevil = (notevil + 1311)/2; - break; -case "z1312": - notevil = (notevil + 1312)/2; - break; -case "z1313": - notevil = (notevil + 1313)/2; - break; -case "z1314": - notevil = (notevil + 1314)/2; - break; -case "z1315": - notevil = (notevil + 1315)/2; - break; -case "z1316": - notevil = (notevil + 1316)/2; - break; -case "z1317": - notevil = (notevil + 1317)/2; - break; -case "z1318": - notevil = (notevil + 1318)/2; - break; -case "z1319": - notevil = (notevil + 1319)/2; - break; -case "z1320": - notevil = (notevil + 1320)/2; - break; -case "z1321": - notevil = (notevil + 1321)/2; - break; -case "z1322": - notevil = (notevil + 1322)/2; - break; -case "z1323": - notevil = (notevil + 1323)/2; - break; -case "z1324": - notevil = (notevil + 1324)/2; - break; -case "z1325": - notevil = (notevil + 1325)/2; - break; -case "z1326": - notevil = (notevil + 1326)/2; - break; -case "z1327": - notevil = (notevil + 1327)/2; - break; -case "z1328": - notevil = (notevil + 1328)/2; - break; -case "z1329": - notevil = (notevil + 1329)/2; - break; -case "z1330": - notevil = (notevil + 1330)/2; - break; -case "z1331": - notevil = (notevil + 1331)/2; - break; -case "z1332": - notevil = (notevil + 1332)/2; - break; -case "z1333": - notevil = (notevil + 1333)/2; - break; -case "z1334": - notevil = (notevil + 1334)/2; - break; -case "z1335": - notevil = (notevil + 1335)/2; - break; -case "z1336": - notevil = (notevil + 1336)/2; - break; -case "z1337": - notevil = (notevil + 1337)/2; - break; -case "z1338": - notevil = (notevil + 1338)/2; - break; -case "z1339": - notevil = (notevil + 1339)/2; - break; -case "z1340": - notevil = (notevil + 1340)/2; - break; -case "z1341": - notevil = (notevil + 1341)/2; - break; -case "z1342": - notevil = (notevil + 1342)/2; - break; -case "z1343": - notevil = (notevil + 1343)/2; - break; -case "z1344": - notevil = (notevil + 1344)/2; - break; -case "z1345": - notevil = (notevil + 1345)/2; - break; -case "z1346": - notevil = (notevil + 1346)/2; - break; -case "z1347": - notevil = (notevil + 1347)/2; - break; -case "z1348": - notevil = (notevil + 1348)/2; - break; -case "z1349": - notevil = (notevil + 1349)/2; - break; -case "z1350": - notevil = (notevil + 1350)/2; - break; -case "z1351": - notevil = (notevil + 1351)/2; - break; -case "z1352": - notevil = (notevil + 1352)/2; - break; -case "z1353": - notevil = (notevil + 1353)/2; - break; -case "z1354": - notevil = (notevil + 1354)/2; - break; -case "z1355": - notevil = (notevil + 1355)/2; - break; -case "z1356": - notevil = (notevil + 1356)/2; - break; -case "z1357": - notevil = (notevil + 1357)/2; - break; -case "z1358": - notevil = (notevil + 1358)/2; - break; -case "z1359": - notevil = (notevil + 1359)/2; - break; -case "z1360": - notevil = (notevil + 1360)/2; - break; -case "z1361": - notevil = (notevil + 1361)/2; - break; -case "z1362": - notevil = (notevil + 1362)/2; - break; -case "z1363": - notevil = (notevil + 1363)/2; - break; -case "z1364": - notevil = (notevil + 1364)/2; - break; -case "z1365": - notevil = (notevil + 1365)/2; - break; -case "z1366": - notevil = (notevil + 1366)/2; - break; -case "z1367": - notevil = (notevil + 1367)/2; - break; -case "z1368": - notevil = (notevil + 1368)/2; - break; -case "z1369": - notevil = (notevil + 1369)/2; - break; -case "z1370": - notevil = (notevil + 1370)/2; - break; -case "z1371": - notevil = (notevil + 1371)/2; - break; -case "z1372": - notevil = (notevil + 1372)/2; - break; -case "z1373": - notevil = (notevil + 1373)/2; - break; -case "z1374": - notevil = (notevil + 1374)/2; - break; -case "z1375": - notevil = (notevil + 1375)/2; - break; -case "z1376": - notevil = (notevil + 1376)/2; - break; -case "z1377": - notevil = (notevil + 1377)/2; - break; -case "z1378": - notevil = (notevil + 1378)/2; - break; -case "z1379": - notevil = (notevil + 1379)/2; - break; -case "z1380": - notevil = (notevil + 1380)/2; - break; -case "z1381": - notevil = (notevil + 1381)/2; - break; -case "z1382": - notevil = (notevil + 1382)/2; - break; -case "z1383": - notevil = (notevil + 1383)/2; - break; -case "z1384": - notevil = (notevil + 1384)/2; - break; -case "z1385": - notevil = (notevil + 1385)/2; - break; -case "z1386": - notevil = (notevil + 1386)/2; - break; -case "z1387": - notevil = (notevil + 1387)/2; - break; -case "z1388": - notevil = (notevil + 1388)/2; - break; -case "z1389": - notevil = (notevil + 1389)/2; - break; -case "z1390": - notevil = (notevil + 1390)/2; - break; -case "z1391": - notevil = (notevil + 1391)/2; - break; -case "z1392": - notevil = (notevil + 1392)/2; - break; -case "z1393": - notevil = (notevil + 1393)/2; - break; -case "z1394": - notevil = (notevil + 1394)/2; - break; -case "z1395": - notevil = (notevil + 1395)/2; - break; -case "z1396": - notevil = (notevil + 1396)/2; - break; -case "z1397": - notevil = (notevil + 1397)/2; - break; -case "z1398": - notevil = (notevil + 1398)/2; - break; -case "z1399": - notevil = (notevil + 1399)/2; - break; -case "z1400": - notevil = (notevil + 1400)/2; - break; -case "z1401": - notevil = (notevil + 1401)/2; - break; -case "z1402": - notevil = (notevil + 1402)/2; - break; -case "z1403": - notevil = (notevil + 1403)/2; - break; -case "z1404": - notevil = (notevil + 1404)/2; - break; -case "z1405": - notevil = (notevil + 1405)/2; - break; -case "z1406": - notevil = (notevil + 1406)/2; - break; -case "z1407": - notevil = (notevil + 1407)/2; - break; -case "z1408": - notevil = (notevil + 1408)/2; - break; -case "z1409": - notevil = (notevil + 1409)/2; - break; -case "z1410": - notevil = (notevil + 1410)/2; - break; -case "z1411": - notevil = (notevil + 1411)/2; - break; -case "z1412": - notevil = (notevil + 1412)/2; - break; -case "z1413": - notevil = (notevil + 1413)/2; - break; -case "z1414": - notevil = (notevil + 1414)/2; - break; -case "z1415": - notevil = (notevil + 1415)/2; - break; -case "z1416": - notevil = (notevil + 1416)/2; - break; -case "z1417": - notevil = (notevil + 1417)/2; - break; -case "z1418": - notevil = (notevil + 1418)/2; - break; -case "z1419": - notevil = (notevil + 1419)/2; - break; -case "z1420": - notevil = (notevil + 1420)/2; - break; -case "z1421": - notevil = (notevil + 1421)/2; - break; -case "z1422": - notevil = (notevil + 1422)/2; - break; -case "z1423": - notevil = (notevil + 1423)/2; - break; -case "z1424": - notevil = (notevil + 1424)/2; - break; -case "z1425": - notevil = (notevil + 1425)/2; - break; -case "z1426": - notevil = (notevil + 1426)/2; - break; -case "z1427": - notevil = (notevil + 1427)/2; - break; -case "z1428": - notevil = (notevil + 1428)/2; - break; -case "z1429": - notevil = (notevil + 1429)/2; - break; -case "z1430": - notevil = (notevil + 1430)/2; - break; -case "z1431": - notevil = (notevil + 1431)/2; - break; -case "z1432": - notevil = (notevil + 1432)/2; - break; -case "z1433": - notevil = (notevil + 1433)/2; - break; -case "z1434": - notevil = (notevil + 1434)/2; - break; -case "z1435": - notevil = (notevil + 1435)/2; - break; -case "z1436": - notevil = (notevil + 1436)/2; - break; -case "z1437": - notevil = (notevil + 1437)/2; - break; -case "z1438": - notevil = (notevil + 1438)/2; - break; -case "z1439": - notevil = (notevil + 1439)/2; - break; -case "z1440": - notevil = (notevil + 1440)/2; - break; -case "z1441": - notevil = (notevil + 1441)/2; - break; -case "z1442": - notevil = (notevil + 1442)/2; - break; -case "z1443": - notevil = (notevil + 1443)/2; - break; -case "z1444": - notevil = (notevil + 1444)/2; - break; -case "z1445": - notevil = (notevil + 1445)/2; - break; -case "z1446": - notevil = (notevil + 1446)/2; - break; -case "z1447": - notevil = (notevil + 1447)/2; - break; -case "z1448": - notevil = (notevil + 1448)/2; - break; -case "z1449": - notevil = (notevil + 1449)/2; - break; -case "z1450": - notevil = (notevil + 1450)/2; - break; -case "z1451": - notevil = (notevil + 1451)/2; - break; -case "z1452": - notevil = (notevil + 1452)/2; - break; -case "z1453": - notevil = (notevil + 1453)/2; - break; -case "z1454": - notevil = (notevil + 1454)/2; - break; -case "z1455": - notevil = (notevil + 1455)/2; - break; -case "z1456": - notevil = (notevil + 1456)/2; - break; -case "z1457": - notevil = (notevil + 1457)/2; - break; -case "z1458": - notevil = (notevil + 1458)/2; - break; -case "z1459": - notevil = (notevil + 1459)/2; - break; -case "z1460": - notevil = (notevil + 1460)/2; - break; -case "z1461": - notevil = (notevil + 1461)/2; - break; -case "z1462": - notevil = (notevil + 1462)/2; - break; -case "z1463": - notevil = (notevil + 1463)/2; - break; -case "z1464": - notevil = (notevil + 1464)/2; - break; -case "z1465": - notevil = (notevil + 1465)/2; - break; -case "z1466": - notevil = (notevil + 1466)/2; - break; -case "z1467": - notevil = (notevil + 1467)/2; - break; -case "z1468": - notevil = (notevil + 1468)/2; - break; -case "z1469": - notevil = (notevil + 1469)/2; - break; -case "z1470": - notevil = (notevil + 1470)/2; - break; -case "z1471": - notevil = (notevil + 1471)/2; - break; -case "z1472": - notevil = (notevil + 1472)/2; - break; -case "z1473": - notevil = (notevil + 1473)/2; - break; -case "z1474": - notevil = (notevil + 1474)/2; - break; -case "z1475": - notevil = (notevil + 1475)/2; - break; -case "z1476": - notevil = (notevil + 1476)/2; - break; -case "z1477": - notevil = (notevil + 1477)/2; - break; -case "z1478": - notevil = (notevil + 1478)/2; - break; -case "z1479": - notevil = (notevil + 1479)/2; - break; -case "z1480": - notevil = (notevil + 1480)/2; - break; -case "z1481": - notevil = (notevil + 1481)/2; - break; -case "z1482": - notevil = (notevil + 1482)/2; - break; -case "z1483": - notevil = (notevil + 1483)/2; - break; -case "z1484": - notevil = (notevil + 1484)/2; - break; -case "z1485": - notevil = (notevil + 1485)/2; - break; -case "z1486": - notevil = (notevil + 1486)/2; - break; -case "z1487": - notevil = (notevil + 1487)/2; - break; -case "z1488": - notevil = (notevil + 1488)/2; - break; -case "z1489": - notevil = (notevil + 1489)/2; - break; -case "z1490": - notevil = (notevil + 1490)/2; - break; -case "z1491": - notevil = (notevil + 1491)/2; - break; -case "z1492": - notevil = (notevil + 1492)/2; - break; -case "z1493": - notevil = (notevil + 1493)/2; - break; -case "z1494": - notevil = (notevil + 1494)/2; - break; -case "z1495": - notevil = (notevil + 1495)/2; - break; -case "z1496": - notevil = (notevil + 1496)/2; - break; -case "z1497": - notevil = (notevil + 1497)/2; - break; -case "z1498": - notevil = (notevil + 1498)/2; - break; -case "z1499": - notevil = (notevil + 1499)/2; - break; -case "z1500": - notevil = (notevil + 1500)/2; - break; -case "z1501": - notevil = (notevil + 1501)/2; - break; -case "z1502": - notevil = (notevil + 1502)/2; - break; -case "z1503": - notevil = (notevil + 1503)/2; - break; -case "z1504": - notevil = (notevil + 1504)/2; - break; -case "z1505": - notevil = (notevil + 1505)/2; - break; -case "z1506": - notevil = (notevil + 1506)/2; - break; -case "z1507": - notevil = (notevil + 1507)/2; - break; -case "z1508": - notevil = (notevil + 1508)/2; - break; -case "z1509": - notevil = (notevil + 1509)/2; - break; -case "z1510": - notevil = (notevil + 1510)/2; - break; -case "z1511": - notevil = (notevil + 1511)/2; - break; -case "z1512": - notevil = (notevil + 1512)/2; - break; -case "z1513": - notevil = (notevil + 1513)/2; - break; -case "z1514": - notevil = (notevil + 1514)/2; - break; -case "z1515": - notevil = (notevil + 1515)/2; - break; -case "z1516": - notevil = (notevil + 1516)/2; - break; -case "z1517": - notevil = (notevil + 1517)/2; - break; -case "z1518": - notevil = (notevil + 1518)/2; - break; -case "z1519": - notevil = (notevil + 1519)/2; - break; -case "z1520": - notevil = (notevil + 1520)/2; - break; -case "z1521": - notevil = (notevil + 1521)/2; - break; -case "z1522": - notevil = (notevil + 1522)/2; - break; -case "z1523": - notevil = (notevil + 1523)/2; - break; -case "z1524": - notevil = (notevil + 1524)/2; - break; -case "z1525": - notevil = (notevil + 1525)/2; - break; -case "z1526": - notevil = (notevil + 1526)/2; - break; -case "z1527": - notevil = (notevil + 1527)/2; - break; -case "z1528": - notevil = (notevil + 1528)/2; - break; -case "z1529": - notevil = (notevil + 1529)/2; - break; -case "z1530": - notevil = (notevil + 1530)/2; - break; -case "z1531": - notevil = (notevil + 1531)/2; - break; -case "z1532": - notevil = (notevil + 1532)/2; - break; -case "z1533": - notevil = (notevil + 1533)/2; - break; -case "z1534": - notevil = (notevil + 1534)/2; - break; -case "z1535": - notevil = (notevil + 1535)/2; - break; -case "z1536": - notevil = (notevil + 1536)/2; - break; -case "z1537": - notevil = (notevil + 1537)/2; - break; -case "z1538": - notevil = (notevil + 1538)/2; - break; -case "z1539": - notevil = (notevil + 1539)/2; - break; -case "z1540": - notevil = (notevil + 1540)/2; - break; -case "z1541": - notevil = (notevil + 1541)/2; - break; -case "z1542": - notevil = (notevil + 1542)/2; - break; -case "z1543": - notevil = (notevil + 1543)/2; - break; -case "z1544": - notevil = (notevil + 1544)/2; - break; -case "z1545": - notevil = (notevil + 1545)/2; - break; -case "z1546": - notevil = (notevil + 1546)/2; - break; -case "z1547": - notevil = (notevil + 1547)/2; - break; -case "z1548": - notevil = (notevil + 1548)/2; - break; -case "z1549": - notevil = (notevil + 1549)/2; - break; -case "z1550": - notevil = (notevil + 1550)/2; - break; -case "z1551": - notevil = (notevil + 1551)/2; - break; -case "z1552": - notevil = (notevil + 1552)/2; - break; -case "z1553": - notevil = (notevil + 1553)/2; - break; -case "z1554": - notevil = (notevil + 1554)/2; - break; -case "z1555": - notevil = (notevil + 1555)/2; - break; -case "z1556": - notevil = (notevil + 1556)/2; - break; -case "z1557": - notevil = (notevil + 1557)/2; - break; -case "z1558": - notevil = (notevil + 1558)/2; - break; -case "z1559": - notevil = (notevil + 1559)/2; - break; -case "z1560": - notevil = (notevil + 1560)/2; - break; -case "z1561": - notevil = (notevil + 1561)/2; - break; -case "z1562": - notevil = (notevil + 1562)/2; - break; -case "z1563": - notevil = (notevil + 1563)/2; - break; -case "z1564": - notevil = (notevil + 1564)/2; - break; -case "z1565": - notevil = (notevil + 1565)/2; - break; -case "z1566": - notevil = (notevil + 1566)/2; - break; -case "z1567": - notevil = (notevil + 1567)/2; - break; -case "z1568": - notevil = (notevil + 1568)/2; - break; -case "z1569": - notevil = (notevil + 1569)/2; - break; -case "z1570": - notevil = (notevil + 1570)/2; - break; -case "z1571": - notevil = (notevil + 1571)/2; - break; -case "z1572": - notevil = (notevil + 1572)/2; - break; -case "z1573": - notevil = (notevil + 1573)/2; - break; -case "z1574": - notevil = (notevil + 1574)/2; - break; -case "z1575": - notevil = (notevil + 1575)/2; - break; -case "z1576": - notevil = (notevil + 1576)/2; - break; -case "z1577": - notevil = (notevil + 1577)/2; - break; -case "z1578": - notevil = (notevil + 1578)/2; - break; -case "z1579": - notevil = (notevil + 1579)/2; - break; -case "z1580": - notevil = (notevil + 1580)/2; - break; -case "z1581": - notevil = (notevil + 1581)/2; - break; -case "z1582": - notevil = (notevil + 1582)/2; - break; -case "z1583": - notevil = (notevil + 1583)/2; - break; -case "z1584": - notevil = (notevil + 1584)/2; - break; -case "z1585": - notevil = (notevil + 1585)/2; - break; -case "z1586": - notevil = (notevil + 1586)/2; - break; -case "z1587": - notevil = (notevil + 1587)/2; - break; -case "z1588": - notevil = (notevil + 1588)/2; - break; -case "z1589": - notevil = (notevil + 1589)/2; - break; -case "z1590": - notevil = (notevil + 1590)/2; - break; -case "z1591": - notevil = (notevil + 1591)/2; - break; -case "z1592": - notevil = (notevil + 1592)/2; - break; -case "z1593": - notevil = (notevil + 1593)/2; - break; -case "z1594": - notevil = (notevil + 1594)/2; - break; -case "z1595": - notevil = (notevil + 1595)/2; - break; -case "z1596": - notevil = (notevil + 1596)/2; - break; -case "z1597": - notevil = (notevil + 1597)/2; - break; -case "z1598": - notevil = (notevil + 1598)/2; - break; -case "z1599": - notevil = (notevil + 1599)/2; - break; -case "z1600": - notevil = (notevil + 1600)/2; - break; -case "z1601": - notevil = (notevil + 1601)/2; - break; -case "z1602": - notevil = (notevil + 1602)/2; - break; -case "z1603": - notevil = (notevil + 1603)/2; - break; -case "z1604": - notevil = (notevil + 1604)/2; - break; -case "z1605": - notevil = (notevil + 1605)/2; - break; -case "z1606": - notevil = (notevil + 1606)/2; - break; -case "z1607": - notevil = (notevil + 1607)/2; - break; -case "z1608": - notevil = (notevil + 1608)/2; - break; -case "z1609": - notevil = (notevil + 1609)/2; - break; -case "z1610": - notevil = (notevil + 1610)/2; - break; -case "z1611": - notevil = (notevil + 1611)/2; - break; -case "z1612": - notevil = (notevil + 1612)/2; - break; -case "z1613": - notevil = (notevil + 1613)/2; - break; -case "z1614": - notevil = (notevil + 1614)/2; - break; -case "z1615": - notevil = (notevil + 1615)/2; - break; -case "z1616": - notevil = (notevil + 1616)/2; - break; -case "z1617": - notevil = (notevil + 1617)/2; - break; -case "z1618": - notevil = (notevil + 1618)/2; - break; -case "z1619": - notevil = (notevil + 1619)/2; - break; -case "z1620": - notevil = (notevil + 1620)/2; - break; -case "z1621": - notevil = (notevil + 1621)/2; - break; -case "z1622": - notevil = (notevil + 1622)/2; - break; -case "z1623": - notevil = (notevil + 1623)/2; - break; -case "z1624": - notevil = (notevil + 1624)/2; - break; -case "z1625": - notevil = (notevil + 1625)/2; - break; -case "z1626": - notevil = (notevil + 1626)/2; - break; -case "z1627": - notevil = (notevil + 1627)/2; - break; -case "z1628": - notevil = (notevil + 1628)/2; - break; -case "z1629": - notevil = (notevil + 1629)/2; - break; -case "z1630": - notevil = (notevil + 1630)/2; - break; -case "z1631": - notevil = (notevil + 1631)/2; - break; -case "z1632": - notevil = (notevil + 1632)/2; - break; -case "z1633": - notevil = (notevil + 1633)/2; - break; -case "z1634": - notevil = (notevil + 1634)/2; - break; -case "z1635": - notevil = (notevil + 1635)/2; - break; -case "z1636": - notevil = (notevil + 1636)/2; - break; -case "z1637": - notevil = (notevil + 1637)/2; - break; -case "z1638": - notevil = (notevil + 1638)/2; - break; -case "z1639": - notevil = (notevil + 1639)/2; - break; -case "z1640": - notevil = (notevil + 1640)/2; - break; -case "z1641": - notevil = (notevil + 1641)/2; - break; -case "z1642": - notevil = (notevil + 1642)/2; - break; -case "z1643": - notevil = (notevil + 1643)/2; - break; -case "z1644": - notevil = (notevil + 1644)/2; - break; -case "z1645": - notevil = (notevil + 1645)/2; - break; -case "z1646": - notevil = (notevil + 1646)/2; - break; -case "z1647": - notevil = (notevil + 1647)/2; - break; -case "z1648": - notevil = (notevil + 1648)/2; - break; -case "z1649": - notevil = (notevil + 1649)/2; - break; -case "z1650": - notevil = (notevil + 1650)/2; - break; -case "z1651": - notevil = (notevil + 1651)/2; - break; -case "z1652": - notevil = (notevil + 1652)/2; - break; -case "z1653": - notevil = (notevil + 1653)/2; - break; -case "z1654": - notevil = (notevil + 1654)/2; - break; -case "z1655": - notevil = (notevil + 1655)/2; - break; -case "z1656": - notevil = (notevil + 1656)/2; - break; -case "z1657": - notevil = (notevil + 1657)/2; - break; -case "z1658": - notevil = (notevil + 1658)/2; - break; -case "z1659": - notevil = (notevil + 1659)/2; - break; -case "z1660": - notevil = (notevil + 1660)/2; - break; -case "z1661": - notevil = (notevil + 1661)/2; - break; -case "z1662": - notevil = (notevil + 1662)/2; - break; -case "z1663": - notevil = (notevil + 1663)/2; - break; -case "z1664": - notevil = (notevil + 1664)/2; - break; -case "z1665": - notevil = (notevil + 1665)/2; - break; -case "z1666": - notevil = (notevil + 1666)/2; - break; -case "z1667": - notevil = (notevil + 1667)/2; - break; -case "z1668": - notevil = (notevil + 1668)/2; - break; -case "z1669": - notevil = (notevil + 1669)/2; - break; -case "z1670": - notevil = (notevil + 1670)/2; - break; -case "z1671": - notevil = (notevil + 1671)/2; - break; -case "z1672": - notevil = (notevil + 1672)/2; - break; -case "z1673": - notevil = (notevil + 1673)/2; - break; -case "z1674": - notevil = (notevil + 1674)/2; - break; -case "z1675": - notevil = (notevil + 1675)/2; - break; -case "z1676": - notevil = (notevil + 1676)/2; - break; -case "z1677": - notevil = (notevil + 1677)/2; - break; -case "z1678": - notevil = (notevil + 1678)/2; - break; -case "z1679": - notevil = (notevil + 1679)/2; - break; -case "z1680": - notevil = (notevil + 1680)/2; - break; -case "z1681": - notevil = (notevil + 1681)/2; - break; -case "z1682": - notevil = (notevil + 1682)/2; - break; -case "z1683": - notevil = (notevil + 1683)/2; - break; -case "z1684": - notevil = (notevil + 1684)/2; - break; -case "z1685": - notevil = (notevil + 1685)/2; - break; -case "z1686": - notevil = (notevil + 1686)/2; - break; -case "z1687": - notevil = (notevil + 1687)/2; - break; -case "z1688": - notevil = (notevil + 1688)/2; - break; -case "z1689": - notevil = (notevil + 1689)/2; - break; -case "z1690": - notevil = (notevil + 1690)/2; - break; -case "z1691": - notevil = (notevil + 1691)/2; - break; -case "z1692": - notevil = (notevil + 1692)/2; - break; -case "z1693": - notevil = (notevil + 1693)/2; - break; -case "z1694": - notevil = (notevil + 1694)/2; - break; -case "z1695": - notevil = (notevil + 1695)/2; - break; -case "z1696": - notevil = (notevil + 1696)/2; - break; -case "z1697": - notevil = (notevil + 1697)/2; - break; -case "z1698": - notevil = (notevil + 1698)/2; - break; -case "z1699": - notevil = (notevil + 1699)/2; - break; -case "z1700": - notevil = (notevil + 1700)/2; - break; -case "z1701": - notevil = (notevil + 1701)/2; - break; -case "z1702": - notevil = (notevil + 1702)/2; - break; -case "z1703": - notevil = (notevil + 1703)/2; - break; -case "z1704": - notevil = (notevil + 1704)/2; - break; -case "z1705": - notevil = (notevil + 1705)/2; - break; -case "z1706": - notevil = (notevil + 1706)/2; - break; -case "z1707": - notevil = (notevil + 1707)/2; - break; -case "z1708": - notevil = (notevil + 1708)/2; - break; -case "z1709": - notevil = (notevil + 1709)/2; - break; -case "z1710": - notevil = (notevil + 1710)/2; - break; -case "z1711": - notevil = (notevil + 1711)/2; - break; -case "z1712": - notevil = (notevil + 1712)/2; - break; -case "z1713": - notevil = (notevil + 1713)/2; - break; -case "z1714": - notevil = (notevil + 1714)/2; - break; -case "z1715": - notevil = (notevil + 1715)/2; - break; -case "z1716": - notevil = (notevil + 1716)/2; - break; -case "z1717": - notevil = (notevil + 1717)/2; - break; -case "z1718": - notevil = (notevil + 1718)/2; - break; -case "z1719": - notevil = (notevil + 1719)/2; - break; -case "z1720": - notevil = (notevil + 1720)/2; - break; -case "z1721": - notevil = (notevil + 1721)/2; - break; -case "z1722": - notevil = (notevil + 1722)/2; - break; -case "z1723": - notevil = (notevil + 1723)/2; - break; -case "z1724": - notevil = (notevil + 1724)/2; - break; -case "z1725": - notevil = (notevil + 1725)/2; - break; -case "z1726": - notevil = (notevil + 1726)/2; - break; -case "z1727": - notevil = (notevil + 1727)/2; - break; -case "z1728": - notevil = (notevil + 1728)/2; - break; -case "z1729": - notevil = (notevil + 1729)/2; - break; -case "z1730": - notevil = (notevil + 1730)/2; - break; -case "z1731": - notevil = (notevil + 1731)/2; - break; -case "z1732": - notevil = (notevil + 1732)/2; - break; -case "z1733": - notevil = (notevil + 1733)/2; - break; -case "z1734": - notevil = (notevil + 1734)/2; - break; -case "z1735": - notevil = (notevil + 1735)/2; - break; -case "z1736": - notevil = (notevil + 1736)/2; - break; -case "z1737": - notevil = (notevil + 1737)/2; - break; -case "z1738": - notevil = (notevil + 1738)/2; - break; -case "z1739": - notevil = (notevil + 1739)/2; - break; -case "z1740": - notevil = (notevil + 1740)/2; - break; -case "z1741": - notevil = (notevil + 1741)/2; - break; -case "z1742": - notevil = (notevil + 1742)/2; - break; -case "z1743": - notevil = (notevil + 1743)/2; - break; -case "z1744": - notevil = (notevil + 1744)/2; - break; -case "z1745": - notevil = (notevil + 1745)/2; - break; -case "z1746": - notevil = (notevil + 1746)/2; - break; -case "z1747": - notevil = (notevil + 1747)/2; - break; -case "z1748": - notevil = (notevil + 1748)/2; - break; -case "z1749": - notevil = (notevil + 1749)/2; - break; -case "z1750": - notevil = (notevil + 1750)/2; - break; -case "z1751": - notevil = (notevil + 1751)/2; - break; -case "z1752": - notevil = (notevil + 1752)/2; - break; -case "z1753": - notevil = (notevil + 1753)/2; - break; -case "z1754": - notevil = (notevil + 1754)/2; - break; -case "z1755": - notevil = (notevil + 1755)/2; - break; -case "z1756": - notevil = (notevil + 1756)/2; - break; -case "z1757": - notevil = (notevil + 1757)/2; - break; -case "z1758": - notevil = (notevil + 1758)/2; - break; -case "z1759": - notevil = (notevil + 1759)/2; - break; -case "z1760": - notevil = (notevil + 1760)/2; - break; -case "z1761": - notevil = (notevil + 1761)/2; - break; -case "z1762": - notevil = (notevil + 1762)/2; - break; -case "z1763": - notevil = (notevil + 1763)/2; - break; -case "z1764": - notevil = (notevil + 1764)/2; - break; -case "z1765": - notevil = (notevil + 1765)/2; - break; -case "z1766": - notevil = (notevil + 1766)/2; - break; -case "z1767": - notevil = (notevil + 1767)/2; - break; -case "z1768": - notevil = (notevil + 1768)/2; - break; -case "z1769": - notevil = (notevil + 1769)/2; - break; -case "z1770": - notevil = (notevil + 1770)/2; - break; -case "z1771": - notevil = (notevil + 1771)/2; - break; -case "z1772": - notevil = (notevil + 1772)/2; - break; -case "z1773": - notevil = (notevil + 1773)/2; - break; -case "z1774": - notevil = (notevil + 1774)/2; - break; -case "z1775": - notevil = (notevil + 1775)/2; - break; -case "z1776": - notevil = (notevil + 1776)/2; - break; -case "z1777": - notevil = (notevil + 1777)/2; - break; -case "z1778": - notevil = (notevil + 1778)/2; - break; -case "z1779": - notevil = (notevil + 1779)/2; - break; -case "z1780": - notevil = (notevil + 1780)/2; - break; -case "z1781": - notevil = (notevil + 1781)/2; - break; -case "z1782": - notevil = (notevil + 1782)/2; - break; -case "z1783": - notevil = (notevil + 1783)/2; - break; -case "z1784": - notevil = (notevil + 1784)/2; - break; -case "z1785": - notevil = (notevil + 1785)/2; - break; -case "z1786": - notevil = (notevil + 1786)/2; - break; -case "z1787": - notevil = (notevil + 1787)/2; - break; -case "z1788": - notevil = (notevil + 1788)/2; - break; -case "z1789": - notevil = (notevil + 1789)/2; - break; -case "z1790": - notevil = (notevil + 1790)/2; - break; -case "z1791": - notevil = (notevil + 1791)/2; - break; -case "z1792": - notevil = (notevil + 1792)/2; - break; -case "z1793": - notevil = (notevil + 1793)/2; - break; -case "z1794": - notevil = (notevil + 1794)/2; - break; -case "z1795": - notevil = (notevil + 1795)/2; - break; -case "z1796": - notevil = (notevil + 1796)/2; - break; -case "z1797": - notevil = (notevil + 1797)/2; - break; -case "z1798": - notevil = (notevil + 1798)/2; - break; -case "z1799": - notevil = (notevil + 1799)/2; - break; - -default: - dut = 3; - break; -} - -reportCompare(expect, actual, summary); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-74474-001.js b/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-74474-001.js deleted file mode 100644 index 93dc425f72..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-74474-001.js +++ /dev/null @@ -1,139 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 01 May 2001 - * - * SUMMARY: Regression test for Bugzilla bug 74474 - *"switch() misbehaves with duplicated labels" - * - * See ECMA3 Section 12.11, "The switch Statement" - * See http://bugzilla.mozilla.org/show_bug.cgi?id=74474 - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-74474-001.js'; -var UBound = 0; -var BUGNUMBER = 74474; -var summary = 'Testing switch statements with duplicate labels'; -var status = ''; -var statusitems = [ ]; -var actual = ''; -var actualvalues = [ ]; -var expect= ''; -var expectedvalues = [ ]; - - -status = 'Section A of test: the string literal "1" as a duplicate label'; -actual = ''; -switch ('1') -{ -case '1': - actual += 'a'; -case '1': - actual += 'b'; -} -expect = 'ab'; -addThis(); - - -status = 'Section B of test: the numeric literal 1 as a duplicate label'; -actual = ''; -switch (1) -{ -case 1: - actual += 'a'; -case 1: - actual += 'b'; -} -expect = 'ab'; -addThis(); - - -status = 'Section C of test: the numeric literal 1 as a duplicate label, via a function parameter'; -tryThis(1); -function tryThis(x) -{ - actual = ''; - - switch (x) - { - case x: - actual += 'a'; - case x: - actual += 'b'; - } -} -expect = 'ab'; -addThis(); - - - -//--------------------------------------------------------------------------------- -test(); -//--------------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], getStatus(i)); - } - - exitFunc ('test'); -} - - -function getStatus(i) -{ - return statusitems[i]; -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-74474-002.js b/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-74474-002.js deleted file mode 100644 index 1c54849c48..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-74474-002.js +++ /dev/null @@ -1,9097 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * brendan@mozilla.org, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 09 May 2001 - * - * SUMMARY: Regression test for Bugzilla bug 74474 - * "switch() misbehaves with duplicated labels" - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=74474 - * See ECMA3 Section 12.11, "The switch Statement" - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-74474-002.js'; -var UBound = 0; -var BUGNUMBER = 74474; -var summary = 'Test of switch statement that overflows the stack-allocated bitmap'; -var status = '(No duplicated labels)'; -var statusitems = [ ]; -var actual = ''; -var actualvalues = [ ]; -var expect= ''; -var expectedvalues = [ ]; -var x = 3; - - -switch (x) -{ -case 0: -case 1: -case 2: -case 3: -case 4: -case 5: -case 6: -case 7: -case 8: -case 9: -case 10: -case 11: -case 12: -case 13: -case 14: -case 15: -case 16: -case 17: -case 18: -case 19: -case 20: -case 21: -case 22: -case 23: -case 24: -case 25: -case 26: -case 27: -case 28: -case 29: -case 30: -case 31: -case 32: -case 33: -case 34: -case 35: -case 36: -case 37: -case 38: -case 39: -case 40: -case 41: -case 42: -case 43: -case 44: -case 45: -case 46: -case 47: -case 48: -case 49: -case 50: -case 51: -case 52: -case 53: -case 54: -case 55: -case 56: -case 57: -case 58: -case 59: -case 60: -case 61: -case 62: -case 63: -case 64: -case 65: -case 66: -case 67: -case 68: -case 69: -case 70: -case 71: -case 72: -case 73: -case 74: -case 75: -case 76: -case 77: -case 78: -case 79: -case 80: -case 81: -case 82: -case 83: -case 84: -case 85: -case 86: -case 87: -case 88: -case 89: -case 90: -case 91: -case 92: -case 93: -case 94: -case 95: -case 96: -case 97: -case 98: -case 99: -case 100: -case 101: -case 102: -case 103: -case 104: -case 105: -case 106: -case 107: -case 108: -case 109: -case 110: -case 111: -case 112: -case 113: -case 114: -case 115: -case 116: -case 117: -case 118: -case 119: -case 120: -case 121: -case 122: -case 123: -case 124: -case 125: -case 126: -case 127: -case 128: -case 129: -case 130: -case 131: -case 132: -case 133: -case 134: -case 135: -case 136: -case 137: -case 138: -case 139: -case 140: -case 141: -case 142: -case 143: -case 144: -case 145: -case 146: -case 147: -case 148: -case 149: -case 150: -case 151: -case 152: -case 153: -case 154: -case 155: -case 156: -case 157: -case 158: -case 159: -case 160: -case 161: -case 162: -case 163: -case 164: -case 165: -case 166: -case 167: -case 168: -case 169: -case 170: -case 171: -case 172: -case 173: -case 174: -case 175: -case 176: -case 177: -case 178: -case 179: -case 180: -case 181: -case 182: -case 183: -case 184: -case 185: -case 186: -case 187: -case 188: -case 189: -case 190: -case 191: -case 192: -case 193: -case 194: -case 195: -case 196: -case 197: -case 198: -case 199: -case 200: -case 201: -case 202: -case 203: -case 204: -case 205: -case 206: -case 207: -case 208: -case 209: -case 210: -case 211: -case 212: -case 213: -case 214: -case 215: -case 216: -case 217: -case 218: -case 219: -case 220: -case 221: -case 222: -case 223: -case 224: -case 225: -case 226: -case 227: -case 228: -case 229: -case 230: -case 231: -case 232: -case 233: -case 234: -case 235: -case 236: -case 237: -case 238: -case 239: -case 240: -case 241: -case 242: -case 243: -case 244: -case 245: -case 246: -case 247: -case 248: -case 249: -case 250: -case 251: -case 252: -case 253: -case 254: -case 255: -case 256: -case 257: -case 258: -case 259: -case 260: -case 261: -case 262: -case 263: -case 264: -case 265: -case 266: -case 267: -case 268: -case 269: -case 270: -case 271: -case 272: -case 273: -case 274: -case 275: -case 276: -case 277: -case 278: -case 279: -case 280: -case 281: -case 282: -case 283: -case 284: -case 285: -case 286: -case 287: -case 288: -case 289: -case 290: -case 291: -case 292: -case 293: -case 294: -case 295: -case 296: -case 297: -case 298: -case 299: -case 300: -case 301: -case 302: -case 303: -case 304: -case 305: -case 306: -case 307: -case 308: -case 309: -case 310: -case 311: -case 312: -case 313: -case 314: -case 315: -case 316: -case 317: -case 318: -case 319: -case 320: -case 321: -case 322: -case 323: -case 324: -case 325: -case 326: -case 327: -case 328: -case 329: -case 330: -case 331: -case 332: -case 333: -case 334: -case 335: -case 336: -case 337: -case 338: -case 339: -case 340: -case 341: -case 342: -case 343: -case 344: -case 345: -case 346: -case 347: -case 348: -case 349: -case 350: -case 351: -case 352: -case 353: -case 354: -case 355: -case 356: -case 357: -case 358: -case 359: -case 360: -case 361: -case 362: -case 363: -case 364: -case 365: -case 366: -case 367: -case 368: -case 369: -case 370: -case 371: -case 372: -case 373: -case 374: -case 375: -case 376: -case 377: -case 378: -case 379: -case 380: -case 381: -case 382: -case 383: -case 384: -case 385: -case 386: -case 387: -case 388: -case 389: -case 390: -case 391: -case 392: -case 393: -case 394: -case 395: -case 396: -case 397: -case 398: -case 399: -case 400: -case 401: -case 402: -case 403: -case 404: -case 405: -case 406: -case 407: -case 408: -case 409: -case 410: -case 411: -case 412: -case 413: -case 414: -case 415: -case 416: -case 417: -case 418: -case 419: -case 420: -case 421: -case 422: -case 423: -case 424: -case 425: -case 426: -case 427: -case 428: -case 429: -case 430: -case 431: -case 432: -case 433: -case 434: -case 435: -case 436: -case 437: -case 438: -case 439: -case 440: -case 441: -case 442: -case 443: -case 444: -case 445: -case 446: -case 447: -case 448: -case 449: -case 450: -case 451: -case 452: -case 453: -case 454: -case 455: -case 456: -case 457: -case 458: -case 459: -case 460: -case 461: -case 462: -case 463: -case 464: -case 465: -case 466: -case 467: -case 468: -case 469: -case 470: -case 471: -case 472: -case 473: -case 474: -case 475: -case 476: -case 477: -case 478: -case 479: -case 480: -case 481: -case 482: -case 483: -case 484: -case 485: -case 486: -case 487: -case 488: -case 489: -case 490: -case 491: -case 492: -case 493: -case 494: -case 495: -case 496: -case 497: -case 498: -case 499: -case 500: -case 501: -case 502: -case 503: -case 504: -case 505: -case 506: -case 507: -case 508: -case 509: -case 510: -case 511: -case 512: -case 513: -case 514: -case 515: -case 516: -case 517: -case 518: -case 519: -case 520: -case 521: -case 522: -case 523: -case 524: -case 525: -case 526: -case 527: -case 528: -case 529: -case 530: -case 531: -case 532: -case 533: -case 534: -case 535: -case 536: -case 537: -case 538: -case 539: -case 540: -case 541: -case 542: -case 543: -case 544: -case 545: -case 546: -case 547: -case 548: -case 549: -case 550: -case 551: -case 552: -case 553: -case 554: -case 555: -case 556: -case 557: -case 558: -case 559: -case 560: -case 561: -case 562: -case 563: -case 564: -case 565: -case 566: -case 567: -case 568: -case 569: -case 570: -case 571: -case 572: -case 573: -case 574: -case 575: -case 576: -case 577: -case 578: -case 579: -case 580: -case 581: -case 582: -case 583: -case 584: -case 585: -case 586: -case 587: -case 588: -case 589: -case 590: -case 591: -case 592: -case 593: -case 594: -case 595: -case 596: -case 597: -case 598: -case 599: -case 600: -case 601: -case 602: -case 603: -case 604: -case 605: -case 606: -case 607: -case 608: -case 609: -case 610: -case 611: -case 612: -case 613: -case 614: -case 615: -case 616: -case 617: -case 618: -case 619: -case 620: -case 621: -case 622: -case 623: -case 624: -case 625: -case 626: -case 627: -case 628: -case 629: -case 630: -case 631: -case 632: -case 633: -case 634: -case 635: -case 636: -case 637: -case 638: -case 639: -case 640: -case 641: -case 642: -case 643: -case 644: -case 645: -case 646: -case 647: -case 648: -case 649: -case 650: -case 651: -case 652: -case 653: -case 654: -case 655: -case 656: -case 657: -case 658: -case 659: -case 660: -case 661: -case 662: -case 663: -case 664: -case 665: -case 666: -case 667: -case 668: -case 669: -case 670: -case 671: -case 672: -case 673: -case 674: -case 675: -case 676: -case 677: -case 678: -case 679: -case 680: -case 681: -case 682: -case 683: -case 684: -case 685: -case 686: -case 687: -case 688: -case 689: -case 690: -case 691: -case 692: -case 693: -case 694: -case 695: -case 696: -case 697: -case 698: -case 699: -case 700: -case 701: -case 702: -case 703: -case 704: -case 705: -case 706: -case 707: -case 708: -case 709: -case 710: -case 711: -case 712: -case 713: -case 714: -case 715: -case 716: -case 717: -case 718: -case 719: -case 720: -case 721: -case 722: -case 723: -case 724: -case 725: -case 726: -case 727: -case 728: -case 729: -case 730: -case 731: -case 732: -case 733: -case 734: -case 735: -case 736: -case 737: -case 738: -case 739: -case 740: -case 741: -case 742: -case 743: -case 744: -case 745: -case 746: -case 747: -case 748: -case 749: -case 750: -case 751: -case 752: -case 753: -case 754: -case 755: -case 756: -case 757: -case 758: -case 759: -case 760: -case 761: -case 762: -case 763: -case 764: -case 765: -case 766: -case 767: -case 768: -case 769: -case 770: -case 771: -case 772: -case 773: -case 774: -case 775: -case 776: -case 777: -case 778: -case 779: -case 780: -case 781: -case 782: -case 783: -case 784: -case 785: -case 786: -case 787: -case 788: -case 789: -case 790: -case 791: -case 792: -case 793: -case 794: -case 795: -case 796: -case 797: -case 798: -case 799: -case 800: -case 801: -case 802: -case 803: -case 804: -case 805: -case 806: -case 807: -case 808: -case 809: -case 810: -case 811: -case 812: -case 813: -case 814: -case 815: -case 816: -case 817: -case 818: -case 819: -case 820: -case 821: -case 822: -case 823: -case 824: -case 825: -case 826: -case 827: -case 828: -case 829: -case 830: -case 831: -case 832: -case 833: -case 834: -case 835: -case 836: -case 837: -case 838: -case 839: -case 840: -case 841: -case 842: -case 843: -case 844: -case 845: -case 846: -case 847: -case 848: -case 849: -case 850: -case 851: -case 852: -case 853: -case 854: -case 855: -case 856: -case 857: -case 858: -case 859: -case 860: -case 861: -case 862: -case 863: -case 864: -case 865: -case 866: -case 867: -case 868: -case 869: -case 870: -case 871: -case 872: -case 873: -case 874: -case 875: -case 876: -case 877: -case 878: -case 879: -case 880: -case 881: -case 882: -case 883: -case 884: -case 885: -case 886: -case 887: -case 888: -case 889: -case 890: -case 891: -case 892: -case 893: -case 894: -case 895: -case 896: -case 897: -case 898: -case 899: -case 900: -case 901: -case 902: -case 903: -case 904: -case 905: -case 906: -case 907: -case 908: -case 909: -case 910: -case 911: -case 912: -case 913: -case 914: -case 915: -case 916: -case 917: -case 918: -case 919: -case 920: -case 921: -case 922: -case 923: -case 924: -case 925: -case 926: -case 927: -case 928: -case 929: -case 930: -case 931: -case 932: -case 933: -case 934: -case 935: -case 936: -case 937: -case 938: -case 939: -case 940: -case 941: -case 942: -case 943: -case 944: -case 945: -case 946: -case 947: -case 948: -case 949: -case 950: -case 951: -case 952: -case 953: -case 954: -case 955: -case 956: -case 957: -case 958: -case 959: -case 960: -case 961: -case 962: -case 963: -case 964: -case 965: -case 966: -case 967: -case 968: -case 969: -case 970: -case 971: -case 972: -case 973: -case 974: -case 975: -case 976: -case 977: -case 978: -case 979: -case 980: -case 981: -case 982: -case 983: -case 984: -case 985: -case 986: -case 987: -case 988: -case 989: -case 990: -case 991: -case 992: -case 993: -case 994: -case 995: -case 996: -case 997: -case 998: -case 999: -case 1000: -case 1001: -case 1002: -case 1003: -case 1004: -case 1005: -case 1006: -case 1007: -case 1008: -case 1009: -case 1010: -case 1011: -case 1012: -case 1013: -case 1014: -case 1015: -case 1016: -case 1017: -case 1018: -case 1019: -case 1020: -case 1021: -case 1022: -case 1023: -case 1024: -case 1025: -case 1026: -case 1027: -case 1028: -case 1029: -case 1030: -case 1031: -case 1032: -case 1033: -case 1034: -case 1035: -case 1036: -case 1037: -case 1038: -case 1039: -case 1040: -case 1041: -case 1042: -case 1043: -case 1044: -case 1045: -case 1046: -case 1047: -case 1048: -case 1049: -case 1050: -case 1051: -case 1052: -case 1053: -case 1054: -case 1055: -case 1056: -case 1057: -case 1058: -case 1059: -case 1060: -case 1061: -case 1062: -case 1063: -case 1064: -case 1065: -case 1066: -case 1067: -case 1068: -case 1069: -case 1070: -case 1071: -case 1072: -case 1073: -case 1074: -case 1075: -case 1076: -case 1077: -case 1078: -case 1079: -case 1080: -case 1081: -case 1082: -case 1083: -case 1084: -case 1085: -case 1086: -case 1087: -case 1088: -case 1089: -case 1090: -case 1091: -case 1092: -case 1093: -case 1094: -case 1095: -case 1096: -case 1097: -case 1098: -case 1099: -case 1100: -case 1101: -case 1102: -case 1103: -case 1104: -case 1105: -case 1106: -case 1107: -case 1108: -case 1109: -case 1110: -case 1111: -case 1112: -case 1113: -case 1114: -case 1115: -case 1116: -case 1117: -case 1118: -case 1119: -case 1120: -case 1121: -case 1122: -case 1123: -case 1124: -case 1125: -case 1126: -case 1127: -case 1128: -case 1129: -case 1130: -case 1131: -case 1132: -case 1133: -case 1134: -case 1135: -case 1136: -case 1137: -case 1138: -case 1139: -case 1140: -case 1141: -case 1142: -case 1143: -case 1144: -case 1145: -case 1146: -case 1147: -case 1148: -case 1149: -case 1150: -case 1151: -case 1152: -case 1153: -case 1154: -case 1155: -case 1156: -case 1157: -case 1158: -case 1159: -case 1160: -case 1161: -case 1162: -case 1163: -case 1164: -case 1165: -case 1166: -case 1167: -case 1168: -case 1169: -case 1170: -case 1171: -case 1172: -case 1173: -case 1174: -case 1175: -case 1176: -case 1177: -case 1178: -case 1179: -case 1180: -case 1181: -case 1182: -case 1183: -case 1184: -case 1185: -case 1186: -case 1187: -case 1188: -case 1189: -case 1190: -case 1191: -case 1192: -case 1193: -case 1194: -case 1195: -case 1196: -case 1197: -case 1198: -case 1199: -case 1200: -case 1201: -case 1202: -case 1203: -case 1204: -case 1205: -case 1206: -case 1207: -case 1208: -case 1209: -case 1210: -case 1211: -case 1212: -case 1213: -case 1214: -case 1215: -case 1216: -case 1217: -case 1218: -case 1219: -case 1220: -case 1221: -case 1222: -case 1223: -case 1224: -case 1225: -case 1226: -case 1227: -case 1228: -case 1229: -case 1230: -case 1231: -case 1232: -case 1233: -case 1234: -case 1235: -case 1236: -case 1237: -case 1238: -case 1239: -case 1240: -case 1241: -case 1242: -case 1243: -case 1244: -case 1245: -case 1246: -case 1247: -case 1248: -case 1249: -case 1250: -case 1251: -case 1252: -case 1253: -case 1254: -case 1255: -case 1256: -case 1257: -case 1258: -case 1259: -case 1260: -case 1261: -case 1262: -case 1263: -case 1264: -case 1265: -case 1266: -case 1267: -case 1268: -case 1269: -case 1270: -case 1271: -case 1272: -case 1273: -case 1274: -case 1275: -case 1276: -case 1277: -case 1278: -case 1279: -case 1280: -case 1281: -case 1282: -case 1283: -case 1284: -case 1285: -case 1286: -case 1287: -case 1288: -case 1289: -case 1290: -case 1291: -case 1292: -case 1293: -case 1294: -case 1295: -case 1296: -case 1297: -case 1298: -case 1299: -case 1300: -case 1301: -case 1302: -case 1303: -case 1304: -case 1305: -case 1306: -case 1307: -case 1308: -case 1309: -case 1310: -case 1311: -case 1312: -case 1313: -case 1314: -case 1315: -case 1316: -case 1317: -case 1318: -case 1319: -case 1320: -case 1321: -case 1322: -case 1323: -case 1324: -case 1325: -case 1326: -case 1327: -case 1328: -case 1329: -case 1330: -case 1331: -case 1332: -case 1333: -case 1334: -case 1335: -case 1336: -case 1337: -case 1338: -case 1339: -case 1340: -case 1341: -case 1342: -case 1343: -case 1344: -case 1345: -case 1346: -case 1347: -case 1348: -case 1349: -case 1350: -case 1351: -case 1352: -case 1353: -case 1354: -case 1355: -case 1356: -case 1357: -case 1358: -case 1359: -case 1360: -case 1361: -case 1362: -case 1363: -case 1364: -case 1365: -case 1366: -case 1367: -case 1368: -case 1369: -case 1370: -case 1371: -case 1372: -case 1373: -case 1374: -case 1375: -case 1376: -case 1377: -case 1378: -case 1379: -case 1380: -case 1381: -case 1382: -case 1383: -case 1384: -case 1385: -case 1386: -case 1387: -case 1388: -case 1389: -case 1390: -case 1391: -case 1392: -case 1393: -case 1394: -case 1395: -case 1396: -case 1397: -case 1398: -case 1399: -case 1400: -case 1401: -case 1402: -case 1403: -case 1404: -case 1405: -case 1406: -case 1407: -case 1408: -case 1409: -case 1410: -case 1411: -case 1412: -case 1413: -case 1414: -case 1415: -case 1416: -case 1417: -case 1418: -case 1419: -case 1420: -case 1421: -case 1422: -case 1423: -case 1424: -case 1425: -case 1426: -case 1427: -case 1428: -case 1429: -case 1430: -case 1431: -case 1432: -case 1433: -case 1434: -case 1435: -case 1436: -case 1437: -case 1438: -case 1439: -case 1440: -case 1441: -case 1442: -case 1443: -case 1444: -case 1445: -case 1446: -case 1447: -case 1448: -case 1449: -case 1450: -case 1451: -case 1452: -case 1453: -case 1454: -case 1455: -case 1456: -case 1457: -case 1458: -case 1459: -case 1460: -case 1461: -case 1462: -case 1463: -case 1464: -case 1465: -case 1466: -case 1467: -case 1468: -case 1469: -case 1470: -case 1471: -case 1472: -case 1473: -case 1474: -case 1475: -case 1476: -case 1477: -case 1478: -case 1479: -case 1480: -case 1481: -case 1482: -case 1483: -case 1484: -case 1485: -case 1486: -case 1487: -case 1488: -case 1489: -case 1490: -case 1491: -case 1492: -case 1493: -case 1494: -case 1495: -case 1496: -case 1497: -case 1498: -case 1499: -case 1500: -case 1501: -case 1502: -case 1503: -case 1504: -case 1505: -case 1506: -case 1507: -case 1508: -case 1509: -case 1510: -case 1511: -case 1512: -case 1513: -case 1514: -case 1515: -case 1516: -case 1517: -case 1518: -case 1519: -case 1520: -case 1521: -case 1522: -case 1523: -case 1524: -case 1525: -case 1526: -case 1527: -case 1528: -case 1529: -case 1530: -case 1531: -case 1532: -case 1533: -case 1534: -case 1535: -case 1536: -case 1537: -case 1538: -case 1539: -case 1540: -case 1541: -case 1542: -case 1543: -case 1544: -case 1545: -case 1546: -case 1547: -case 1548: -case 1549: -case 1550: -case 1551: -case 1552: -case 1553: -case 1554: -case 1555: -case 1556: -case 1557: -case 1558: -case 1559: -case 1560: -case 1561: -case 1562: -case 1563: -case 1564: -case 1565: -case 1566: -case 1567: -case 1568: -case 1569: -case 1570: -case 1571: -case 1572: -case 1573: -case 1574: -case 1575: -case 1576: -case 1577: -case 1578: -case 1579: -case 1580: -case 1581: -case 1582: -case 1583: -case 1584: -case 1585: -case 1586: -case 1587: -case 1588: -case 1589: -case 1590: -case 1591: -case 1592: -case 1593: -case 1594: -case 1595: -case 1596: -case 1597: -case 1598: -case 1599: -case 1600: -case 1601: -case 1602: -case 1603: -case 1604: -case 1605: -case 1606: -case 1607: -case 1608: -case 1609: -case 1610: -case 1611: -case 1612: -case 1613: -case 1614: -case 1615: -case 1616: -case 1617: -case 1618: -case 1619: -case 1620: -case 1621: -case 1622: -case 1623: -case 1624: -case 1625: -case 1626: -case 1627: -case 1628: -case 1629: -case 1630: -case 1631: -case 1632: -case 1633: -case 1634: -case 1635: -case 1636: -case 1637: -case 1638: -case 1639: -case 1640: -case 1641: -case 1642: -case 1643: -case 1644: -case 1645: -case 1646: -case 1647: -case 1648: -case 1649: -case 1650: -case 1651: -case 1652: -case 1653: -case 1654: -case 1655: -case 1656: -case 1657: -case 1658: -case 1659: -case 1660: -case 1661: -case 1662: -case 1663: -case 1664: -case 1665: -case 1666: -case 1667: -case 1668: -case 1669: -case 1670: -case 1671: -case 1672: -case 1673: -case 1674: -case 1675: -case 1676: -case 1677: -case 1678: -case 1679: -case 1680: -case 1681: -case 1682: -case 1683: -case 1684: -case 1685: -case 1686: -case 1687: -case 1688: -case 1689: -case 1690: -case 1691: -case 1692: -case 1693: -case 1694: -case 1695: -case 1696: -case 1697: -case 1698: -case 1699: -case 1700: -case 1701: -case 1702: -case 1703: -case 1704: -case 1705: -case 1706: -case 1707: -case 1708: -case 1709: -case 1710: -case 1711: -case 1712: -case 1713: -case 1714: -case 1715: -case 1716: -case 1717: -case 1718: -case 1719: -case 1720: -case 1721: -case 1722: -case 1723: -case 1724: -case 1725: -case 1726: -case 1727: -case 1728: -case 1729: -case 1730: -case 1731: -case 1732: -case 1733: -case 1734: -case 1735: -case 1736: -case 1737: -case 1738: -case 1739: -case 1740: -case 1741: -case 1742: -case 1743: -case 1744: -case 1745: -case 1746: -case 1747: -case 1748: -case 1749: -case 1750: -case 1751: -case 1752: -case 1753: -case 1754: -case 1755: -case 1756: -case 1757: -case 1758: -case 1759: -case 1760: -case 1761: -case 1762: -case 1763: -case 1764: -case 1765: -case 1766: -case 1767: -case 1768: -case 1769: -case 1770: -case 1771: -case 1772: -case 1773: -case 1774: -case 1775: -case 1776: -case 1777: -case 1778: -case 1779: -case 1780: -case 1781: -case 1782: -case 1783: -case 1784: -case 1785: -case 1786: -case 1787: -case 1788: -case 1789: -case 1790: -case 1791: -case 1792: -case 1793: -case 1794: -case 1795: -case 1796: -case 1797: -case 1798: -case 1799: -case 1800: -case 1801: -case 1802: -case 1803: -case 1804: -case 1805: -case 1806: -case 1807: -case 1808: -case 1809: -case 1810: -case 1811: -case 1812: -case 1813: -case 1814: -case 1815: -case 1816: -case 1817: -case 1818: -case 1819: -case 1820: -case 1821: -case 1822: -case 1823: -case 1824: -case 1825: -case 1826: -case 1827: -case 1828: -case 1829: -case 1830: -case 1831: -case 1832: -case 1833: -case 1834: -case 1835: -case 1836: -case 1837: -case 1838: -case 1839: -case 1840: -case 1841: -case 1842: -case 1843: -case 1844: -case 1845: -case 1846: -case 1847: -case 1848: -case 1849: -case 1850: -case 1851: -case 1852: -case 1853: -case 1854: -case 1855: -case 1856: -case 1857: -case 1858: -case 1859: -case 1860: -case 1861: -case 1862: -case 1863: -case 1864: -case 1865: -case 1866: -case 1867: -case 1868: -case 1869: -case 1870: -case 1871: -case 1872: -case 1873: -case 1874: -case 1875: -case 1876: -case 1877: -case 1878: -case 1879: -case 1880: -case 1881: -case 1882: -case 1883: -case 1884: -case 1885: -case 1886: -case 1887: -case 1888: -case 1889: -case 1890: -case 1891: -case 1892: -case 1893: -case 1894: -case 1895: -case 1896: -case 1897: -case 1898: -case 1899: -case 1900: -case 1901: -case 1902: -case 1903: -case 1904: -case 1905: -case 1906: -case 1907: -case 1908: -case 1909: -case 1910: -case 1911: -case 1912: -case 1913: -case 1914: -case 1915: -case 1916: -case 1917: -case 1918: -case 1919: -case 1920: -case 1921: -case 1922: -case 1923: -case 1924: -case 1925: -case 1926: -case 1927: -case 1928: -case 1929: -case 1930: -case 1931: -case 1932: -case 1933: -case 1934: -case 1935: -case 1936: -case 1937: -case 1938: -case 1939: -case 1940: -case 1941: -case 1942: -case 1943: -case 1944: -case 1945: -case 1946: -case 1947: -case 1948: -case 1949: -case 1950: -case 1951: -case 1952: -case 1953: -case 1954: -case 1955: -case 1956: -case 1957: -case 1958: -case 1959: -case 1960: -case 1961: -case 1962: -case 1963: -case 1964: -case 1965: -case 1966: -case 1967: -case 1968: -case 1969: -case 1970: -case 1971: -case 1972: -case 1973: -case 1974: -case 1975: -case 1976: -case 1977: -case 1978: -case 1979: -case 1980: -case 1981: -case 1982: -case 1983: -case 1984: -case 1985: -case 1986: -case 1987: -case 1988: -case 1989: -case 1990: -case 1991: -case 1992: -case 1993: -case 1994: -case 1995: -case 1996: -case 1997: -case 1998: -case 1999: -case 2000: -case 2001: -case 2002: -case 2003: -case 2004: -case 2005: -case 2006: -case 2007: -case 2008: -case 2009: -case 2010: -case 2011: -case 2012: -case 2013: -case 2014: -case 2015: -case 2016: -case 2017: -case 2018: -case 2019: -case 2020: -case 2021: -case 2022: -case 2023: -case 2024: -case 2025: -case 2026: -case 2027: -case 2028: -case 2029: -case 2030: -case 2031: -case 2032: -case 2033: -case 2034: -case 2035: -case 2036: -case 2037: -case 2038: -case 2039: -case 2040: -case 2041: -case 2042: -case 2043: -case 2044: -case 2045: -case 2046: -case 2047: -case 2048: -case 2049: -case 2050: -case 2051: -case 2052: -case 2053: -case 2054: -case 2055: -case 2056: -case 2057: -case 2058: -case 2059: -case 2060: -case 2061: -case 2062: -case 2063: -case 2064: -case 2065: -case 2066: -case 2067: -case 2068: -case 2069: -case 2070: -case 2071: -case 2072: -case 2073: -case 2074: -case 2075: -case 2076: -case 2077: -case 2078: -case 2079: -case 2080: -case 2081: -case 2082: -case 2083: -case 2084: -case 2085: -case 2086: -case 2087: -case 2088: -case 2089: -case 2090: -case 2091: -case 2092: -case 2093: -case 2094: -case 2095: -case 2096: -case 2097: -case 2098: -case 2099: -case 2100: -case 2101: -case 2102: -case 2103: -case 2104: -case 2105: -case 2106: -case 2107: -case 2108: -case 2109: -case 2110: -case 2111: -case 2112: -case 2113: -case 2114: -case 2115: -case 2116: -case 2117: -case 2118: -case 2119: -case 2120: -case 2121: -case 2122: -case 2123: -case 2124: -case 2125: -case 2126: -case 2127: -case 2128: -case 2129: -case 2130: -case 2131: -case 2132: -case 2133: -case 2134: -case 2135: -case 2136: -case 2137: -case 2138: -case 2139: -case 2140: -case 2141: -case 2142: -case 2143: -case 2144: -case 2145: -case 2146: -case 2147: -case 2148: -case 2149: -case 2150: -case 2151: -case 2152: -case 2153: -case 2154: -case 2155: -case 2156: -case 2157: -case 2158: -case 2159: -case 2160: -case 2161: -case 2162: -case 2163: -case 2164: -case 2165: -case 2166: -case 2167: -case 2168: -case 2169: -case 2170: -case 2171: -case 2172: -case 2173: -case 2174: -case 2175: -case 2176: -case 2177: -case 2178: -case 2179: -case 2180: -case 2181: -case 2182: -case 2183: -case 2184: -case 2185: -case 2186: -case 2187: -case 2188: -case 2189: -case 2190: -case 2191: -case 2192: -case 2193: -case 2194: -case 2195: -case 2196: -case 2197: -case 2198: -case 2199: -case 2200: -case 2201: -case 2202: -case 2203: -case 2204: -case 2205: -case 2206: -case 2207: -case 2208: -case 2209: -case 2210: -case 2211: -case 2212: -case 2213: -case 2214: -case 2215: -case 2216: -case 2217: -case 2218: -case 2219: -case 2220: -case 2221: -case 2222: -case 2223: -case 2224: -case 2225: -case 2226: -case 2227: -case 2228: -case 2229: -case 2230: -case 2231: -case 2232: -case 2233: -case 2234: -case 2235: -case 2236: -case 2237: -case 2238: -case 2239: -case 2240: -case 2241: -case 2242: -case 2243: -case 2244: -case 2245: -case 2246: -case 2247: -case 2248: -case 2249: -case 2250: -case 2251: -case 2252: -case 2253: -case 2254: -case 2255: -case 2256: -case 2257: -case 2258: -case 2259: -case 2260: -case 2261: -case 2262: -case 2263: -case 2264: -case 2265: -case 2266: -case 2267: -case 2268: -case 2269: -case 2270: -case 2271: -case 2272: -case 2273: -case 2274: -case 2275: -case 2276: -case 2277: -case 2278: -case 2279: -case 2280: -case 2281: -case 2282: -case 2283: -case 2284: -case 2285: -case 2286: -case 2287: -case 2288: -case 2289: -case 2290: -case 2291: -case 2292: -case 2293: -case 2294: -case 2295: -case 2296: -case 2297: -case 2298: -case 2299: -case 2300: -case 2301: -case 2302: -case 2303: -case 2304: -case 2305: -case 2306: -case 2307: -case 2308: -case 2309: -case 2310: -case 2311: -case 2312: -case 2313: -case 2314: -case 2315: -case 2316: -case 2317: -case 2318: -case 2319: -case 2320: -case 2321: -case 2322: -case 2323: -case 2324: -case 2325: -case 2326: -case 2327: -case 2328: -case 2329: -case 2330: -case 2331: -case 2332: -case 2333: -case 2334: -case 2335: -case 2336: -case 2337: -case 2338: -case 2339: -case 2340: -case 2341: -case 2342: -case 2343: -case 2344: -case 2345: -case 2346: -case 2347: -case 2348: -case 2349: -case 2350: -case 2351: -case 2352: -case 2353: -case 2354: -case 2355: -case 2356: -case 2357: -case 2358: -case 2359: -case 2360: -case 2361: -case 2362: -case 2363: -case 2364: -case 2365: -case 2366: -case 2367: -case 2368: -case 2369: -case 2370: -case 2371: -case 2372: -case 2373: -case 2374: -case 2375: -case 2376: -case 2377: -case 2378: -case 2379: -case 2380: -case 2381: -case 2382: -case 2383: -case 2384: -case 2385: -case 2386: -case 2387: -case 2388: -case 2389: -case 2390: -case 2391: -case 2392: -case 2393: -case 2394: -case 2395: -case 2396: -case 2397: -case 2398: -case 2399: -case 2400: -case 2401: -case 2402: -case 2403: -case 2404: -case 2405: -case 2406: -case 2407: -case 2408: -case 2409: -case 2410: -case 2411: -case 2412: -case 2413: -case 2414: -case 2415: -case 2416: -case 2417: -case 2418: -case 2419: -case 2420: -case 2421: -case 2422: -case 2423: -case 2424: -case 2425: -case 2426: -case 2427: -case 2428: -case 2429: -case 2430: -case 2431: -case 2432: -case 2433: -case 2434: -case 2435: -case 2436: -case 2437: -case 2438: -case 2439: -case 2440: -case 2441: -case 2442: -case 2443: -case 2444: -case 2445: -case 2446: -case 2447: -case 2448: -case 2449: -case 2450: -case 2451: -case 2452: -case 2453: -case 2454: -case 2455: -case 2456: -case 2457: -case 2458: -case 2459: -case 2460: -case 2461: -case 2462: -case 2463: -case 2464: -case 2465: -case 2466: -case 2467: -case 2468: -case 2469: -case 2470: -case 2471: -case 2472: -case 2473: -case 2474: -case 2475: -case 2476: -case 2477: -case 2478: -case 2479: -case 2480: -case 2481: -case 2482: -case 2483: -case 2484: -case 2485: -case 2486: -case 2487: -case 2488: -case 2489: -case 2490: -case 2491: -case 2492: -case 2493: -case 2494: -case 2495: -case 2496: -case 2497: -case 2498: -case 2499: -case 2500: -case 2501: -case 2502: -case 2503: -case 2504: -case 2505: -case 2506: -case 2507: -case 2508: -case 2509: -case 2510: -case 2511: -case 2512: -case 2513: -case 2514: -case 2515: -case 2516: -case 2517: -case 2518: -case 2519: -case 2520: -case 2521: -case 2522: -case 2523: -case 2524: -case 2525: -case 2526: -case 2527: -case 2528: -case 2529: -case 2530: -case 2531: -case 2532: -case 2533: -case 2534: -case 2535: -case 2536: -case 2537: -case 2538: -case 2539: -case 2540: -case 2541: -case 2542: -case 2543: -case 2544: -case 2545: -case 2546: -case 2547: -case 2548: -case 2549: -case 2550: -case 2551: -case 2552: -case 2553: -case 2554: -case 2555: -case 2556: -case 2557: -case 2558: -case 2559: -case 2560: -case 2561: -case 2562: -case 2563: -case 2564: -case 2565: -case 2566: -case 2567: -case 2568: -case 2569: -case 2570: -case 2571: -case 2572: -case 2573: -case 2574: -case 2575: -case 2576: -case 2577: -case 2578: -case 2579: -case 2580: -case 2581: -case 2582: -case 2583: -case 2584: -case 2585: -case 2586: -case 2587: -case 2588: -case 2589: -case 2590: -case 2591: -case 2592: -case 2593: -case 2594: -case 2595: -case 2596: -case 2597: -case 2598: -case 2599: -case 2600: -case 2601: -case 2602: -case 2603: -case 2604: -case 2605: -case 2606: -case 2607: -case 2608: -case 2609: -case 2610: -case 2611: -case 2612: -case 2613: -case 2614: -case 2615: -case 2616: -case 2617: -case 2618: -case 2619: -case 2620: -case 2621: -case 2622: -case 2623: -case 2624: -case 2625: -case 2626: -case 2627: -case 2628: -case 2629: -case 2630: -case 2631: -case 2632: -case 2633: -case 2634: -case 2635: -case 2636: -case 2637: -case 2638: -case 2639: -case 2640: -case 2641: -case 2642: -case 2643: -case 2644: -case 2645: -case 2646: -case 2647: -case 2648: -case 2649: -case 2650: -case 2651: -case 2652: -case 2653: -case 2654: -case 2655: -case 2656: -case 2657: -case 2658: -case 2659: -case 2660: -case 2661: -case 2662: -case 2663: -case 2664: -case 2665: -case 2666: -case 2667: -case 2668: -case 2669: -case 2670: -case 2671: -case 2672: -case 2673: -case 2674: -case 2675: -case 2676: -case 2677: -case 2678: -case 2679: -case 2680: -case 2681: -case 2682: -case 2683: -case 2684: -case 2685: -case 2686: -case 2687: -case 2688: -case 2689: -case 2690: -case 2691: -case 2692: -case 2693: -case 2694: -case 2695: -case 2696: -case 2697: -case 2698: -case 2699: -case 2700: -case 2701: -case 2702: -case 2703: -case 2704: -case 2705: -case 2706: -case 2707: -case 2708: -case 2709: -case 2710: -case 2711: -case 2712: -case 2713: -case 2714: -case 2715: -case 2716: -case 2717: -case 2718: -case 2719: -case 2720: -case 2721: -case 2722: -case 2723: -case 2724: -case 2725: -case 2726: -case 2727: -case 2728: -case 2729: -case 2730: -case 2731: -case 2732: -case 2733: -case 2734: -case 2735: -case 2736: -case 2737: -case 2738: -case 2739: -case 2740: -case 2741: -case 2742: -case 2743: -case 2744: -case 2745: -case 2746: -case 2747: -case 2748: -case 2749: -case 2750: -case 2751: -case 2752: -case 2753: -case 2754: -case 2755: -case 2756: -case 2757: -case 2758: -case 2759: -case 2760: -case 2761: -case 2762: -case 2763: -case 2764: -case 2765: -case 2766: -case 2767: -case 2768: -case 2769: -case 2770: -case 2771: -case 2772: -case 2773: -case 2774: -case 2775: -case 2776: -case 2777: -case 2778: -case 2779: -case 2780: -case 2781: -case 2782: -case 2783: -case 2784: -case 2785: -case 2786: -case 2787: -case 2788: -case 2789: -case 2790: -case 2791: -case 2792: -case 2793: -case 2794: -case 2795: -case 2796: -case 2797: -case 2798: -case 2799: -case 2800: -case 2801: -case 2802: -case 2803: -case 2804: -case 2805: -case 2806: -case 2807: -case 2808: -case 2809: -case 2810: -case 2811: -case 2812: -case 2813: -case 2814: -case 2815: -case 2816: -case 2817: -case 2818: -case 2819: -case 2820: -case 2821: -case 2822: -case 2823: -case 2824: -case 2825: -case 2826: -case 2827: -case 2828: -case 2829: -case 2830: -case 2831: -case 2832: -case 2833: -case 2834: -case 2835: -case 2836: -case 2837: -case 2838: -case 2839: -case 2840: -case 2841: -case 2842: -case 2843: -case 2844: -case 2845: -case 2846: -case 2847: -case 2848: -case 2849: -case 2850: -case 2851: -case 2852: -case 2853: -case 2854: -case 2855: -case 2856: -case 2857: -case 2858: -case 2859: -case 2860: -case 2861: -case 2862: -case 2863: -case 2864: -case 2865: -case 2866: -case 2867: -case 2868: -case 2869: -case 2870: -case 2871: -case 2872: -case 2873: -case 2874: -case 2875: -case 2876: -case 2877: -case 2878: -case 2879: -case 2880: -case 2881: -case 2882: -case 2883: -case 2884: -case 2885: -case 2886: -case 2887: -case 2888: -case 2889: -case 2890: -case 2891: -case 2892: -case 2893: -case 2894: -case 2895: -case 2896: -case 2897: -case 2898: -case 2899: -case 2900: -case 2901: -case 2902: -case 2903: -case 2904: -case 2905: -case 2906: -case 2907: -case 2908: -case 2909: -case 2910: -case 2911: -case 2912: -case 2913: -case 2914: -case 2915: -case 2916: -case 2917: -case 2918: -case 2919: -case 2920: -case 2921: -case 2922: -case 2923: -case 2924: -case 2925: -case 2926: -case 2927: -case 2928: -case 2929: -case 2930: -case 2931: -case 2932: -case 2933: -case 2934: -case 2935: -case 2936: -case 2937: -case 2938: -case 2939: -case 2940: -case 2941: -case 2942: -case 2943: -case 2944: -case 2945: -case 2946: -case 2947: -case 2948: -case 2949: -case 2950: -case 2951: -case 2952: -case 2953: -case 2954: -case 2955: -case 2956: -case 2957: -case 2958: -case 2959: -case 2960: -case 2961: -case 2962: -case 2963: -case 2964: -case 2965: -case 2966: -case 2967: -case 2968: -case 2969: -case 2970: -case 2971: -case 2972: -case 2973: -case 2974: -case 2975: -case 2976: -case 2977: -case 2978: -case 2979: -case 2980: -case 2981: -case 2982: -case 2983: -case 2984: -case 2985: -case 2986: -case 2987: -case 2988: -case 2989: -case 2990: -case 2991: -case 2992: -case 2993: -case 2994: -case 2995: -case 2996: -case 2997: -case 2998: -case 2999: -case 3000: -case 3001: -case 3002: -case 3003: -case 3004: -case 3005: -case 3006: -case 3007: -case 3008: -case 3009: -case 3010: -case 3011: -case 3012: -case 3013: -case 3014: -case 3015: -case 3016: -case 3017: -case 3018: -case 3019: -case 3020: -case 3021: -case 3022: -case 3023: -case 3024: -case 3025: -case 3026: -case 3027: -case 3028: -case 3029: -case 3030: -case 3031: -case 3032: -case 3033: -case 3034: -case 3035: -case 3036: -case 3037: -case 3038: -case 3039: -case 3040: -case 3041: -case 3042: -case 3043: -case 3044: -case 3045: -case 3046: -case 3047: -case 3048: -case 3049: -case 3050: -case 3051: -case 3052: -case 3053: -case 3054: -case 3055: -case 3056: -case 3057: -case 3058: -case 3059: -case 3060: -case 3061: -case 3062: -case 3063: -case 3064: -case 3065: -case 3066: -case 3067: -case 3068: -case 3069: -case 3070: -case 3071: -case 3072: -case 3073: -case 3074: -case 3075: -case 3076: -case 3077: -case 3078: -case 3079: -case 3080: -case 3081: -case 3082: -case 3083: -case 3084: -case 3085: -case 3086: -case 3087: -case 3088: -case 3089: -case 3090: -case 3091: -case 3092: -case 3093: -case 3094: -case 3095: -case 3096: -case 3097: -case 3098: -case 3099: -case 3100: -case 3101: -case 3102: -case 3103: -case 3104: -case 3105: -case 3106: -case 3107: -case 3108: -case 3109: -case 3110: -case 3111: -case 3112: -case 3113: -case 3114: -case 3115: -case 3116: -case 3117: -case 3118: -case 3119: -case 3120: -case 3121: -case 3122: -case 3123: -case 3124: -case 3125: -case 3126: -case 3127: -case 3128: -case 3129: -case 3130: -case 3131: -case 3132: -case 3133: -case 3134: -case 3135: -case 3136: -case 3137: -case 3138: -case 3139: -case 3140: -case 3141: -case 3142: -case 3143: -case 3144: -case 3145: -case 3146: -case 3147: -case 3148: -case 3149: -case 3150: -case 3151: -case 3152: -case 3153: -case 3154: -case 3155: -case 3156: -case 3157: -case 3158: -case 3159: -case 3160: -case 3161: -case 3162: -case 3163: -case 3164: -case 3165: -case 3166: -case 3167: -case 3168: -case 3169: -case 3170: -case 3171: -case 3172: -case 3173: -case 3174: -case 3175: -case 3176: -case 3177: -case 3178: -case 3179: -case 3180: -case 3181: -case 3182: -case 3183: -case 3184: -case 3185: -case 3186: -case 3187: -case 3188: -case 3189: -case 3190: -case 3191: -case 3192: -case 3193: -case 3194: -case 3195: -case 3196: -case 3197: -case 3198: -case 3199: -case 3200: -case 3201: -case 3202: -case 3203: -case 3204: -case 3205: -case 3206: -case 3207: -case 3208: -case 3209: -case 3210: -case 3211: -case 3212: -case 3213: -case 3214: -case 3215: -case 3216: -case 3217: -case 3218: -case 3219: -case 3220: -case 3221: -case 3222: -case 3223: -case 3224: -case 3225: -case 3226: -case 3227: -case 3228: -case 3229: -case 3230: -case 3231: -case 3232: -case 3233: -case 3234: -case 3235: -case 3236: -case 3237: -case 3238: -case 3239: -case 3240: -case 3241: -case 3242: -case 3243: -case 3244: -case 3245: -case 3246: -case 3247: -case 3248: -case 3249: -case 3250: -case 3251: -case 3252: -case 3253: -case 3254: -case 3255: -case 3256: -case 3257: -case 3258: -case 3259: -case 3260: -case 3261: -case 3262: -case 3263: -case 3264: -case 3265: -case 3266: -case 3267: -case 3268: -case 3269: -case 3270: -case 3271: -case 3272: -case 3273: -case 3274: -case 3275: -case 3276: -case 3277: -case 3278: -case 3279: -case 3280: -case 3281: -case 3282: -case 3283: -case 3284: -case 3285: -case 3286: -case 3287: -case 3288: -case 3289: -case 3290: -case 3291: -case 3292: -case 3293: -case 3294: -case 3295: -case 3296: -case 3297: -case 3298: -case 3299: -case 3300: -case 3301: -case 3302: -case 3303: -case 3304: -case 3305: -case 3306: -case 3307: -case 3308: -case 3309: -case 3310: -case 3311: -case 3312: -case 3313: -case 3314: -case 3315: -case 3316: -case 3317: -case 3318: -case 3319: -case 3320: -case 3321: -case 3322: -case 3323: -case 3324: -case 3325: -case 3326: -case 3327: -case 3328: -case 3329: -case 3330: -case 3331: -case 3332: -case 3333: -case 3334: -case 3335: -case 3336: -case 3337: -case 3338: -case 3339: -case 3340: -case 3341: -case 3342: -case 3343: -case 3344: -case 3345: -case 3346: -case 3347: -case 3348: -case 3349: -case 3350: -case 3351: -case 3352: -case 3353: -case 3354: -case 3355: -case 3356: -case 3357: -case 3358: -case 3359: -case 3360: -case 3361: -case 3362: -case 3363: -case 3364: -case 3365: -case 3366: -case 3367: -case 3368: -case 3369: -case 3370: -case 3371: -case 3372: -case 3373: -case 3374: -case 3375: -case 3376: -case 3377: -case 3378: -case 3379: -case 3380: -case 3381: -case 3382: -case 3383: -case 3384: -case 3385: -case 3386: -case 3387: -case 3388: -case 3389: -case 3390: -case 3391: -case 3392: -case 3393: -case 3394: -case 3395: -case 3396: -case 3397: -case 3398: -case 3399: -case 3400: -case 3401: -case 3402: -case 3403: -case 3404: -case 3405: -case 3406: -case 3407: -case 3408: -case 3409: -case 3410: -case 3411: -case 3412: -case 3413: -case 3414: -case 3415: -case 3416: -case 3417: -case 3418: -case 3419: -case 3420: -case 3421: -case 3422: -case 3423: -case 3424: -case 3425: -case 3426: -case 3427: -case 3428: -case 3429: -case 3430: -case 3431: -case 3432: -case 3433: -case 3434: -case 3435: -case 3436: -case 3437: -case 3438: -case 3439: -case 3440: -case 3441: -case 3442: -case 3443: -case 3444: -case 3445: -case 3446: -case 3447: -case 3448: -case 3449: -case 3450: -case 3451: -case 3452: -case 3453: -case 3454: -case 3455: -case 3456: -case 3457: -case 3458: -case 3459: -case 3460: -case 3461: -case 3462: -case 3463: -case 3464: -case 3465: -case 3466: -case 3467: -case 3468: -case 3469: -case 3470: -case 3471: -case 3472: -case 3473: -case 3474: -case 3475: -case 3476: -case 3477: -case 3478: -case 3479: -case 3480: -case 3481: -case 3482: -case 3483: -case 3484: -case 3485: -case 3486: -case 3487: -case 3488: -case 3489: -case 3490: -case 3491: -case 3492: -case 3493: -case 3494: -case 3495: -case 3496: -case 3497: -case 3498: -case 3499: -case 3500: -case 3501: -case 3502: -case 3503: -case 3504: -case 3505: -case 3506: -case 3507: -case 3508: -case 3509: -case 3510: -case 3511: -case 3512: -case 3513: -case 3514: -case 3515: -case 3516: -case 3517: -case 3518: -case 3519: -case 3520: -case 3521: -case 3522: -case 3523: -case 3524: -case 3525: -case 3526: -case 3527: -case 3528: -case 3529: -case 3530: -case 3531: -case 3532: -case 3533: -case 3534: -case 3535: -case 3536: -case 3537: -case 3538: -case 3539: -case 3540: -case 3541: -case 3542: -case 3543: -case 3544: -case 3545: -case 3546: -case 3547: -case 3548: -case 3549: -case 3550: -case 3551: -case 3552: -case 3553: -case 3554: -case 3555: -case 3556: -case 3557: -case 3558: -case 3559: -case 3560: -case 3561: -case 3562: -case 3563: -case 3564: -case 3565: -case 3566: -case 3567: -case 3568: -case 3569: -case 3570: -case 3571: -case 3572: -case 3573: -case 3574: -case 3575: -case 3576: -case 3577: -case 3578: -case 3579: -case 3580: -case 3581: -case 3582: -case 3583: -case 3584: -case 3585: -case 3586: -case 3587: -case 3588: -case 3589: -case 3590: -case 3591: -case 3592: -case 3593: -case 3594: -case 3595: -case 3596: -case 3597: -case 3598: -case 3599: -case 3600: -case 3601: -case 3602: -case 3603: -case 3604: -case 3605: -case 3606: -case 3607: -case 3608: -case 3609: -case 3610: -case 3611: -case 3612: -case 3613: -case 3614: -case 3615: -case 3616: -case 3617: -case 3618: -case 3619: -case 3620: -case 3621: -case 3622: -case 3623: -case 3624: -case 3625: -case 3626: -case 3627: -case 3628: -case 3629: -case 3630: -case 3631: -case 3632: -case 3633: -case 3634: -case 3635: -case 3636: -case 3637: -case 3638: -case 3639: -case 3640: -case 3641: -case 3642: -case 3643: -case 3644: -case 3645: -case 3646: -case 3647: -case 3648: -case 3649: -case 3650: -case 3651: -case 3652: -case 3653: -case 3654: -case 3655: -case 3656: -case 3657: -case 3658: -case 3659: -case 3660: -case 3661: -case 3662: -case 3663: -case 3664: -case 3665: -case 3666: -case 3667: -case 3668: -case 3669: -case 3670: -case 3671: -case 3672: -case 3673: -case 3674: -case 3675: -case 3676: -case 3677: -case 3678: -case 3679: -case 3680: -case 3681: -case 3682: -case 3683: -case 3684: -case 3685: -case 3686: -case 3687: -case 3688: -case 3689: -case 3690: -case 3691: -case 3692: -case 3693: -case 3694: -case 3695: -case 3696: -case 3697: -case 3698: -case 3699: -case 3700: -case 3701: -case 3702: -case 3703: -case 3704: -case 3705: -case 3706: -case 3707: -case 3708: -case 3709: -case 3710: -case 3711: -case 3712: -case 3713: -case 3714: -case 3715: -case 3716: -case 3717: -case 3718: -case 3719: -case 3720: -case 3721: -case 3722: -case 3723: -case 3724: -case 3725: -case 3726: -case 3727: -case 3728: -case 3729: -case 3730: -case 3731: -case 3732: -case 3733: -case 3734: -case 3735: -case 3736: -case 3737: -case 3738: -case 3739: -case 3740: -case 3741: -case 3742: -case 3743: -case 3744: -case 3745: -case 3746: -case 3747: -case 3748: -case 3749: -case 3750: -case 3751: -case 3752: -case 3753: -case 3754: -case 3755: -case 3756: -case 3757: -case 3758: -case 3759: -case 3760: -case 3761: -case 3762: -case 3763: -case 3764: -case 3765: -case 3766: -case 3767: -case 3768: -case 3769: -case 3770: -case 3771: -case 3772: -case 3773: -case 3774: -case 3775: -case 3776: -case 3777: -case 3778: -case 3779: -case 3780: -case 3781: -case 3782: -case 3783: -case 3784: -case 3785: -case 3786: -case 3787: -case 3788: -case 3789: -case 3790: -case 3791: -case 3792: -case 3793: -case 3794: -case 3795: -case 3796: -case 3797: -case 3798: -case 3799: -case 3800: -case 3801: -case 3802: -case 3803: -case 3804: -case 3805: -case 3806: -case 3807: -case 3808: -case 3809: -case 3810: -case 3811: -case 3812: -case 3813: -case 3814: -case 3815: -case 3816: -case 3817: -case 3818: -case 3819: -case 3820: -case 3821: -case 3822: -case 3823: -case 3824: -case 3825: -case 3826: -case 3827: -case 3828: -case 3829: -case 3830: -case 3831: -case 3832: -case 3833: -case 3834: -case 3835: -case 3836: -case 3837: -case 3838: -case 3839: -case 3840: -case 3841: -case 3842: -case 3843: -case 3844: -case 3845: -case 3846: -case 3847: -case 3848: -case 3849: -case 3850: -case 3851: -case 3852: -case 3853: -case 3854: -case 3855: -case 3856: -case 3857: -case 3858: -case 3859: -case 3860: -case 3861: -case 3862: -case 3863: -case 3864: -case 3865: -case 3866: -case 3867: -case 3868: -case 3869: -case 3870: -case 3871: -case 3872: -case 3873: -case 3874: -case 3875: -case 3876: -case 3877: -case 3878: -case 3879: -case 3880: -case 3881: -case 3882: -case 3883: -case 3884: -case 3885: -case 3886: -case 3887: -case 3888: -case 3889: -case 3890: -case 3891: -case 3892: -case 3893: -case 3894: -case 3895: -case 3896: -case 3897: -case 3898: -case 3899: -case 3900: -case 3901: -case 3902: -case 3903: -case 3904: -case 3905: -case 3906: -case 3907: -case 3908: -case 3909: -case 3910: -case 3911: -case 3912: -case 3913: -case 3914: -case 3915: -case 3916: -case 3917: -case 3918: -case 3919: -case 3920: -case 3921: -case 3922: -case 3923: -case 3924: -case 3925: -case 3926: -case 3927: -case 3928: -case 3929: -case 3930: -case 3931: -case 3932: -case 3933: -case 3934: -case 3935: -case 3936: -case 3937: -case 3938: -case 3939: -case 3940: -case 3941: -case 3942: -case 3943: -case 3944: -case 3945: -case 3946: -case 3947: -case 3948: -case 3949: -case 3950: -case 3951: -case 3952: -case 3953: -case 3954: -case 3955: -case 3956: -case 3957: -case 3958: -case 3959: -case 3960: -case 3961: -case 3962: -case 3963: -case 3964: -case 3965: -case 3966: -case 3967: -case 3968: -case 3969: -case 3970: -case 3971: -case 3972: -case 3973: -case 3974: -case 3975: -case 3976: -case 3977: -case 3978: -case 3979: -case 3980: -case 3981: -case 3982: -case 3983: -case 3984: -case 3985: -case 3986: -case 3987: -case 3988: -case 3989: -case 3990: -case 3991: -case 3992: -case 3993: -case 3994: -case 3995: -case 3996: -case 3997: -case 3998: -case 3999: -case 4000: -case 4001: -case 4002: -case 4003: -case 4004: -case 4005: -case 4006: -case 4007: -case 4008: -case 4009: -case 4010: -case 4011: -case 4012: -case 4013: -case 4014: -case 4015: -case 4016: -case 4017: -case 4018: -case 4019: -case 4020: -case 4021: -case 4022: -case 4023: -case 4024: -case 4025: -case 4026: -case 4027: -case 4028: -case 4029: -case 4030: -case 4031: -case 4032: -case 4033: -case 4034: -case 4035: -case 4036: -case 4037: -case 4038: -case 4039: -case 4040: -case 4041: -case 4042: -case 4043: -case 4044: -case 4045: -case 4046: -case 4047: -case 4048: -case 4049: -case 4050: -case 4051: -case 4052: -case 4053: -case 4054: -case 4055: -case 4056: -case 4057: -case 4058: -case 4059: -case 4060: -case 4061: -case 4062: -case 4063: -case 4064: -case 4065: -case 4066: -case 4067: -case 4068: -case 4069: -case 4070: -case 4071: -case 4072: -case 4073: -case 4074: -case 4075: -case 4076: -case 4077: -case 4078: -case 4079: -case 4080: -case 4081: -case 4082: -case 4083: -case 4084: -case 4085: -case 4086: -case 4087: -case 4088: -case 4089: -case 4090: -case 4091: -case 4092: -case 4093: -case 4094: -case 4095: -case 4096: -case 4097: -case 4098: -case 4099: -case 4100: -case 4101: -case 4102: -case 4103: -case 4104: -case 4105: -case 4106: -case 4107: -case 4108: -case 4109: -case 4110: -case 4111: -case 4112: -case 4113: -case 4114: -case 4115: -case 4116: -case 4117: -case 4118: -case 4119: -case 4120: -case 4121: -case 4122: -case 4123: -case 4124: -case 4125: -case 4126: -case 4127: -case 4128: -case 4129: -case 4130: -case 4131: -case 4132: -case 4133: -case 4134: -case 4135: -case 4136: -case 4137: -case 4138: -case 4139: -case 4140: -case 4141: -case 4142: -case 4143: -case 4144: -case 4145: -case 4146: -case 4147: -case 4148: -case 4149: -case 4150: -case 4151: -case 4152: -case 4153: -case 4154: -case 4155: -case 4156: -case 4157: -case 4158: -case 4159: -case 4160: -case 4161: -case 4162: -case 4163: -case 4164: -case 4165: -case 4166: -case 4167: -case 4168: -case 4169: -case 4170: -case 4171: -case 4172: -case 4173: -case 4174: -case 4175: -case 4176: -case 4177: -case 4178: -case 4179: -case 4180: -case 4181: -case 4182: -case 4183: -case 4184: -case 4185: -case 4186: -case 4187: -case 4188: -case 4189: -case 4190: -case 4191: -case 4192: -case 4193: -case 4194: -case 4195: -case 4196: -case 4197: -case 4198: -case 4199: -case 4200: -case 4201: -case 4202: -case 4203: -case 4204: -case 4205: -case 4206: -case 4207: -case 4208: -case 4209: -case 4210: -case 4211: -case 4212: -case 4213: -case 4214: -case 4215: -case 4216: -case 4217: -case 4218: -case 4219: -case 4220: -case 4221: -case 4222: -case 4223: -case 4224: -case 4225: -case 4226: -case 4227: -case 4228: -case 4229: -case 4230: -case 4231: -case 4232: -case 4233: -case 4234: -case 4235: -case 4236: -case 4237: -case 4238: -case 4239: -case 4240: -case 4241: -case 4242: -case 4243: -case 4244: -case 4245: -case 4246: -case 4247: -case 4248: -case 4249: -case 4250: -case 4251: -case 4252: -case 4253: -case 4254: -case 4255: -case 4256: -case 4257: -case 4258: -case 4259: -case 4260: -case 4261: -case 4262: -case 4263: -case 4264: -case 4265: -case 4266: -case 4267: -case 4268: -case 4269: -case 4270: -case 4271: -case 4272: -case 4273: -case 4274: -case 4275: -case 4276: -case 4277: -case 4278: -case 4279: -case 4280: -case 4281: -case 4282: -case 4283: -case 4284: -case 4285: -case 4286: -case 4287: -case 4288: -case 4289: -case 4290: -case 4291: -case 4292: -case 4293: -case 4294: -case 4295: -case 4296: -case 4297: -case 4298: -case 4299: -case 4300: -case 4301: -case 4302: -case 4303: -case 4304: -case 4305: -case 4306: -case 4307: -case 4308: -case 4309: -case 4310: -case 4311: -case 4312: -case 4313: -case 4314: -case 4315: -case 4316: -case 4317: -case 4318: -case 4319: -case 4320: -case 4321: -case 4322: -case 4323: -case 4324: -case 4325: -case 4326: -case 4327: -case 4328: -case 4329: -case 4330: -case 4331: -case 4332: -case 4333: -case 4334: -case 4335: -case 4336: -case 4337: -case 4338: -case 4339: -case 4340: -case 4341: -case 4342: -case 4343: -case 4344: -case 4345: -case 4346: -case 4347: -case 4348: -case 4349: -case 4350: -case 4351: -case 4352: -case 4353: -case 4354: -case 4355: -case 4356: -case 4357: -case 4358: -case 4359: -case 4360: -case 4361: -case 4362: -case 4363: -case 4364: -case 4365: -case 4366: -case 4367: -case 4368: -case 4369: -case 4370: -case 4371: -case 4372: -case 4373: -case 4374: -case 4375: -case 4376: -case 4377: -case 4378: -case 4379: -case 4380: -case 4381: -case 4382: -case 4383: -case 4384: -case 4385: -case 4386: -case 4387: -case 4388: -case 4389: -case 4390: -case 4391: -case 4392: -case 4393: -case 4394: -case 4395: -case 4396: -case 4397: -case 4398: -case 4399: -case 4400: -case 4401: -case 4402: -case 4403: -case 4404: -case 4405: -case 4406: -case 4407: -case 4408: -case 4409: -case 4410: -case 4411: -case 4412: -case 4413: -case 4414: -case 4415: -case 4416: -case 4417: -case 4418: -case 4419: -case 4420: -case 4421: -case 4422: -case 4423: -case 4424: -case 4425: -case 4426: -case 4427: -case 4428: -case 4429: -case 4430: -case 4431: -case 4432: -case 4433: -case 4434: -case 4435: -case 4436: -case 4437: -case 4438: -case 4439: -case 4440: -case 4441: -case 4442: -case 4443: -case 4444: -case 4445: -case 4446: -case 4447: -case 4448: -case 4449: -case 4450: -case 4451: -case 4452: -case 4453: -case 4454: -case 4455: -case 4456: -case 4457: -case 4458: -case 4459: -case 4460: -case 4461: -case 4462: -case 4463: -case 4464: -case 4465: -case 4466: -case 4467: -case 4468: -case 4469: -case 4470: -case 4471: -case 4472: -case 4473: -case 4474: -case 4475: -case 4476: -case 4477: -case 4478: -case 4479: -case 4480: -case 4481: -case 4482: -case 4483: -case 4484: -case 4485: -case 4486: -case 4487: -case 4488: -case 4489: -case 4490: -case 4491: -case 4492: -case 4493: -case 4494: -case 4495: -case 4496: -case 4497: -case 4498: -case 4499: -case 4500: -case 4501: -case 4502: -case 4503: -case 4504: -case 4505: -case 4506: -case 4507: -case 4508: -case 4509: -case 4510: -case 4511: -case 4512: -case 4513: -case 4514: -case 4515: -case 4516: -case 4517: -case 4518: -case 4519: -case 4520: -case 4521: -case 4522: -case 4523: -case 4524: -case 4525: -case 4526: -case 4527: -case 4528: -case 4529: -case 4530: -case 4531: -case 4532: -case 4533: -case 4534: -case 4535: -case 4536: -case 4537: -case 4538: -case 4539: -case 4540: -case 4541: -case 4542: -case 4543: -case 4544: -case 4545: -case 4546: -case 4547: -case 4548: -case 4549: -case 4550: -case 4551: -case 4552: -case 4553: -case 4554: -case 4555: -case 4556: -case 4557: -case 4558: -case 4559: -case 4560: -case 4561: -case 4562: -case 4563: -case 4564: -case 4565: -case 4566: -case 4567: -case 4568: -case 4569: -case 4570: -case 4571: -case 4572: -case 4573: -case 4574: -case 4575: -case 4576: -case 4577: -case 4578: -case 4579: -case 4580: -case 4581: -case 4582: -case 4583: -case 4584: -case 4585: -case 4586: -case 4587: -case 4588: -case 4589: -case 4590: -case 4591: -case 4592: -case 4593: -case 4594: -case 4595: -case 4596: -case 4597: -case 4598: -case 4599: -case 4600: -case 4601: -case 4602: -case 4603: -case 4604: -case 4605: -case 4606: -case 4607: -case 4608: -case 4609: -case 4610: -case 4611: -case 4612: -case 4613: -case 4614: -case 4615: -case 4616: -case 4617: -case 4618: -case 4619: -case 4620: -case 4621: -case 4622: -case 4623: -case 4624: -case 4625: -case 4626: -case 4627: -case 4628: -case 4629: -case 4630: -case 4631: -case 4632: -case 4633: -case 4634: -case 4635: -case 4636: -case 4637: -case 4638: -case 4639: -case 4640: -case 4641: -case 4642: -case 4643: -case 4644: -case 4645: -case 4646: -case 4647: -case 4648: -case 4649: -case 4650: -case 4651: -case 4652: -case 4653: -case 4654: -case 4655: -case 4656: -case 4657: -case 4658: -case 4659: -case 4660: -case 4661: -case 4662: -case 4663: -case 4664: -case 4665: -case 4666: -case 4667: -case 4668: -case 4669: -case 4670: -case 4671: -case 4672: -case 4673: -case 4674: -case 4675: -case 4676: -case 4677: -case 4678: -case 4679: -case 4680: -case 4681: -case 4682: -case 4683: -case 4684: -case 4685: -case 4686: -case 4687: -case 4688: -case 4689: -case 4690: -case 4691: -case 4692: -case 4693: -case 4694: -case 4695: -case 4696: -case 4697: -case 4698: -case 4699: -case 4700: -case 4701: -case 4702: -case 4703: -case 4704: -case 4705: -case 4706: -case 4707: -case 4708: -case 4709: -case 4710: -case 4711: -case 4712: -case 4713: -case 4714: -case 4715: -case 4716: -case 4717: -case 4718: -case 4719: -case 4720: -case 4721: -case 4722: -case 4723: -case 4724: -case 4725: -case 4726: -case 4727: -case 4728: -case 4729: -case 4730: -case 4731: -case 4732: -case 4733: -case 4734: -case 4735: -case 4736: -case 4737: -case 4738: -case 4739: -case 4740: -case 4741: -case 4742: -case 4743: -case 4744: -case 4745: -case 4746: -case 4747: -case 4748: -case 4749: -case 4750: -case 4751: -case 4752: -case 4753: -case 4754: -case 4755: -case 4756: -case 4757: -case 4758: -case 4759: -case 4760: -case 4761: -case 4762: -case 4763: -case 4764: -case 4765: -case 4766: -case 4767: -case 4768: -case 4769: -case 4770: -case 4771: -case 4772: -case 4773: -case 4774: -case 4775: -case 4776: -case 4777: -case 4778: -case 4779: -case 4780: -case 4781: -case 4782: -case 4783: -case 4784: -case 4785: -case 4786: -case 4787: -case 4788: -case 4789: -case 4790: -case 4791: -case 4792: -case 4793: -case 4794: -case 4795: -case 4796: -case 4797: -case 4798: -case 4799: -case 4800: -case 4801: -case 4802: -case 4803: -case 4804: -case 4805: -case 4806: -case 4807: -case 4808: -case 4809: -case 4810: -case 4811: -case 4812: -case 4813: -case 4814: -case 4815: -case 4816: -case 4817: -case 4818: -case 4819: -case 4820: -case 4821: -case 4822: -case 4823: -case 4824: -case 4825: -case 4826: -case 4827: -case 4828: -case 4829: -case 4830: -case 4831: -case 4832: -case 4833: -case 4834: -case 4835: -case 4836: -case 4837: -case 4838: -case 4839: -case 4840: -case 4841: -case 4842: -case 4843: -case 4844: -case 4845: -case 4846: -case 4847: -case 4848: -case 4849: -case 4850: -case 4851: -case 4852: -case 4853: -case 4854: -case 4855: -case 4856: -case 4857: -case 4858: -case 4859: -case 4860: -case 4861: -case 4862: -case 4863: -case 4864: -case 4865: -case 4866: -case 4867: -case 4868: -case 4869: -case 4870: -case 4871: -case 4872: -case 4873: -case 4874: -case 4875: -case 4876: -case 4877: -case 4878: -case 4879: -case 4880: -case 4881: -case 4882: -case 4883: -case 4884: -case 4885: -case 4886: -case 4887: -case 4888: -case 4889: -case 4890: -case 4891: -case 4892: -case 4893: -case 4894: -case 4895: -case 4896: -case 4897: -case 4898: -case 4899: -case 4900: -case 4901: -case 4902: -case 4903: -case 4904: -case 4905: -case 4906: -case 4907: -case 4908: -case 4909: -case 4910: -case 4911: -case 4912: -case 4913: -case 4914: -case 4915: -case 4916: -case 4917: -case 4918: -case 4919: -case 4920: -case 4921: -case 4922: -case 4923: -case 4924: -case 4925: -case 4926: -case 4927: -case 4928: -case 4929: -case 4930: -case 4931: -case 4932: -case 4933: -case 4934: -case 4935: -case 4936: -case 4937: -case 4938: -case 4939: -case 4940: -case 4941: -case 4942: -case 4943: -case 4944: -case 4945: -case 4946: -case 4947: -case 4948: -case 4949: -case 4950: -case 4951: -case 4952: -case 4953: -case 4954: -case 4955: -case 4956: -case 4957: -case 4958: -case 4959: -case 4960: -case 4961: -case 4962: -case 4963: -case 4964: -case 4965: -case 4966: -case 4967: -case 4968: -case 4969: -case 4970: -case 4971: -case 4972: -case 4973: -case 4974: -case 4975: -case 4976: -case 4977: -case 4978: -case 4979: -case 4980: -case 4981: -case 4982: -case 4983: -case 4984: -case 4985: -case 4986: -case 4987: -case 4988: -case 4989: -case 4990: -case 4991: -case 4992: -case 4993: -case 4994: -case 4995: -case 4996: -case 4997: -case 4998: -case 4999: -case 5000: -case 5001: -case 5002: -case 5003: -case 5004: -case 5005: -case 5006: -case 5007: -case 5008: -case 5009: -case 5010: -case 5011: -case 5012: -case 5013: -case 5014: -case 5015: -case 5016: -case 5017: -case 5018: -case 5019: -case 5020: -case 5021: -case 5022: -case 5023: -case 5024: -case 5025: -case 5026: -case 5027: -case 5028: -case 5029: -case 5030: -case 5031: -case 5032: -case 5033: -case 5034: -case 5035: -case 5036: -case 5037: -case 5038: -case 5039: -case 5040: -case 5041: -case 5042: -case 5043: -case 5044: -case 5045: -case 5046: -case 5047: -case 5048: -case 5049: -case 5050: -case 5051: -case 5052: -case 5053: -case 5054: -case 5055: -case 5056: -case 5057: -case 5058: -case 5059: -case 5060: -case 5061: -case 5062: -case 5063: -case 5064: -case 5065: -case 5066: -case 5067: -case 5068: -case 5069: -case 5070: -case 5071: -case 5072: -case 5073: -case 5074: -case 5075: -case 5076: -case 5077: -case 5078: -case 5079: -case 5080: -case 5081: -case 5082: -case 5083: -case 5084: -case 5085: -case 5086: -case 5087: -case 5088: -case 5089: -case 5090: -case 5091: -case 5092: -case 5093: -case 5094: -case 5095: -case 5096: -case 5097: -case 5098: -case 5099: -case 5100: -case 5101: -case 5102: -case 5103: -case 5104: -case 5105: -case 5106: -case 5107: -case 5108: -case 5109: -case 5110: -case 5111: -case 5112: -case 5113: -case 5114: -case 5115: -case 5116: -case 5117: -case 5118: -case 5119: -case 5120: -case 5121: -case 5122: -case 5123: -case 5124: -case 5125: -case 5126: -case 5127: -case 5128: -case 5129: -case 5130: -case 5131: -case 5132: -case 5133: -case 5134: -case 5135: -case 5136: -case 5137: -case 5138: -case 5139: -case 5140: -case 5141: -case 5142: -case 5143: -case 5144: -case 5145: -case 5146: -case 5147: -case 5148: -case 5149: -case 5150: -case 5151: -case 5152: -case 5153: -case 5154: -case 5155: -case 5156: -case 5157: -case 5158: -case 5159: -case 5160: -case 5161: -case 5162: -case 5163: -case 5164: -case 5165: -case 5166: -case 5167: -case 5168: -case 5169: -case 5170: -case 5171: -case 5172: -case 5173: -case 5174: -case 5175: -case 5176: -case 5177: -case 5178: -case 5179: -case 5180: -case 5181: -case 5182: -case 5183: -case 5184: -case 5185: -case 5186: -case 5187: -case 5188: -case 5189: -case 5190: -case 5191: -case 5192: -case 5193: -case 5194: -case 5195: -case 5196: -case 5197: -case 5198: -case 5199: -case 5200: -case 5201: -case 5202: -case 5203: -case 5204: -case 5205: -case 5206: -case 5207: -case 5208: -case 5209: -case 5210: -case 5211: -case 5212: -case 5213: -case 5214: -case 5215: -case 5216: -case 5217: -case 5218: -case 5219: -case 5220: -case 5221: -case 5222: -case 5223: -case 5224: -case 5225: -case 5226: -case 5227: -case 5228: -case 5229: -case 5230: -case 5231: -case 5232: -case 5233: -case 5234: -case 5235: -case 5236: -case 5237: -case 5238: -case 5239: -case 5240: -case 5241: -case 5242: -case 5243: -case 5244: -case 5245: -case 5246: -case 5247: -case 5248: -case 5249: -case 5250: -case 5251: -case 5252: -case 5253: -case 5254: -case 5255: -case 5256: -case 5257: -case 5258: -case 5259: -case 5260: -case 5261: -case 5262: -case 5263: -case 5264: -case 5265: -case 5266: -case 5267: -case 5268: -case 5269: -case 5270: -case 5271: -case 5272: -case 5273: -case 5274: -case 5275: -case 5276: -case 5277: -case 5278: -case 5279: -case 5280: -case 5281: -case 5282: -case 5283: -case 5284: -case 5285: -case 5286: -case 5287: -case 5288: -case 5289: -case 5290: -case 5291: -case 5292: -case 5293: -case 5294: -case 5295: -case 5296: -case 5297: -case 5298: -case 5299: -case 5300: -case 5301: -case 5302: -case 5303: -case 5304: -case 5305: -case 5306: -case 5307: -case 5308: -case 5309: -case 5310: -case 5311: -case 5312: -case 5313: -case 5314: -case 5315: -case 5316: -case 5317: -case 5318: -case 5319: -case 5320: -case 5321: -case 5322: -case 5323: -case 5324: -case 5325: -case 5326: -case 5327: -case 5328: -case 5329: -case 5330: -case 5331: -case 5332: -case 5333: -case 5334: -case 5335: -case 5336: -case 5337: -case 5338: -case 5339: -case 5340: -case 5341: -case 5342: -case 5343: -case 5344: -case 5345: -case 5346: -case 5347: -case 5348: -case 5349: -case 5350: -case 5351: -case 5352: -case 5353: -case 5354: -case 5355: -case 5356: -case 5357: -case 5358: -case 5359: -case 5360: -case 5361: -case 5362: -case 5363: -case 5364: -case 5365: -case 5366: -case 5367: -case 5368: -case 5369: -case 5370: -case 5371: -case 5372: -case 5373: -case 5374: -case 5375: -case 5376: -case 5377: -case 5378: -case 5379: -case 5380: -case 5381: -case 5382: -case 5383: -case 5384: -case 5385: -case 5386: -case 5387: -case 5388: -case 5389: -case 5390: -case 5391: -case 5392: -case 5393: -case 5394: -case 5395: -case 5396: -case 5397: -case 5398: -case 5399: -case 5400: -case 5401: -case 5402: -case 5403: -case 5404: -case 5405: -case 5406: -case 5407: -case 5408: -case 5409: -case 5410: -case 5411: -case 5412: -case 5413: -case 5414: -case 5415: -case 5416: -case 5417: -case 5418: -case 5419: -case 5420: -case 5421: -case 5422: -case 5423: -case 5424: -case 5425: -case 5426: -case 5427: -case 5428: -case 5429: -case 5430: -case 5431: -case 5432: -case 5433: -case 5434: -case 5435: -case 5436: -case 5437: -case 5438: -case 5439: -case 5440: -case 5441: -case 5442: -case 5443: -case 5444: -case 5445: -case 5446: -case 5447: -case 5448: -case 5449: -case 5450: -case 5451: -case 5452: -case 5453: -case 5454: -case 5455: -case 5456: -case 5457: -case 5458: -case 5459: -case 5460: -case 5461: -case 5462: -case 5463: -case 5464: -case 5465: -case 5466: -case 5467: -case 5468: -case 5469: -case 5470: -case 5471: -case 5472: -case 5473: -case 5474: -case 5475: -case 5476: -case 5477: -case 5478: -case 5479: -case 5480: -case 5481: -case 5482: -case 5483: -case 5484: -case 5485: -case 5486: -case 5487: -case 5488: -case 5489: -case 5490: -case 5491: -case 5492: -case 5493: -case 5494: -case 5495: -case 5496: -case 5497: -case 5498: -case 5499: -case 5500: -case 5501: -case 5502: -case 5503: -case 5504: -case 5505: -case 5506: -case 5507: -case 5508: -case 5509: -case 5510: -case 5511: -case 5512: -case 5513: -case 5514: -case 5515: -case 5516: -case 5517: -case 5518: -case 5519: -case 5520: -case 5521: -case 5522: -case 5523: -case 5524: -case 5525: -case 5526: -case 5527: -case 5528: -case 5529: -case 5530: -case 5531: -case 5532: -case 5533: -case 5534: -case 5535: -case 5536: -case 5537: -case 5538: -case 5539: -case 5540: -case 5541: -case 5542: -case 5543: -case 5544: -case 5545: -case 5546: -case 5547: -case 5548: -case 5549: -case 5550: -case 5551: -case 5552: -case 5553: -case 5554: -case 5555: -case 5556: -case 5557: -case 5558: -case 5559: -case 5560: -case 5561: -case 5562: -case 5563: -case 5564: -case 5565: -case 5566: -case 5567: -case 5568: -case 5569: -case 5570: -case 5571: -case 5572: -case 5573: -case 5574: -case 5575: -case 5576: -case 5577: -case 5578: -case 5579: -case 5580: -case 5581: -case 5582: -case 5583: -case 5584: -case 5585: -case 5586: -case 5587: -case 5588: -case 5589: -case 5590: -case 5591: -case 5592: -case 5593: -case 5594: -case 5595: -case 5596: -case 5597: -case 5598: -case 5599: -case 5600: -case 5601: -case 5602: -case 5603: -case 5604: -case 5605: -case 5606: -case 5607: -case 5608: -case 5609: -case 5610: -case 5611: -case 5612: -case 5613: -case 5614: -case 5615: -case 5616: -case 5617: -case 5618: -case 5619: -case 5620: -case 5621: -case 5622: -case 5623: -case 5624: -case 5625: -case 5626: -case 5627: -case 5628: -case 5629: -case 5630: -case 5631: -case 5632: -case 5633: -case 5634: -case 5635: -case 5636: -case 5637: -case 5638: -case 5639: -case 5640: -case 5641: -case 5642: -case 5643: -case 5644: -case 5645: -case 5646: -case 5647: -case 5648: -case 5649: -case 5650: -case 5651: -case 5652: -case 5653: -case 5654: -case 5655: -case 5656: -case 5657: -case 5658: -case 5659: -case 5660: -case 5661: -case 5662: -case 5663: -case 5664: -case 5665: -case 5666: -case 5667: -case 5668: -case 5669: -case 5670: -case 5671: -case 5672: -case 5673: -case 5674: -case 5675: -case 5676: -case 5677: -case 5678: -case 5679: -case 5680: -case 5681: -case 5682: -case 5683: -case 5684: -case 5685: -case 5686: -case 5687: -case 5688: -case 5689: -case 5690: -case 5691: -case 5692: -case 5693: -case 5694: -case 5695: -case 5696: -case 5697: -case 5698: -case 5699: -case 5700: -case 5701: -case 5702: -case 5703: -case 5704: -case 5705: -case 5706: -case 5707: -case 5708: -case 5709: -case 5710: -case 5711: -case 5712: -case 5713: -case 5714: -case 5715: -case 5716: -case 5717: -case 5718: -case 5719: -case 5720: -case 5721: -case 5722: -case 5723: -case 5724: -case 5725: -case 5726: -case 5727: -case 5728: -case 5729: -case 5730: -case 5731: -case 5732: -case 5733: -case 5734: -case 5735: -case 5736: -case 5737: -case 5738: -case 5739: -case 5740: -case 5741: -case 5742: -case 5743: -case 5744: -case 5745: -case 5746: -case 5747: -case 5748: -case 5749: -case 5750: -case 5751: -case 5752: -case 5753: -case 5754: -case 5755: -case 5756: -case 5757: -case 5758: -case 5759: -case 5760: -case 5761: -case 5762: -case 5763: -case 5764: -case 5765: -case 5766: -case 5767: -case 5768: -case 5769: -case 5770: -case 5771: -case 5772: -case 5773: -case 5774: -case 5775: -case 5776: -case 5777: -case 5778: -case 5779: -case 5780: -case 5781: -case 5782: -case 5783: -case 5784: -case 5785: -case 5786: -case 5787: -case 5788: -case 5789: -case 5790: -case 5791: -case 5792: -case 5793: -case 5794: -case 5795: -case 5796: -case 5797: -case 5798: -case 5799: -case 5800: -case 5801: -case 5802: -case 5803: -case 5804: -case 5805: -case 5806: -case 5807: -case 5808: -case 5809: -case 5810: -case 5811: -case 5812: -case 5813: -case 5814: -case 5815: -case 5816: -case 5817: -case 5818: -case 5819: -case 5820: -case 5821: -case 5822: -case 5823: -case 5824: -case 5825: -case 5826: -case 5827: -case 5828: -case 5829: -case 5830: -case 5831: -case 5832: -case 5833: -case 5834: -case 5835: -case 5836: -case 5837: -case 5838: -case 5839: -case 5840: -case 5841: -case 5842: -case 5843: -case 5844: -case 5845: -case 5846: -case 5847: -case 5848: -case 5849: -case 5850: -case 5851: -case 5852: -case 5853: -case 5854: -case 5855: -case 5856: -case 5857: -case 5858: -case 5859: -case 5860: -case 5861: -case 5862: -case 5863: -case 5864: -case 5865: -case 5866: -case 5867: -case 5868: -case 5869: -case 5870: -case 5871: -case 5872: -case 5873: -case 5874: -case 5875: -case 5876: -case 5877: -case 5878: -case 5879: -case 5880: -case 5881: -case 5882: -case 5883: -case 5884: -case 5885: -case 5886: -case 5887: -case 5888: -case 5889: -case 5890: -case 5891: -case 5892: -case 5893: -case 5894: -case 5895: -case 5896: -case 5897: -case 5898: -case 5899: -case 5900: -case 5901: -case 5902: -case 5903: -case 5904: -case 5905: -case 5906: -case 5907: -case 5908: -case 5909: -case 5910: -case 5911: -case 5912: -case 5913: -case 5914: -case 5915: -case 5916: -case 5917: -case 5918: -case 5919: -case 5920: -case 5921: -case 5922: -case 5923: -case 5924: -case 5925: -case 5926: -case 5927: -case 5928: -case 5929: -case 5930: -case 5931: -case 5932: -case 5933: -case 5934: -case 5935: -case 5936: -case 5937: -case 5938: -case 5939: -case 5940: -case 5941: -case 5942: -case 5943: -case 5944: -case 5945: -case 5946: -case 5947: -case 5948: -case 5949: -case 5950: -case 5951: -case 5952: -case 5953: -case 5954: -case 5955: -case 5956: -case 5957: -case 5958: -case 5959: -case 5960: -case 5961: -case 5962: -case 5963: -case 5964: -case 5965: -case 5966: -case 5967: -case 5968: -case 5969: -case 5970: -case 5971: -case 5972: -case 5973: -case 5974: -case 5975: -case 5976: -case 5977: -case 5978: -case 5979: -case 5980: -case 5981: -case 5982: -case 5983: -case 5984: -case 5985: -case 5986: -case 5987: -case 5988: -case 5989: -case 5990: -case 5991: -case 5992: -case 5993: -case 5994: -case 5995: -case 5996: -case 5997: -case 5998: -case 5999: -case 6000: -case 6001: -case 6002: -case 6003: -case 6004: -case 6005: -case 6006: -case 6007: -case 6008: -case 6009: -case 6010: -case 6011: -case 6012: -case 6013: -case 6014: -case 6015: -case 6016: -case 6017: -case 6018: -case 6019: -case 6020: -case 6021: -case 6022: -case 6023: -case 6024: -case 6025: -case 6026: -case 6027: -case 6028: -case 6029: -case 6030: -case 6031: -case 6032: -case 6033: -case 6034: -case 6035: -case 6036: -case 6037: -case 6038: -case 6039: -case 6040: -case 6041: -case 6042: -case 6043: -case 6044: -case 6045: -case 6046: -case 6047: -case 6048: -case 6049: -case 6050: -case 6051: -case 6052: -case 6053: -case 6054: -case 6055: -case 6056: -case 6057: -case 6058: -case 6059: -case 6060: -case 6061: -case 6062: -case 6063: -case 6064: -case 6065: -case 6066: -case 6067: -case 6068: -case 6069: -case 6070: -case 6071: -case 6072: -case 6073: -case 6074: -case 6075: -case 6076: -case 6077: -case 6078: -case 6079: -case 6080: -case 6081: -case 6082: -case 6083: -case 6084: -case 6085: -case 6086: -case 6087: -case 6088: -case 6089: -case 6090: -case 6091: -case 6092: -case 6093: -case 6094: -case 6095: -case 6096: -case 6097: -case 6098: -case 6099: -case 6100: -case 6101: -case 6102: -case 6103: -case 6104: -case 6105: -case 6106: -case 6107: -case 6108: -case 6109: -case 6110: -case 6111: -case 6112: -case 6113: -case 6114: -case 6115: -case 6116: -case 6117: -case 6118: -case 6119: -case 6120: -case 6121: -case 6122: -case 6123: -case 6124: -case 6125: -case 6126: -case 6127: -case 6128: -case 6129: -case 6130: -case 6131: -case 6132: -case 6133: -case 6134: -case 6135: -case 6136: -case 6137: -case 6138: -case 6139: -case 6140: -case 6141: -case 6142: -case 6143: -case 6144: -case 6145: -case 6146: -case 6147: -case 6148: -case 6149: -case 6150: -case 6151: -case 6152: -case 6153: -case 6154: -case 6155: -case 6156: -case 6157: -case 6158: -case 6159: -case 6160: -case 6161: -case 6162: -case 6163: -case 6164: -case 6165: -case 6166: -case 6167: -case 6168: -case 6169: -case 6170: -case 6171: -case 6172: -case 6173: -case 6174: -case 6175: -case 6176: -case 6177: -case 6178: -case 6179: -case 6180: -case 6181: -case 6182: -case 6183: -case 6184: -case 6185: -case 6186: -case 6187: -case 6188: -case 6189: -case 6190: -case 6191: -case 6192: -case 6193: -case 6194: -case 6195: -case 6196: -case 6197: -case 6198: -case 6199: -case 6200: -case 6201: -case 6202: -case 6203: -case 6204: -case 6205: -case 6206: -case 6207: -case 6208: -case 6209: -case 6210: -case 6211: -case 6212: -case 6213: -case 6214: -case 6215: -case 6216: -case 6217: -case 6218: -case 6219: -case 6220: -case 6221: -case 6222: -case 6223: -case 6224: -case 6225: -case 6226: -case 6227: -case 6228: -case 6229: -case 6230: -case 6231: -case 6232: -case 6233: -case 6234: -case 6235: -case 6236: -case 6237: -case 6238: -case 6239: -case 6240: -case 6241: -case 6242: -case 6243: -case 6244: -case 6245: -case 6246: -case 6247: -case 6248: -case 6249: -case 6250: -case 6251: -case 6252: -case 6253: -case 6254: -case 6255: -case 6256: -case 6257: -case 6258: -case 6259: -case 6260: -case 6261: -case 6262: -case 6263: -case 6264: -case 6265: -case 6266: -case 6267: -case 6268: -case 6269: -case 6270: -case 6271: -case 6272: -case 6273: -case 6274: -case 6275: -case 6276: -case 6277: -case 6278: -case 6279: -case 6280: -case 6281: -case 6282: -case 6283: -case 6284: -case 6285: -case 6286: -case 6287: -case 6288: -case 6289: -case 6290: -case 6291: -case 6292: -case 6293: -case 6294: -case 6295: -case 6296: -case 6297: -case 6298: -case 6299: -case 6300: -case 6301: -case 6302: -case 6303: -case 6304: -case 6305: -case 6306: -case 6307: -case 6308: -case 6309: -case 6310: -case 6311: -case 6312: -case 6313: -case 6314: -case 6315: -case 6316: -case 6317: -case 6318: -case 6319: -case 6320: -case 6321: -case 6322: -case 6323: -case 6324: -case 6325: -case 6326: -case 6327: -case 6328: -case 6329: -case 6330: -case 6331: -case 6332: -case 6333: -case 6334: -case 6335: -case 6336: -case 6337: -case 6338: -case 6339: -case 6340: -case 6341: -case 6342: -case 6343: -case 6344: -case 6345: -case 6346: -case 6347: -case 6348: -case 6349: -case 6350: -case 6351: -case 6352: -case 6353: -case 6354: -case 6355: -case 6356: -case 6357: -case 6358: -case 6359: -case 6360: -case 6361: -case 6362: -case 6363: -case 6364: -case 6365: -case 6366: -case 6367: -case 6368: -case 6369: -case 6370: -case 6371: -case 6372: -case 6373: -case 6374: -case 6375: -case 6376: -case 6377: -case 6378: -case 6379: -case 6380: -case 6381: -case 6382: -case 6383: -case 6384: -case 6385: -case 6386: -case 6387: -case 6388: -case 6389: -case 6390: -case 6391: -case 6392: -case 6393: -case 6394: -case 6395: -case 6396: -case 6397: -case 6398: -case 6399: -case 6400: -case 6401: -case 6402: -case 6403: -case 6404: -case 6405: -case 6406: -case 6407: -case 6408: -case 6409: -case 6410: -case 6411: -case 6412: -case 6413: -case 6414: -case 6415: -case 6416: -case 6417: -case 6418: -case 6419: -case 6420: -case 6421: -case 6422: -case 6423: -case 6424: -case 6425: -case 6426: -case 6427: -case 6428: -case 6429: -case 6430: -case 6431: -case 6432: -case 6433: -case 6434: -case 6435: -case 6436: -case 6437: -case 6438: -case 6439: -case 6440: -case 6441: -case 6442: -case 6443: -case 6444: -case 6445: -case 6446: -case 6447: -case 6448: -case 6449: -case 6450: -case 6451: -case 6452: -case 6453: -case 6454: -case 6455: -case 6456: -case 6457: -case 6458: -case 6459: -case 6460: -case 6461: -case 6462: -case 6463: -case 6464: -case 6465: -case 6466: -case 6467: -case 6468: -case 6469: -case 6470: -case 6471: -case 6472: -case 6473: -case 6474: -case 6475: -case 6476: -case 6477: -case 6478: -case 6479: -case 6480: -case 6481: -case 6482: -case 6483: -case 6484: -case 6485: -case 6486: -case 6487: -case 6488: -case 6489: -case 6490: -case 6491: -case 6492: -case 6493: -case 6494: -case 6495: -case 6496: -case 6497: -case 6498: -case 6499: -case 6500: -case 6501: -case 6502: -case 6503: -case 6504: -case 6505: -case 6506: -case 6507: -case 6508: -case 6509: -case 6510: -case 6511: -case 6512: -case 6513: -case 6514: -case 6515: -case 6516: -case 6517: -case 6518: -case 6519: -case 6520: -case 6521: -case 6522: -case 6523: -case 6524: -case 6525: -case 6526: -case 6527: -case 6528: -case 6529: -case 6530: -case 6531: -case 6532: -case 6533: -case 6534: -case 6535: -case 6536: -case 6537: -case 6538: -case 6539: -case 6540: -case 6541: -case 6542: -case 6543: -case 6544: -case 6545: -case 6546: -case 6547: -case 6548: -case 6549: -case 6550: -case 6551: -case 6552: -case 6553: -case 6554: -case 6555: -case 6556: -case 6557: -case 6558: -case 6559: -case 6560: -case 6561: -case 6562: -case 6563: -case 6564: -case 6565: -case 6566: -case 6567: -case 6568: -case 6569: -case 6570: -case 6571: -case 6572: -case 6573: -case 6574: -case 6575: -case 6576: -case 6577: -case 6578: -case 6579: -case 6580: -case 6581: -case 6582: -case 6583: -case 6584: -case 6585: -case 6586: -case 6587: -case 6588: -case 6589: -case 6590: -case 6591: -case 6592: -case 6593: -case 6594: -case 6595: -case 6596: -case 6597: -case 6598: -case 6599: -case 6600: -case 6601: -case 6602: -case 6603: -case 6604: -case 6605: -case 6606: -case 6607: -case 6608: -case 6609: -case 6610: -case 6611: -case 6612: -case 6613: -case 6614: -case 6615: -case 6616: -case 6617: -case 6618: -case 6619: -case 6620: -case 6621: -case 6622: -case 6623: -case 6624: -case 6625: -case 6626: -case 6627: -case 6628: -case 6629: -case 6630: -case 6631: -case 6632: -case 6633: -case 6634: -case 6635: -case 6636: -case 6637: -case 6638: -case 6639: -case 6640: -case 6641: -case 6642: -case 6643: -case 6644: -case 6645: -case 6646: -case 6647: -case 6648: -case 6649: -case 6650: -case 6651: -case 6652: -case 6653: -case 6654: -case 6655: -case 6656: -case 6657: -case 6658: -case 6659: -case 6660: -case 6661: -case 6662: -case 6663: -case 6664: -case 6665: -case 6666: -case 6667: -case 6668: -case 6669: -case 6670: -case 6671: -case 6672: -case 6673: -case 6674: -case 6675: -case 6676: -case 6677: -case 6678: -case 6679: -case 6680: -case 6681: -case 6682: -case 6683: -case 6684: -case 6685: -case 6686: -case 6687: -case 6688: -case 6689: -case 6690: -case 6691: -case 6692: -case 6693: -case 6694: -case 6695: -case 6696: -case 6697: -case 6698: -case 6699: -case 6700: -case 6701: -case 6702: -case 6703: -case 6704: -case 6705: -case 6706: -case 6707: -case 6708: -case 6709: -case 6710: -case 6711: -case 6712: -case 6713: -case 6714: -case 6715: -case 6716: -case 6717: -case 6718: -case 6719: -case 6720: -case 6721: -case 6722: -case 6723: -case 6724: -case 6725: -case 6726: -case 6727: -case 6728: -case 6729: -case 6730: -case 6731: -case 6732: -case 6733: -case 6734: -case 6735: -case 6736: -case 6737: -case 6738: -case 6739: -case 6740: -case 6741: -case 6742: -case 6743: -case 6744: -case 6745: -case 6746: -case 6747: -case 6748: -case 6749: -case 6750: -case 6751: -case 6752: -case 6753: -case 6754: -case 6755: -case 6756: -case 6757: -case 6758: -case 6759: -case 6760: -case 6761: -case 6762: -case 6763: -case 6764: -case 6765: -case 6766: -case 6767: -case 6768: -case 6769: -case 6770: -case 6771: -case 6772: -case 6773: -case 6774: -case 6775: -case 6776: -case 6777: -case 6778: -case 6779: -case 6780: -case 6781: -case 6782: -case 6783: -case 6784: -case 6785: -case 6786: -case 6787: -case 6788: -case 6789: -case 6790: -case 6791: -case 6792: -case 6793: -case 6794: -case 6795: -case 6796: -case 6797: -case 6798: -case 6799: -case 6800: -case 6801: -case 6802: -case 6803: -case 6804: -case 6805: -case 6806: -case 6807: -case 6808: -case 6809: -case 6810: -case 6811: -case 6812: -case 6813: -case 6814: -case 6815: -case 6816: -case 6817: -case 6818: -case 6819: -case 6820: -case 6821: -case 6822: -case 6823: -case 6824: -case 6825: -case 6826: -case 6827: -case 6828: -case 6829: -case 6830: -case 6831: -case 6832: -case 6833: -case 6834: -case 6835: -case 6836: -case 6837: -case 6838: -case 6839: -case 6840: -case 6841: -case 6842: -case 6843: -case 6844: -case 6845: -case 6846: -case 6847: -case 6848: -case 6849: -case 6850: -case 6851: -case 6852: -case 6853: -case 6854: -case 6855: -case 6856: -case 6857: -case 6858: -case 6859: -case 6860: -case 6861: -case 6862: -case 6863: -case 6864: -case 6865: -case 6866: -case 6867: -case 6868: -case 6869: -case 6870: -case 6871: -case 6872: -case 6873: -case 6874: -case 6875: -case 6876: -case 6877: -case 6878: -case 6879: -case 6880: -case 6881: -case 6882: -case 6883: -case 6884: -case 6885: -case 6886: -case 6887: -case 6888: -case 6889: -case 6890: -case 6891: -case 6892: -case 6893: -case 6894: -case 6895: -case 6896: -case 6897: -case 6898: -case 6899: -case 6900: -case 6901: -case 6902: -case 6903: -case 6904: -case 6905: -case 6906: -case 6907: -case 6908: -case 6909: -case 6910: -case 6911: -case 6912: -case 6913: -case 6914: -case 6915: -case 6916: -case 6917: -case 6918: -case 6919: -case 6920: -case 6921: -case 6922: -case 6923: -case 6924: -case 6925: -case 6926: -case 6927: -case 6928: -case 6929: -case 6930: -case 6931: -case 6932: -case 6933: -case 6934: -case 6935: -case 6936: -case 6937: -case 6938: -case 6939: -case 6940: -case 6941: -case 6942: -case 6943: -case 6944: -case 6945: -case 6946: -case 6947: -case 6948: -case 6949: -case 6950: -case 6951: -case 6952: -case 6953: -case 6954: -case 6955: -case 6956: -case 6957: -case 6958: -case 6959: -case 6960: -case 6961: -case 6962: -case 6963: -case 6964: -case 6965: -case 6966: -case 6967: -case 6968: -case 6969: -case 6970: -case 6971: -case 6972: -case 6973: -case 6974: -case 6975: -case 6976: -case 6977: -case 6978: -case 6979: -case 6980: -case 6981: -case 6982: -case 6983: -case 6984: -case 6985: -case 6986: -case 6987: -case 6988: -case 6989: -case 6990: -case 6991: -case 6992: -case 6993: -case 6994: -case 6995: -case 6996: -case 6997: -case 6998: -case 6999: -case 7000: -case 7001: -case 7002: -case 7003: -case 7004: -case 7005: -case 7006: -case 7007: -case 7008: -case 7009: -case 7010: -case 7011: -case 7012: -case 7013: -case 7014: -case 7015: -case 7016: -case 7017: -case 7018: -case 7019: -case 7020: -case 7021: -case 7022: -case 7023: -case 7024: -case 7025: -case 7026: -case 7027: -case 7028: -case 7029: -case 7030: -case 7031: -case 7032: -case 7033: -case 7034: -case 7035: -case 7036: -case 7037: -case 7038: -case 7039: -case 7040: -case 7041: -case 7042: -case 7043: -case 7044: -case 7045: -case 7046: -case 7047: -case 7048: -case 7049: -case 7050: -case 7051: -case 7052: -case 7053: -case 7054: -case 7055: -case 7056: -case 7057: -case 7058: -case 7059: -case 7060: -case 7061: -case 7062: -case 7063: -case 7064: -case 7065: -case 7066: -case 7067: -case 7068: -case 7069: -case 7070: -case 7071: -case 7072: -case 7073: -case 7074: -case 7075: -case 7076: -case 7077: -case 7078: -case 7079: -case 7080: -case 7081: -case 7082: -case 7083: -case 7084: -case 7085: -case 7086: -case 7087: -case 7088: -case 7089: -case 7090: -case 7091: -case 7092: -case 7093: -case 7094: -case 7095: -case 7096: -case 7097: -case 7098: -case 7099: -case 7100: -case 7101: -case 7102: -case 7103: -case 7104: -case 7105: -case 7106: -case 7107: -case 7108: -case 7109: -case 7110: -case 7111: -case 7112: -case 7113: -case 7114: -case 7115: -case 7116: -case 7117: -case 7118: -case 7119: -case 7120: -case 7121: -case 7122: -case 7123: -case 7124: -case 7125: -case 7126: -case 7127: -case 7128: -case 7129: -case 7130: -case 7131: -case 7132: -case 7133: -case 7134: -case 7135: -case 7136: -case 7137: -case 7138: -case 7139: -case 7140: -case 7141: -case 7142: -case 7143: -case 7144: -case 7145: -case 7146: -case 7147: -case 7148: -case 7149: -case 7150: -case 7151: -case 7152: -case 7153: -case 7154: -case 7155: -case 7156: -case 7157: -case 7158: -case 7159: -case 7160: -case 7161: -case 7162: -case 7163: -case 7164: -case 7165: -case 7166: -case 7167: -case 7168: -case 7169: -case 7170: -case 7171: -case 7172: -case 7173: -case 7174: -case 7175: -case 7176: -case 7177: -case 7178: -case 7179: -case 7180: -case 7181: -case 7182: -case 7183: -case 7184: -case 7185: -case 7186: -case 7187: -case 7188: -case 7189: -case 7190: -case 7191: -case 7192: -case 7193: -case 7194: -case 7195: -case 7196: -case 7197: -case 7198: -case 7199: -case 7200: -case 7201: -case 7202: -case 7203: -case 7204: -case 7205: -case 7206: -case 7207: -case 7208: -case 7209: -case 7210: -case 7211: -case 7212: -case 7213: -case 7214: -case 7215: -case 7216: -case 7217: -case 7218: -case 7219: -case 7220: -case 7221: -case 7222: -case 7223: -case 7224: -case 7225: -case 7226: -case 7227: -case 7228: -case 7229: -case 7230: -case 7231: -case 7232: -case 7233: -case 7234: -case 7235: -case 7236: -case 7237: -case 7238: -case 7239: -case 7240: -case 7241: -case 7242: -case 7243: -case 7244: -case 7245: -case 7246: -case 7247: -case 7248: -case 7249: -case 7250: -case 7251: -case 7252: -case 7253: -case 7254: -case 7255: -case 7256: -case 7257: -case 7258: -case 7259: -case 7260: -case 7261: -case 7262: -case 7263: -case 7264: -case 7265: -case 7266: -case 7267: -case 7268: -case 7269: -case 7270: -case 7271: -case 7272: -case 7273: -case 7274: -case 7275: -case 7276: -case 7277: -case 7278: -case 7279: -case 7280: -case 7281: -case 7282: -case 7283: -case 7284: -case 7285: -case 7286: -case 7287: -case 7288: -case 7289: -case 7290: -case 7291: -case 7292: -case 7293: -case 7294: -case 7295: -case 7296: -case 7297: -case 7298: -case 7299: -case 7300: -case 7301: -case 7302: -case 7303: -case 7304: -case 7305: -case 7306: -case 7307: -case 7308: -case 7309: -case 7310: -case 7311: -case 7312: -case 7313: -case 7314: -case 7315: -case 7316: -case 7317: -case 7318: -case 7319: -case 7320: -case 7321: -case 7322: -case 7323: -case 7324: -case 7325: -case 7326: -case 7327: -case 7328: -case 7329: -case 7330: -case 7331: -case 7332: -case 7333: -case 7334: -case 7335: -case 7336: -case 7337: -case 7338: -case 7339: -case 7340: -case 7341: -case 7342: -case 7343: -case 7344: -case 7345: -case 7346: -case 7347: -case 7348: -case 7349: -case 7350: -case 7351: -case 7352: -case 7353: -case 7354: -case 7355: -case 7356: -case 7357: -case 7358: -case 7359: -case 7360: -case 7361: -case 7362: -case 7363: -case 7364: -case 7365: -case 7366: -case 7367: -case 7368: -case 7369: -case 7370: -case 7371: -case 7372: -case 7373: -case 7374: -case 7375: -case 7376: -case 7377: -case 7378: -case 7379: -case 7380: -case 7381: -case 7382: -case 7383: -case 7384: -case 7385: -case 7386: -case 7387: -case 7388: -case 7389: -case 7390: -case 7391: -case 7392: -case 7393: -case 7394: -case 7395: -case 7396: -case 7397: -case 7398: -case 7399: -case 7400: -case 7401: -case 7402: -case 7403: -case 7404: -case 7405: -case 7406: -case 7407: -case 7408: -case 7409: -case 7410: -case 7411: -case 7412: -case 7413: -case 7414: -case 7415: -case 7416: -case 7417: -case 7418: -case 7419: -case 7420: -case 7421: -case 7422: -case 7423: -case 7424: -case 7425: -case 7426: -case 7427: -case 7428: -case 7429: -case 7430: -case 7431: -case 7432: -case 7433: -case 7434: -case 7435: -case 7436: -case 7437: -case 7438: -case 7439: -case 7440: -case 7441: -case 7442: -case 7443: -case 7444: -case 7445: -case 7446: -case 7447: -case 7448: -case 7449: -case 7450: -case 7451: -case 7452: -case 7453: -case 7454: -case 7455: -case 7456: -case 7457: -case 7458: -case 7459: -case 7460: -case 7461: -case 7462: -case 7463: -case 7464: -case 7465: -case 7466: -case 7467: -case 7468: -case 7469: -case 7470: -case 7471: -case 7472: -case 7473: -case 7474: -case 7475: -case 7476: -case 7477: -case 7478: -case 7479: -case 7480: -case 7481: -case 7482: -case 7483: -case 7484: -case 7485: -case 7486: -case 7487: -case 7488: -case 7489: -case 7490: -case 7491: -case 7492: -case 7493: -case 7494: -case 7495: -case 7496: -case 7497: -case 7498: -case 7499: -case 7500: -case 7501: -case 7502: -case 7503: -case 7504: -case 7505: -case 7506: -case 7507: -case 7508: -case 7509: -case 7510: -case 7511: -case 7512: -case 7513: -case 7514: -case 7515: -case 7516: -case 7517: -case 7518: -case 7519: -case 7520: -case 7521: -case 7522: -case 7523: -case 7524: -case 7525: -case 7526: -case 7527: -case 7528: -case 7529: -case 7530: -case 7531: -case 7532: -case 7533: -case 7534: -case 7535: -case 7536: -case 7537: -case 7538: -case 7539: -case 7540: -case 7541: -case 7542: -case 7543: -case 7544: -case 7545: -case 7546: -case 7547: -case 7548: -case 7549: -case 7550: -case 7551: -case 7552: -case 7553: -case 7554: -case 7555: -case 7556: -case 7557: -case 7558: -case 7559: -case 7560: -case 7561: -case 7562: -case 7563: -case 7564: -case 7565: -case 7566: -case 7567: -case 7568: -case 7569: -case 7570: -case 7571: -case 7572: -case 7573: -case 7574: -case 7575: -case 7576: -case 7577: -case 7578: -case 7579: -case 7580: -case 7581: -case 7582: -case 7583: -case 7584: -case 7585: -case 7586: -case 7587: -case 7588: -case 7589: -case 7590: -case 7591: -case 7592: -case 7593: -case 7594: -case 7595: -case 7596: -case 7597: -case 7598: -case 7599: -case 7600: -case 7601: -case 7602: -case 7603: -case 7604: -case 7605: -case 7606: -case 7607: -case 7608: -case 7609: -case 7610: -case 7611: -case 7612: -case 7613: -case 7614: -case 7615: -case 7616: -case 7617: -case 7618: -case 7619: -case 7620: -case 7621: -case 7622: -case 7623: -case 7624: -case 7625: -case 7626: -case 7627: -case 7628: -case 7629: -case 7630: -case 7631: -case 7632: -case 7633: -case 7634: -case 7635: -case 7636: -case 7637: -case 7638: -case 7639: -case 7640: -case 7641: -case 7642: -case 7643: -case 7644: -case 7645: -case 7646: -case 7647: -case 7648: -case 7649: -case 7650: -case 7651: -case 7652: -case 7653: -case 7654: -case 7655: -case 7656: -case 7657: -case 7658: -case 7659: -case 7660: -case 7661: -case 7662: -case 7663: -case 7664: -case 7665: -case 7666: -case 7667: -case 7668: -case 7669: -case 7670: -case 7671: -case 7672: -case 7673: -case 7674: -case 7675: -case 7676: -case 7677: -case 7678: -case 7679: -case 7680: -case 7681: -case 7682: -case 7683: -case 7684: -case 7685: -case 7686: -case 7687: -case 7688: -case 7689: -case 7690: -case 7691: -case 7692: -case 7693: -case 7694: -case 7695: -case 7696: -case 7697: -case 7698: -case 7699: -case 7700: -case 7701: -case 7702: -case 7703: -case 7704: -case 7705: -case 7706: -case 7707: -case 7708: -case 7709: -case 7710: -case 7711: -case 7712: -case 7713: -case 7714: -case 7715: -case 7716: -case 7717: -case 7718: -case 7719: -case 7720: -case 7721: -case 7722: -case 7723: -case 7724: -case 7725: -case 7726: -case 7727: -case 7728: -case 7729: -case 7730: -case 7731: -case 7732: -case 7733: -case 7734: -case 7735: -case 7736: -case 7737: -case 7738: -case 7739: -case 7740: -case 7741: -case 7742: -case 7743: -case 7744: -case 7745: -case 7746: -case 7747: -case 7748: -case 7749: -case 7750: -case 7751: -case 7752: -case 7753: -case 7754: -case 7755: -case 7756: -case 7757: -case 7758: -case 7759: -case 7760: -case 7761: -case 7762: -case 7763: -case 7764: -case 7765: -case 7766: -case 7767: -case 7768: -case 7769: -case 7770: -case 7771: -case 7772: -case 7773: -case 7774: -case 7775: -case 7776: -case 7777: -case 7778: -case 7779: -case 7780: -case 7781: -case 7782: -case 7783: -case 7784: -case 7785: -case 7786: -case 7787: -case 7788: -case 7789: -case 7790: -case 7791: -case 7792: -case 7793: -case 7794: -case 7795: -case 7796: -case 7797: -case 7798: -case 7799: -case 7800: -case 7801: -case 7802: -case 7803: -case 7804: -case 7805: -case 7806: -case 7807: -case 7808: -case 7809: -case 7810: -case 7811: -case 7812: -case 7813: -case 7814: -case 7815: -case 7816: -case 7817: -case 7818: -case 7819: -case 7820: -case 7821: -case 7822: -case 7823: -case 7824: -case 7825: -case 7826: -case 7827: -case 7828: -case 7829: -case 7830: -case 7831: -case 7832: -case 7833: -case 7834: -case 7835: -case 7836: -case 7837: -case 7838: -case 7839: -case 7840: -case 7841: -case 7842: -case 7843: -case 7844: -case 7845: -case 7846: -case 7847: -case 7848: -case 7849: -case 7850: -case 7851: -case 7852: -case 7853: -case 7854: -case 7855: -case 7856: -case 7857: -case 7858: -case 7859: -case 7860: -case 7861: -case 7862: -case 7863: -case 7864: -case 7865: -case 7866: -case 7867: -case 7868: -case 7869: -case 7870: -case 7871: -case 7872: -case 7873: -case 7874: -case 7875: -case 7876: -case 7877: -case 7878: -case 7879: -case 7880: -case 7881: -case 7882: -case 7883: -case 7884: -case 7885: -case 7886: -case 7887: -case 7888: -case 7889: -case 7890: -case 7891: -case 7892: -case 7893: -case 7894: -case 7895: -case 7896: -case 7897: -case 7898: -case 7899: -case 7900: -case 7901: -case 7902: -case 7903: -case 7904: -case 7905: -case 7906: -case 7907: -case 7908: -case 7909: -case 7910: -case 7911: -case 7912: -case 7913: -case 7914: -case 7915: -case 7916: -case 7917: -case 7918: -case 7919: -case 7920: -case 7921: -case 7922: -case 7923: -case 7924: -case 7925: -case 7926: -case 7927: -case 7928: -case 7929: -case 7930: -case 7931: -case 7932: -case 7933: -case 7934: -case 7935: -case 7936: -case 7937: -case 7938: -case 7939: -case 7940: -case 7941: -case 7942: -case 7943: -case 7944: -case 7945: -case 7946: -case 7947: -case 7948: -case 7949: -case 7950: -case 7951: -case 7952: -case 7953: -case 7954: -case 7955: -case 7956: -case 7957: -case 7958: -case 7959: -case 7960: -case 7961: -case 7962: -case 7963: -case 7964: -case 7965: -case 7966: -case 7967: -case 7968: -case 7969: -case 7970: -case 7971: -case 7972: -case 7973: -case 7974: -case 7975: -case 7976: -case 7977: -case 7978: -case 7979: -case 7980: -case 7981: -case 7982: -case 7983: -case 7984: -case 7985: -case 7986: -case 7987: -case 7988: -case 7989: -case 7990: -case 7991: -case 7992: -case 7993: -case 7994: -case 7995: -case 7996: -case 7997: -case 7998: -case 7999: -case 8000: -case 8001: -case 8002: -case 8003: -case 8004: -case 8005: -case 8006: -case 8007: -case 8008: -case 8009: -case 8010: -case 8011: -case 8012: -case 8013: -case 8014: -case 8015: -case 8016: -case 8017: -case 8018: -case 8019: -case 8020: -case 8021: -case 8022: -case 8023: -case 8024: -case 8025: -case 8026: -case 8027: -case 8028: -case 8029: -case 8030: -case 8031: -case 8032: -case 8033: -case 8034: -case 8035: -case 8036: -case 8037: -case 8038: -case 8039: -case 8040: -case 8041: -case 8042: -case 8043: -case 8044: -case 8045: -case 8046: -case 8047: -case 8048: -case 8049: -case 8050: -case 8051: -case 8052: -case 8053: -case 8054: -case 8055: -case 8056: -case 8057: -case 8058: -case 8059: -case 8060: -case 8061: -case 8062: -case 8063: -case 8064: -case 8065: -case 8066: -case 8067: -case 8068: -case 8069: -case 8070: -case 8071: -case 8072: -case 8073: -case 8074: -case 8075: -case 8076: -case 8077: -case 8078: -case 8079: -case 8080: -case 8081: -case 8082: -case 8083: -case 8084: -case 8085: -case 8086: -case 8087: -case 8088: -case 8089: -case 8090: -case 8091: -case 8092: -case 8093: -case 8094: -case 8095: -case 8096: -case 8097: -case 8098: -case 8099: -case 8100: -case 8101: -case 8102: -case 8103: -case 8104: -case 8105: -case 8106: -case 8107: -case 8108: -case 8109: -case 8110: -case 8111: -case 8112: -case 8113: -case 8114: -case 8115: -case 8116: -case 8117: -case 8118: -case 8119: -case 8120: -case 8121: -case 8122: -case 8123: -case 8124: -case 8125: -case 8126: -case 8127: -case 8128: -case 8129: -case 8130: -case 8131: -case 8132: -case 8133: -case 8134: -case 8135: -case 8136: -case 8137: -case 8138: -case 8139: -case 8140: -case 8141: -case 8142: -case 8143: -case 8144: -case 8145: -case 8146: -case 8147: -case 8148: -case 8149: -case 8150: -case 8151: -case 8152: -case 8153: -case 8154: -case 8155: -case 8156: -case 8157: -case 8158: -case 8159: -case 8160: -case 8161: -case 8162: -case 8163: -case 8164: -case 8165: -case 8166: -case 8167: -case 8168: -case 8169: -case 8170: -case 8171: -case 8172: -case 8173: -case 8174: -case 8175: -case 8176: -case 8177: -case 8178: -case 8179: -case 8180: -case 8181: -case 8182: -case 8183: -case 8184: -case 8185: -case 8186: -case 8187: -case 8188: -case 8189: -case 8190: -case 8191: -case 8192: -case 8193: -case 8194: -case 8195: -case 8196: -case 8197: -case 8198: -case 8199: -case 8200: -case 8201: -case 8202: -case 8203: -case 8204: -case 8205: -case 8206: -case 8207: -case 8208: -case 8209: -case 8210: -case 8211: -case 8212: -case 8213: -case 8214: -case 8215: -case 8216: -case 8217: -case 8218: -case 8219: -case 8220: -case 8221: -case 8222: -case 8223: -case 8224: -case 8225: -case 8226: -case 8227: -case 8228: -case 8229: -case 8230: -case 8231: -case 8232: -case 8233: -case 8234: -case 8235: -case 8236: -case 8237: -case 8238: -case 8239: -case 8240: -case 8241: -case 8242: -case 8243: -case 8244: -case 8245: -case 8246: -case 8247: -case 8248: -case 8249: -case 8250: -case 8251: -case 8252: -case 8253: -case 8254: -case 8255: -case 8256: -case 8257: -case 8258: -case 8259: -case 8260: -case 8261: -case 8262: -case 8263: -case 8264: -case 8265: -case 8266: -case 8267: -case 8268: -case 8269: -case 8270: -case 8271: -case 8272: -case 8273: -case 8274: -case 8275: -case 8276: -case 8277: -case 8278: -case 8279: -case 8280: -case 8281: -case 8282: -case 8283: -case 8284: -case 8285: -case 8286: -case 8287: -case 8288: -case 8289: -case 8290: -case 8291: -case 8292: -case 8293: -case 8294: -case 8295: -case 8296: -case 8297: -case 8298: -case 8299: -case 8300: -case 8301: -case 8302: -case 8303: -case 8304: -case 8305: -case 8306: -case 8307: -case 8308: -case 8309: -case 8310: -case 8311: -case 8312: -case 8313: -case 8314: -case 8315: -case 8316: -case 8317: -case 8318: -case 8319: -case 8320: -case 8321: -case 8322: -case 8323: -case 8324: -case 8325: -case 8326: -case 8327: -case 8328: -case 8329: -case 8330: -case 8331: -case 8332: -case 8333: -case 8334: -case 8335: -case 8336: -case 8337: -case 8338: -case 8339: -case 8340: -case 8341: -case 8342: -case 8343: -case 8344: -case 8345: -case 8346: -case 8347: -case 8348: -case 8349: -case 8350: -case 8351: -case 8352: -case 8353: -case 8354: -case 8355: -case 8356: -case 8357: -case 8358: -case 8359: -case 8360: -case 8361: -case 8362: -case 8363: -case 8364: -case 8365: -case 8366: -case 8367: -case 8368: -case 8369: -case 8370: -case 8371: -case 8372: -case 8373: -case 8374: -case 8375: -case 8376: -case 8377: -case 8378: -case 8379: -case 8380: -case 8381: -case 8382: -case 8383: -case 8384: -case 8385: -case 8386: -case 8387: -case 8388: -case 8389: -case 8390: -case 8391: -case 8392: -case 8393: -case 8394: -case 8395: -case 8396: -case 8397: -case 8398: -case 8399: -case 8400: -case 8401: -case 8402: -case 8403: -case 8404: -case 8405: -case 8406: -case 8407: -case 8408: -case 8409: -case 8410: -case 8411: -case 8412: -case 8413: -case 8414: -case 8415: -case 8416: -case 8417: -case 8418: -case 8419: -case 8420: -case 8421: -case 8422: -case 8423: -case 8424: -case 8425: -case 8426: -case 8427: -case 8428: -case 8429: -case 8430: -case 8431: -case 8432: -case 8433: -case 8434: -case 8435: -case 8436: -case 8437: -case 8438: -case 8439: -case 8440: -case 8441: -case 8442: -case 8443: -case 8444: -case 8445: -case 8446: -case 8447: -case 8448: -case 8449: -case 8450: -case 8451: -case 8452: -case 8453: -case 8454: -case 8455: -case 8456: -case 8457: -case 8458: -case 8459: -case 8460: -case 8461: -case 8462: -case 8463: -case 8464: -case 8465: -case 8466: -case 8467: -case 8468: -case 8469: -case 8470: -case 8471: -case 8472: -case 8473: -case 8474: -case 8475: -case 8476: -case 8477: -case 8478: -case 8479: -case 8480: -case 8481: -case 8482: -case 8483: -case 8484: -case 8485: -case 8486: -case 8487: -case 8488: -case 8489: -case 8490: -case 8491: -case 8492: -case 8493: -case 8494: -case 8495: -case 8496: -case 8497: -case 8498: -case 8499: -case 8500: -case 8501: -case 8502: -case 8503: -case 8504: -case 8505: -case 8506: -case 8507: -case 8508: -case 8509: -case 8510: -case 8511: -case 8512: -case 8513: -case 8514: -case 8515: -case 8516: -case 8517: -case 8518: -case 8519: -case 8520: -case 8521: -case 8522: -case 8523: -case 8524: -case 8525: -case 8526: -case 8527: -case 8528: -case 8529: -case 8530: -case 8531: -case 8532: -case 8533: -case 8534: -case 8535: -case 8536: -case 8537: -case 8538: -case 8539: -case 8540: -case 8541: -case 8542: -case 8543: -case 8544: -case 8545: -case 8546: -case 8547: -case 8548: -case 8549: -case 8550: -case 8551: -case 8552: -case 8553: -case 8554: -case 8555: -case 8556: -case 8557: -case 8558: -case 8559: -case 8560: -case 8561: -case 8562: -case 8563: -case 8564: -case 8565: -case 8566: -case 8567: -case 8568: -case 8569: -case 8570: -case 8571: -case 8572: -case 8573: -case 8574: -case 8575: -case 8576: -case 8577: -case 8578: -case 8579: -case 8580: -case 8581: -case 8582: -case 8583: -case 8584: -case 8585: -case 8586: -case 8587: -case 8588: -case 8589: -case 8590: -case 8591: -case 8592: -case 8593: -case 8594: -case 8595: -case 8596: -case 8597: -case 8598: -case 8599: -case 8600: -case 8601: -case 8602: -case 8603: -case 8604: -case 8605: -case 8606: -case 8607: -case 8608: -case 8609: -case 8610: -case 8611: -case 8612: -case 8613: -case 8614: -case 8615: -case 8616: -case 8617: -case 8618: -case 8619: -case 8620: -case 8621: -case 8622: -case 8623: -case 8624: -case 8625: -case 8626: -case 8627: -case 8628: -case 8629: -case 8630: -case 8631: -case 8632: -case 8633: -case 8634: -case 8635: -case 8636: -case 8637: -case 8638: -case 8639: -case 8640: -case 8641: -case 8642: -case 8643: -case 8644: -case 8645: -case 8646: -case 8647: -case 8648: -case 8649: -case 8650: -case 8651: -case 8652: -case 8653: -case 8654: -case 8655: -case 8656: -case 8657: -case 8658: -case 8659: -case 8660: -case 8661: -case 8662: -case 8663: -case 8664: -case 8665: -case 8666: -case 8667: -case 8668: -case 8669: -case 8670: -case 8671: -case 8672: -case 8673: -case 8674: -case 8675: -case 8676: -case 8677: -case 8678: -case 8679: -case 8680: -case 8681: -case 8682: -case 8683: -case 8684: -case 8685: -case 8686: -case 8687: -case 8688: -case 8689: -case 8690: -case 8691: -case 8692: -case 8693: -case 8694: -case 8695: -case 8696: -case 8697: -case 8698: -case 8699: -case 8700: -case 8701: -case 8702: -case 8703: -case 8704: -case 8705: -case 8706: -case 8707: -case 8708: -case 8709: -case 8710: -case 8711: -case 8712: -case 8713: -case 8714: -case 8715: -case 8716: -case 8717: -case 8718: -case 8719: -case 8720: -case 8721: -case 8722: -case 8723: -case 8724: -case 8725: -case 8726: -case 8727: -case 8728: -case 8729: -case 8730: -case 8731: -case 8732: -case 8733: -case 8734: -case 8735: -case 8736: -case 8737: -case 8738: -case 8739: -case 8740: -case 8741: -case 8742: -case 8743: -case 8744: -case 8745: -case 8746: -case 8747: -case 8748: -case 8749: -case 8750: -case 8751: -case 8752: -case 8753: -case 8754: -case 8755: -case 8756: -case 8757: -case 8758: -case 8759: -case 8760: -case 8761: -case 8762: -case 8763: -case 8764: -case 8765: -case 8766: -case 8767: -case 8768: -case 8769: -case 8770: -case 8771: -case 8772: -case 8773: -case 8774: -case 8775: -case 8776: -case 8777: -case 8778: -case 8779: -case 8780: -case 8781: -case 8782: -case 8783: -case 8784: -case 8785: -case 8786: -case 8787: -case 8788: -case 8789: -case 8790: -case 8791: -case 8792: -case 8793: -case 8794: -case 8795: -case 8796: -case 8797: -case 8798: -case 8799: -case 8800: -case 8801: -case 8802: -case 8803: -case 8804: -case 8805: -case 8806: -case 8807: -case 8808: -case 8809: -case 8810: -case 8811: -case 8812: -case 8813: -case 8814: -case 8815: -case 8816: -case 8817: -case 8818: -case 8819: -case 8820: -case 8821: -case 8822: -case 8823: -case 8824: -case 8825: -case 8826: -case 8827: -case 8828: -case 8829: -case 8830: -case 8831: -case 8832: -case 8833: -case 8834: -case 8835: -case 8836: -case 8837: -case 8838: -case 8839: -case 8840: -case 8841: -case 8842: -case 8843: -case 8844: -case 8845: -case 8846: -case 8847: -case 8848: -case 8849: -case 8850: -case 8851: -case 8852: -case 8853: -case 8854: -case 8855: -case 8856: -case 8857: -case 8858: -case 8859: -case 8860: -case 8861: -case 8862: -case 8863: -case 8864: -case 8865: -case 8866: -case 8867: -case 8868: -case 8869: -case 8870: -case 8871: -case 8872: -case 8873: -case 8874: -case 8875: -case 8876: -case 8877: -case 8878: -case 8879: -case 8880: -case 8881: -case 8882: -case 8883: -case 8884: -case 8885: -case 8886: -case 8887: -case 8888: -case 8889: -case 8890: -case 8891: -case 8892: -case 8893: -case 8894: -case 8895: -case 8896: -case 8897: -case 8898: -case 8899: -case 8900: -case 8901: -case 8902: -case 8903: -case 8904: -case 8905: -case 8906: -case 8907: -case 8908: -case 8909: -case 8910: -case 8911: -case 8912: -case 8913: -case 8914: -case 8915: -case 8916: -case 8917: -case 8918: -case 8919: -case 8920: -case 8921: -case 8922: -case 8923: -case 8924: -case 8925: -case 8926: -case 8927: -case 8928: -case 8929: -case 8930: -case 8931: -case 8932: -case 8933: -case 8934: -case 8935: -case 8936: -case 8937: -case 8938: -case 8939: -case 8940: -case 8941: -case 8942: -case 8943: -case 8944: -case 8945: -case 8946: -case 8947: -case 8948: -case 8949: -case 8950: -case 8951: -case 8952: -case 8953: -case 8954: -case 8955: -case 8956: -case 8957: -case 8958: -case 8959: -case 8960: -case 8961: -case 8962: -case 8963: -case 8964: -case 8965: -case 8966: -case 8967: -case 8968: -case 8969: -case 8970: -case 8971: -case 8972: -case 8973: -case 8974: -case 8975: -case 8976: -case 8977: -case 8978: -case 8979: -case 8980: -case 8981: -case 8982: -case 8983: -case 8984: -case 8985: -case 8986: -case 8987: -case 8988: -case 8989: -case 8990: -case 8991: -case 8992: -case 8993: -case 8994: -case 8995: -case 8996: -case 8997: -case 8998: -case 8999: - actual += 'a'; -} -expect = 'a'; -addThis(); - - - -//--------------------------------------------------------------------------------- -test(); -//--------------------------------------------------------------------------------- - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-74474-003.js b/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-74474-003.js deleted file mode 100644 index 0bbe062ca9..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-74474-003.js +++ /dev/null @@ -1,9099 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * brendan@mozilla.org, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 09 May 2001 - * - * SUMMARY: Regression test for Bugzilla bug 74474 - * "switch() misbehaves with duplicated labels" - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=74474 - * See ECMA3 Section 12.11, "The switch Statement" - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-74474-003.js'; -var UBound = 0; -var BUGNUMBER = 74474; -var summary = 'Test of switch statement that overflows the stack-allocated bitmap'; -var status = '(One duplicated label [8998])'; -var statusitems = [ ]; -var actual = ''; -var actualvalues = [ ]; -var expect= ''; -var expectedvalues = [ ]; -var x = 3; - - -switch (x) -{ -case 0: -case 1: -case 2: -case 3: -case 4: -case 5: -case 6: -case 7: -case 8: -case 9: -case 10: -case 11: -case 12: -case 13: -case 14: -case 15: -case 16: -case 17: -case 18: -case 19: -case 20: -case 21: -case 22: -case 23: -case 24: -case 25: -case 26: -case 27: -case 28: -case 29: -case 30: -case 31: -case 32: -case 33: -case 34: -case 35: -case 36: -case 37: -case 38: -case 39: -case 40: -case 41: -case 42: -case 43: -case 44: -case 45: -case 46: -case 47: -case 48: -case 49: -case 50: -case 51: -case 52: -case 53: -case 54: -case 55: -case 56: -case 57: -case 58: -case 59: -case 60: -case 61: -case 62: -case 63: -case 64: -case 65: -case 66: -case 67: -case 68: -case 69: -case 70: -case 71: -case 72: -case 73: -case 74: -case 75: -case 76: -case 77: -case 78: -case 79: -case 80: -case 81: -case 82: -case 83: -case 84: -case 85: -case 86: -case 87: -case 88: -case 89: -case 90: -case 91: -case 92: -case 93: -case 94: -case 95: -case 96: -case 97: -case 98: -case 99: -case 100: -case 101: -case 102: -case 103: -case 104: -case 105: -case 106: -case 107: -case 108: -case 109: -case 110: -case 111: -case 112: -case 113: -case 114: -case 115: -case 116: -case 117: -case 118: -case 119: -case 120: -case 121: -case 122: -case 123: -case 124: -case 125: -case 126: -case 127: -case 128: -case 129: -case 130: -case 131: -case 132: -case 133: -case 134: -case 135: -case 136: -case 137: -case 138: -case 139: -case 140: -case 141: -case 142: -case 143: -case 144: -case 145: -case 146: -case 147: -case 148: -case 149: -case 150: -case 151: -case 152: -case 153: -case 154: -case 155: -case 156: -case 157: -case 158: -case 159: -case 160: -case 161: -case 162: -case 163: -case 164: -case 165: -case 166: -case 167: -case 168: -case 169: -case 170: -case 171: -case 172: -case 173: -case 174: -case 175: -case 176: -case 177: -case 178: -case 179: -case 180: -case 181: -case 182: -case 183: -case 184: -case 185: -case 186: -case 187: -case 188: -case 189: -case 190: -case 191: -case 192: -case 193: -case 194: -case 195: -case 196: -case 197: -case 198: -case 199: -case 200: -case 201: -case 202: -case 203: -case 204: -case 205: -case 206: -case 207: -case 208: -case 209: -case 210: -case 211: -case 212: -case 213: -case 214: -case 215: -case 216: -case 217: -case 218: -case 219: -case 220: -case 221: -case 222: -case 223: -case 224: -case 225: -case 226: -case 227: -case 228: -case 229: -case 230: -case 231: -case 232: -case 233: -case 234: -case 235: -case 236: -case 237: -case 238: -case 239: -case 240: -case 241: -case 242: -case 243: -case 244: -case 245: -case 246: -case 247: -case 248: -case 249: -case 250: -case 251: -case 252: -case 253: -case 254: -case 255: -case 256: -case 257: -case 258: -case 259: -case 260: -case 261: -case 262: -case 263: -case 264: -case 265: -case 266: -case 267: -case 268: -case 269: -case 270: -case 271: -case 272: -case 273: -case 274: -case 275: -case 276: -case 277: -case 278: -case 279: -case 280: -case 281: -case 282: -case 283: -case 284: -case 285: -case 286: -case 287: -case 288: -case 289: -case 290: -case 291: -case 292: -case 293: -case 294: -case 295: -case 296: -case 297: -case 298: -case 299: -case 300: -case 301: -case 302: -case 303: -case 304: -case 305: -case 306: -case 307: -case 308: -case 309: -case 310: -case 311: -case 312: -case 313: -case 314: -case 315: -case 316: -case 317: -case 318: -case 319: -case 320: -case 321: -case 322: -case 323: -case 324: -case 325: -case 326: -case 327: -case 328: -case 329: -case 330: -case 331: -case 332: -case 333: -case 334: -case 335: -case 336: -case 337: -case 338: -case 339: -case 340: -case 341: -case 342: -case 343: -case 344: -case 345: -case 346: -case 347: -case 348: -case 349: -case 350: -case 351: -case 352: -case 353: -case 354: -case 355: -case 356: -case 357: -case 358: -case 359: -case 360: -case 361: -case 362: -case 363: -case 364: -case 365: -case 366: -case 367: -case 368: -case 369: -case 370: -case 371: -case 372: -case 373: -case 374: -case 375: -case 376: -case 377: -case 378: -case 379: -case 380: -case 381: -case 382: -case 383: -case 384: -case 385: -case 386: -case 387: -case 388: -case 389: -case 390: -case 391: -case 392: -case 393: -case 394: -case 395: -case 396: -case 397: -case 398: -case 399: -case 400: -case 401: -case 402: -case 403: -case 404: -case 405: -case 406: -case 407: -case 408: -case 409: -case 410: -case 411: -case 412: -case 413: -case 414: -case 415: -case 416: -case 417: -case 418: -case 419: -case 420: -case 421: -case 422: -case 423: -case 424: -case 425: -case 426: -case 427: -case 428: -case 429: -case 430: -case 431: -case 432: -case 433: -case 434: -case 435: -case 436: -case 437: -case 438: -case 439: -case 440: -case 441: -case 442: -case 443: -case 444: -case 445: -case 446: -case 447: -case 448: -case 449: -case 450: -case 451: -case 452: -case 453: -case 454: -case 455: -case 456: -case 457: -case 458: -case 459: -case 460: -case 461: -case 462: -case 463: -case 464: -case 465: -case 466: -case 467: -case 468: -case 469: -case 470: -case 471: -case 472: -case 473: -case 474: -case 475: -case 476: -case 477: -case 478: -case 479: -case 480: -case 481: -case 482: -case 483: -case 484: -case 485: -case 486: -case 487: -case 488: -case 489: -case 490: -case 491: -case 492: -case 493: -case 494: -case 495: -case 496: -case 497: -case 498: -case 499: -case 500: -case 501: -case 502: -case 503: -case 504: -case 505: -case 506: -case 507: -case 508: -case 509: -case 510: -case 511: -case 512: -case 513: -case 514: -case 515: -case 516: -case 517: -case 518: -case 519: -case 520: -case 521: -case 522: -case 523: -case 524: -case 525: -case 526: -case 527: -case 528: -case 529: -case 530: -case 531: -case 532: -case 533: -case 534: -case 535: -case 536: -case 537: -case 538: -case 539: -case 540: -case 541: -case 542: -case 543: -case 544: -case 545: -case 546: -case 547: -case 548: -case 549: -case 550: -case 551: -case 552: -case 553: -case 554: -case 555: -case 556: -case 557: -case 558: -case 559: -case 560: -case 561: -case 562: -case 563: -case 564: -case 565: -case 566: -case 567: -case 568: -case 569: -case 570: -case 571: -case 572: -case 573: -case 574: -case 575: -case 576: -case 577: -case 578: -case 579: -case 580: -case 581: -case 582: -case 583: -case 584: -case 585: -case 586: -case 587: -case 588: -case 589: -case 590: -case 591: -case 592: -case 593: -case 594: -case 595: -case 596: -case 597: -case 598: -case 599: -case 600: -case 601: -case 602: -case 603: -case 604: -case 605: -case 606: -case 607: -case 608: -case 609: -case 610: -case 611: -case 612: -case 613: -case 614: -case 615: -case 616: -case 617: -case 618: -case 619: -case 620: -case 621: -case 622: -case 623: -case 624: -case 625: -case 626: -case 627: -case 628: -case 629: -case 630: -case 631: -case 632: -case 633: -case 634: -case 635: -case 636: -case 637: -case 638: -case 639: -case 640: -case 641: -case 642: -case 643: -case 644: -case 645: -case 646: -case 647: -case 648: -case 649: -case 650: -case 651: -case 652: -case 653: -case 654: -case 655: -case 656: -case 657: -case 658: -case 659: -case 660: -case 661: -case 662: -case 663: -case 664: -case 665: -case 666: -case 667: -case 668: -case 669: -case 670: -case 671: -case 672: -case 673: -case 674: -case 675: -case 676: -case 677: -case 678: -case 679: -case 680: -case 681: -case 682: -case 683: -case 684: -case 685: -case 686: -case 687: -case 688: -case 689: -case 690: -case 691: -case 692: -case 693: -case 694: -case 695: -case 696: -case 697: -case 698: -case 699: -case 700: -case 701: -case 702: -case 703: -case 704: -case 705: -case 706: -case 707: -case 708: -case 709: -case 710: -case 711: -case 712: -case 713: -case 714: -case 715: -case 716: -case 717: -case 718: -case 719: -case 720: -case 721: -case 722: -case 723: -case 724: -case 725: -case 726: -case 727: -case 728: -case 729: -case 730: -case 731: -case 732: -case 733: -case 734: -case 735: -case 736: -case 737: -case 738: -case 739: -case 740: -case 741: -case 742: -case 743: -case 744: -case 745: -case 746: -case 747: -case 748: -case 749: -case 750: -case 751: -case 752: -case 753: -case 754: -case 755: -case 756: -case 757: -case 758: -case 759: -case 760: -case 761: -case 762: -case 763: -case 764: -case 765: -case 766: -case 767: -case 768: -case 769: -case 770: -case 771: -case 772: -case 773: -case 774: -case 775: -case 776: -case 777: -case 778: -case 779: -case 780: -case 781: -case 782: -case 783: -case 784: -case 785: -case 786: -case 787: -case 788: -case 789: -case 790: -case 791: -case 792: -case 793: -case 794: -case 795: -case 796: -case 797: -case 798: -case 799: -case 800: -case 801: -case 802: -case 803: -case 804: -case 805: -case 806: -case 807: -case 808: -case 809: -case 810: -case 811: -case 812: -case 813: -case 814: -case 815: -case 816: -case 817: -case 818: -case 819: -case 820: -case 821: -case 822: -case 823: -case 824: -case 825: -case 826: -case 827: -case 828: -case 829: -case 830: -case 831: -case 832: -case 833: -case 834: -case 835: -case 836: -case 837: -case 838: -case 839: -case 840: -case 841: -case 842: -case 843: -case 844: -case 845: -case 846: -case 847: -case 848: -case 849: -case 850: -case 851: -case 852: -case 853: -case 854: -case 855: -case 856: -case 857: -case 858: -case 859: -case 860: -case 861: -case 862: -case 863: -case 864: -case 865: -case 866: -case 867: -case 868: -case 869: -case 870: -case 871: -case 872: -case 873: -case 874: -case 875: -case 876: -case 877: -case 878: -case 879: -case 880: -case 881: -case 882: -case 883: -case 884: -case 885: -case 886: -case 887: -case 888: -case 889: -case 890: -case 891: -case 892: -case 893: -case 894: -case 895: -case 896: -case 897: -case 898: -case 899: -case 900: -case 901: -case 902: -case 903: -case 904: -case 905: -case 906: -case 907: -case 908: -case 909: -case 910: -case 911: -case 912: -case 913: -case 914: -case 915: -case 916: -case 917: -case 918: -case 919: -case 920: -case 921: -case 922: -case 923: -case 924: -case 925: -case 926: -case 927: -case 928: -case 929: -case 930: -case 931: -case 932: -case 933: -case 934: -case 935: -case 936: -case 937: -case 938: -case 939: -case 940: -case 941: -case 942: -case 943: -case 944: -case 945: -case 946: -case 947: -case 948: -case 949: -case 950: -case 951: -case 952: -case 953: -case 954: -case 955: -case 956: -case 957: -case 958: -case 959: -case 960: -case 961: -case 962: -case 963: -case 964: -case 965: -case 966: -case 967: -case 968: -case 969: -case 970: -case 971: -case 972: -case 973: -case 974: -case 975: -case 976: -case 977: -case 978: -case 979: -case 980: -case 981: -case 982: -case 983: -case 984: -case 985: -case 986: -case 987: -case 988: -case 989: -case 990: -case 991: -case 992: -case 993: -case 994: -case 995: -case 996: -case 997: -case 998: -case 999: -case 1000: -case 1001: -case 1002: -case 1003: -case 1004: -case 1005: -case 1006: -case 1007: -case 1008: -case 1009: -case 1010: -case 1011: -case 1012: -case 1013: -case 1014: -case 1015: -case 1016: -case 1017: -case 1018: -case 1019: -case 1020: -case 1021: -case 1022: -case 1023: -case 1024: -case 1025: -case 1026: -case 1027: -case 1028: -case 1029: -case 1030: -case 1031: -case 1032: -case 1033: -case 1034: -case 1035: -case 1036: -case 1037: -case 1038: -case 1039: -case 1040: -case 1041: -case 1042: -case 1043: -case 1044: -case 1045: -case 1046: -case 1047: -case 1048: -case 1049: -case 1050: -case 1051: -case 1052: -case 1053: -case 1054: -case 1055: -case 1056: -case 1057: -case 1058: -case 1059: -case 1060: -case 1061: -case 1062: -case 1063: -case 1064: -case 1065: -case 1066: -case 1067: -case 1068: -case 1069: -case 1070: -case 1071: -case 1072: -case 1073: -case 1074: -case 1075: -case 1076: -case 1077: -case 1078: -case 1079: -case 1080: -case 1081: -case 1082: -case 1083: -case 1084: -case 1085: -case 1086: -case 1087: -case 1088: -case 1089: -case 1090: -case 1091: -case 1092: -case 1093: -case 1094: -case 1095: -case 1096: -case 1097: -case 1098: -case 1099: -case 1100: -case 1101: -case 1102: -case 1103: -case 1104: -case 1105: -case 1106: -case 1107: -case 1108: -case 1109: -case 1110: -case 1111: -case 1112: -case 1113: -case 1114: -case 1115: -case 1116: -case 1117: -case 1118: -case 1119: -case 1120: -case 1121: -case 1122: -case 1123: -case 1124: -case 1125: -case 1126: -case 1127: -case 1128: -case 1129: -case 1130: -case 1131: -case 1132: -case 1133: -case 1134: -case 1135: -case 1136: -case 1137: -case 1138: -case 1139: -case 1140: -case 1141: -case 1142: -case 1143: -case 1144: -case 1145: -case 1146: -case 1147: -case 1148: -case 1149: -case 1150: -case 1151: -case 1152: -case 1153: -case 1154: -case 1155: -case 1156: -case 1157: -case 1158: -case 1159: -case 1160: -case 1161: -case 1162: -case 1163: -case 1164: -case 1165: -case 1166: -case 1167: -case 1168: -case 1169: -case 1170: -case 1171: -case 1172: -case 1173: -case 1174: -case 1175: -case 1176: -case 1177: -case 1178: -case 1179: -case 1180: -case 1181: -case 1182: -case 1183: -case 1184: -case 1185: -case 1186: -case 1187: -case 1188: -case 1189: -case 1190: -case 1191: -case 1192: -case 1193: -case 1194: -case 1195: -case 1196: -case 1197: -case 1198: -case 1199: -case 1200: -case 1201: -case 1202: -case 1203: -case 1204: -case 1205: -case 1206: -case 1207: -case 1208: -case 1209: -case 1210: -case 1211: -case 1212: -case 1213: -case 1214: -case 1215: -case 1216: -case 1217: -case 1218: -case 1219: -case 1220: -case 1221: -case 1222: -case 1223: -case 1224: -case 1225: -case 1226: -case 1227: -case 1228: -case 1229: -case 1230: -case 1231: -case 1232: -case 1233: -case 1234: -case 1235: -case 1236: -case 1237: -case 1238: -case 1239: -case 1240: -case 1241: -case 1242: -case 1243: -case 1244: -case 1245: -case 1246: -case 1247: -case 1248: -case 1249: -case 1250: -case 1251: -case 1252: -case 1253: -case 1254: -case 1255: -case 1256: -case 1257: -case 1258: -case 1259: -case 1260: -case 1261: -case 1262: -case 1263: -case 1264: -case 1265: -case 1266: -case 1267: -case 1268: -case 1269: -case 1270: -case 1271: -case 1272: -case 1273: -case 1274: -case 1275: -case 1276: -case 1277: -case 1278: -case 1279: -case 1280: -case 1281: -case 1282: -case 1283: -case 1284: -case 1285: -case 1286: -case 1287: -case 1288: -case 1289: -case 1290: -case 1291: -case 1292: -case 1293: -case 1294: -case 1295: -case 1296: -case 1297: -case 1298: -case 1299: -case 1300: -case 1301: -case 1302: -case 1303: -case 1304: -case 1305: -case 1306: -case 1307: -case 1308: -case 1309: -case 1310: -case 1311: -case 1312: -case 1313: -case 1314: -case 1315: -case 1316: -case 1317: -case 1318: -case 1319: -case 1320: -case 1321: -case 1322: -case 1323: -case 1324: -case 1325: -case 1326: -case 1327: -case 1328: -case 1329: -case 1330: -case 1331: -case 1332: -case 1333: -case 1334: -case 1335: -case 1336: -case 1337: -case 1338: -case 1339: -case 1340: -case 1341: -case 1342: -case 1343: -case 1344: -case 1345: -case 1346: -case 1347: -case 1348: -case 1349: -case 1350: -case 1351: -case 1352: -case 1353: -case 1354: -case 1355: -case 1356: -case 1357: -case 1358: -case 1359: -case 1360: -case 1361: -case 1362: -case 1363: -case 1364: -case 1365: -case 1366: -case 1367: -case 1368: -case 1369: -case 1370: -case 1371: -case 1372: -case 1373: -case 1374: -case 1375: -case 1376: -case 1377: -case 1378: -case 1379: -case 1380: -case 1381: -case 1382: -case 1383: -case 1384: -case 1385: -case 1386: -case 1387: -case 1388: -case 1389: -case 1390: -case 1391: -case 1392: -case 1393: -case 1394: -case 1395: -case 1396: -case 1397: -case 1398: -case 1399: -case 1400: -case 1401: -case 1402: -case 1403: -case 1404: -case 1405: -case 1406: -case 1407: -case 1408: -case 1409: -case 1410: -case 1411: -case 1412: -case 1413: -case 1414: -case 1415: -case 1416: -case 1417: -case 1418: -case 1419: -case 1420: -case 1421: -case 1422: -case 1423: -case 1424: -case 1425: -case 1426: -case 1427: -case 1428: -case 1429: -case 1430: -case 1431: -case 1432: -case 1433: -case 1434: -case 1435: -case 1436: -case 1437: -case 1438: -case 1439: -case 1440: -case 1441: -case 1442: -case 1443: -case 1444: -case 1445: -case 1446: -case 1447: -case 1448: -case 1449: -case 1450: -case 1451: -case 1452: -case 1453: -case 1454: -case 1455: -case 1456: -case 1457: -case 1458: -case 1459: -case 1460: -case 1461: -case 1462: -case 1463: -case 1464: -case 1465: -case 1466: -case 1467: -case 1468: -case 1469: -case 1470: -case 1471: -case 1472: -case 1473: -case 1474: -case 1475: -case 1476: -case 1477: -case 1478: -case 1479: -case 1480: -case 1481: -case 1482: -case 1483: -case 1484: -case 1485: -case 1486: -case 1487: -case 1488: -case 1489: -case 1490: -case 1491: -case 1492: -case 1493: -case 1494: -case 1495: -case 1496: -case 1497: -case 1498: -case 1499: -case 1500: -case 1501: -case 1502: -case 1503: -case 1504: -case 1505: -case 1506: -case 1507: -case 1508: -case 1509: -case 1510: -case 1511: -case 1512: -case 1513: -case 1514: -case 1515: -case 1516: -case 1517: -case 1518: -case 1519: -case 1520: -case 1521: -case 1522: -case 1523: -case 1524: -case 1525: -case 1526: -case 1527: -case 1528: -case 1529: -case 1530: -case 1531: -case 1532: -case 1533: -case 1534: -case 1535: -case 1536: -case 1537: -case 1538: -case 1539: -case 1540: -case 1541: -case 1542: -case 1543: -case 1544: -case 1545: -case 1546: -case 1547: -case 1548: -case 1549: -case 1550: -case 1551: -case 1552: -case 1553: -case 1554: -case 1555: -case 1556: -case 1557: -case 1558: -case 1559: -case 1560: -case 1561: -case 1562: -case 1563: -case 1564: -case 1565: -case 1566: -case 1567: -case 1568: -case 1569: -case 1570: -case 1571: -case 1572: -case 1573: -case 1574: -case 1575: -case 1576: -case 1577: -case 1578: -case 1579: -case 1580: -case 1581: -case 1582: -case 1583: -case 1584: -case 1585: -case 1586: -case 1587: -case 1588: -case 1589: -case 1590: -case 1591: -case 1592: -case 1593: -case 1594: -case 1595: -case 1596: -case 1597: -case 1598: -case 1599: -case 1600: -case 1601: -case 1602: -case 1603: -case 1604: -case 1605: -case 1606: -case 1607: -case 1608: -case 1609: -case 1610: -case 1611: -case 1612: -case 1613: -case 1614: -case 1615: -case 1616: -case 1617: -case 1618: -case 1619: -case 1620: -case 1621: -case 1622: -case 1623: -case 1624: -case 1625: -case 1626: -case 1627: -case 1628: -case 1629: -case 1630: -case 1631: -case 1632: -case 1633: -case 1634: -case 1635: -case 1636: -case 1637: -case 1638: -case 1639: -case 1640: -case 1641: -case 1642: -case 1643: -case 1644: -case 1645: -case 1646: -case 1647: -case 1648: -case 1649: -case 1650: -case 1651: -case 1652: -case 1653: -case 1654: -case 1655: -case 1656: -case 1657: -case 1658: -case 1659: -case 1660: -case 1661: -case 1662: -case 1663: -case 1664: -case 1665: -case 1666: -case 1667: -case 1668: -case 1669: -case 1670: -case 1671: -case 1672: -case 1673: -case 1674: -case 1675: -case 1676: -case 1677: -case 1678: -case 1679: -case 1680: -case 1681: -case 1682: -case 1683: -case 1684: -case 1685: -case 1686: -case 1687: -case 1688: -case 1689: -case 1690: -case 1691: -case 1692: -case 1693: -case 1694: -case 1695: -case 1696: -case 1697: -case 1698: -case 1699: -case 1700: -case 1701: -case 1702: -case 1703: -case 1704: -case 1705: -case 1706: -case 1707: -case 1708: -case 1709: -case 1710: -case 1711: -case 1712: -case 1713: -case 1714: -case 1715: -case 1716: -case 1717: -case 1718: -case 1719: -case 1720: -case 1721: -case 1722: -case 1723: -case 1724: -case 1725: -case 1726: -case 1727: -case 1728: -case 1729: -case 1730: -case 1731: -case 1732: -case 1733: -case 1734: -case 1735: -case 1736: -case 1737: -case 1738: -case 1739: -case 1740: -case 1741: -case 1742: -case 1743: -case 1744: -case 1745: -case 1746: -case 1747: -case 1748: -case 1749: -case 1750: -case 1751: -case 1752: -case 1753: -case 1754: -case 1755: -case 1756: -case 1757: -case 1758: -case 1759: -case 1760: -case 1761: -case 1762: -case 1763: -case 1764: -case 1765: -case 1766: -case 1767: -case 1768: -case 1769: -case 1770: -case 1771: -case 1772: -case 1773: -case 1774: -case 1775: -case 1776: -case 1777: -case 1778: -case 1779: -case 1780: -case 1781: -case 1782: -case 1783: -case 1784: -case 1785: -case 1786: -case 1787: -case 1788: -case 1789: -case 1790: -case 1791: -case 1792: -case 1793: -case 1794: -case 1795: -case 1796: -case 1797: -case 1798: -case 1799: -case 1800: -case 1801: -case 1802: -case 1803: -case 1804: -case 1805: -case 1806: -case 1807: -case 1808: -case 1809: -case 1810: -case 1811: -case 1812: -case 1813: -case 1814: -case 1815: -case 1816: -case 1817: -case 1818: -case 1819: -case 1820: -case 1821: -case 1822: -case 1823: -case 1824: -case 1825: -case 1826: -case 1827: -case 1828: -case 1829: -case 1830: -case 1831: -case 1832: -case 1833: -case 1834: -case 1835: -case 1836: -case 1837: -case 1838: -case 1839: -case 1840: -case 1841: -case 1842: -case 1843: -case 1844: -case 1845: -case 1846: -case 1847: -case 1848: -case 1849: -case 1850: -case 1851: -case 1852: -case 1853: -case 1854: -case 1855: -case 1856: -case 1857: -case 1858: -case 1859: -case 1860: -case 1861: -case 1862: -case 1863: -case 1864: -case 1865: -case 1866: -case 1867: -case 1868: -case 1869: -case 1870: -case 1871: -case 1872: -case 1873: -case 1874: -case 1875: -case 1876: -case 1877: -case 1878: -case 1879: -case 1880: -case 1881: -case 1882: -case 1883: -case 1884: -case 1885: -case 1886: -case 1887: -case 1888: -case 1889: -case 1890: -case 1891: -case 1892: -case 1893: -case 1894: -case 1895: -case 1896: -case 1897: -case 1898: -case 1899: -case 1900: -case 1901: -case 1902: -case 1903: -case 1904: -case 1905: -case 1906: -case 1907: -case 1908: -case 1909: -case 1910: -case 1911: -case 1912: -case 1913: -case 1914: -case 1915: -case 1916: -case 1917: -case 1918: -case 1919: -case 1920: -case 1921: -case 1922: -case 1923: -case 1924: -case 1925: -case 1926: -case 1927: -case 1928: -case 1929: -case 1930: -case 1931: -case 1932: -case 1933: -case 1934: -case 1935: -case 1936: -case 1937: -case 1938: -case 1939: -case 1940: -case 1941: -case 1942: -case 1943: -case 1944: -case 1945: -case 1946: -case 1947: -case 1948: -case 1949: -case 1950: -case 1951: -case 1952: -case 1953: -case 1954: -case 1955: -case 1956: -case 1957: -case 1958: -case 1959: -case 1960: -case 1961: -case 1962: -case 1963: -case 1964: -case 1965: -case 1966: -case 1967: -case 1968: -case 1969: -case 1970: -case 1971: -case 1972: -case 1973: -case 1974: -case 1975: -case 1976: -case 1977: -case 1978: -case 1979: -case 1980: -case 1981: -case 1982: -case 1983: -case 1984: -case 1985: -case 1986: -case 1987: -case 1988: -case 1989: -case 1990: -case 1991: -case 1992: -case 1993: -case 1994: -case 1995: -case 1996: -case 1997: -case 1998: -case 1999: -case 2000: -case 2001: -case 2002: -case 2003: -case 2004: -case 2005: -case 2006: -case 2007: -case 2008: -case 2009: -case 2010: -case 2011: -case 2012: -case 2013: -case 2014: -case 2015: -case 2016: -case 2017: -case 2018: -case 2019: -case 2020: -case 2021: -case 2022: -case 2023: -case 2024: -case 2025: -case 2026: -case 2027: -case 2028: -case 2029: -case 2030: -case 2031: -case 2032: -case 2033: -case 2034: -case 2035: -case 2036: -case 2037: -case 2038: -case 2039: -case 2040: -case 2041: -case 2042: -case 2043: -case 2044: -case 2045: -case 2046: -case 2047: -case 2048: -case 2049: -case 2050: -case 2051: -case 2052: -case 2053: -case 2054: -case 2055: -case 2056: -case 2057: -case 2058: -case 2059: -case 2060: -case 2061: -case 2062: -case 2063: -case 2064: -case 2065: -case 2066: -case 2067: -case 2068: -case 2069: -case 2070: -case 2071: -case 2072: -case 2073: -case 2074: -case 2075: -case 2076: -case 2077: -case 2078: -case 2079: -case 2080: -case 2081: -case 2082: -case 2083: -case 2084: -case 2085: -case 2086: -case 2087: -case 2088: -case 2089: -case 2090: -case 2091: -case 2092: -case 2093: -case 2094: -case 2095: -case 2096: -case 2097: -case 2098: -case 2099: -case 2100: -case 2101: -case 2102: -case 2103: -case 2104: -case 2105: -case 2106: -case 2107: -case 2108: -case 2109: -case 2110: -case 2111: -case 2112: -case 2113: -case 2114: -case 2115: -case 2116: -case 2117: -case 2118: -case 2119: -case 2120: -case 2121: -case 2122: -case 2123: -case 2124: -case 2125: -case 2126: -case 2127: -case 2128: -case 2129: -case 2130: -case 2131: -case 2132: -case 2133: -case 2134: -case 2135: -case 2136: -case 2137: -case 2138: -case 2139: -case 2140: -case 2141: -case 2142: -case 2143: -case 2144: -case 2145: -case 2146: -case 2147: -case 2148: -case 2149: -case 2150: -case 2151: -case 2152: -case 2153: -case 2154: -case 2155: -case 2156: -case 2157: -case 2158: -case 2159: -case 2160: -case 2161: -case 2162: -case 2163: -case 2164: -case 2165: -case 2166: -case 2167: -case 2168: -case 2169: -case 2170: -case 2171: -case 2172: -case 2173: -case 2174: -case 2175: -case 2176: -case 2177: -case 2178: -case 2179: -case 2180: -case 2181: -case 2182: -case 2183: -case 2184: -case 2185: -case 2186: -case 2187: -case 2188: -case 2189: -case 2190: -case 2191: -case 2192: -case 2193: -case 2194: -case 2195: -case 2196: -case 2197: -case 2198: -case 2199: -case 2200: -case 2201: -case 2202: -case 2203: -case 2204: -case 2205: -case 2206: -case 2207: -case 2208: -case 2209: -case 2210: -case 2211: -case 2212: -case 2213: -case 2214: -case 2215: -case 2216: -case 2217: -case 2218: -case 2219: -case 2220: -case 2221: -case 2222: -case 2223: -case 2224: -case 2225: -case 2226: -case 2227: -case 2228: -case 2229: -case 2230: -case 2231: -case 2232: -case 2233: -case 2234: -case 2235: -case 2236: -case 2237: -case 2238: -case 2239: -case 2240: -case 2241: -case 2242: -case 2243: -case 2244: -case 2245: -case 2246: -case 2247: -case 2248: -case 2249: -case 2250: -case 2251: -case 2252: -case 2253: -case 2254: -case 2255: -case 2256: -case 2257: -case 2258: -case 2259: -case 2260: -case 2261: -case 2262: -case 2263: -case 2264: -case 2265: -case 2266: -case 2267: -case 2268: -case 2269: -case 2270: -case 2271: -case 2272: -case 2273: -case 2274: -case 2275: -case 2276: -case 2277: -case 2278: -case 2279: -case 2280: -case 2281: -case 2282: -case 2283: -case 2284: -case 2285: -case 2286: -case 2287: -case 2288: -case 2289: -case 2290: -case 2291: -case 2292: -case 2293: -case 2294: -case 2295: -case 2296: -case 2297: -case 2298: -case 2299: -case 2300: -case 2301: -case 2302: -case 2303: -case 2304: -case 2305: -case 2306: -case 2307: -case 2308: -case 2309: -case 2310: -case 2311: -case 2312: -case 2313: -case 2314: -case 2315: -case 2316: -case 2317: -case 2318: -case 2319: -case 2320: -case 2321: -case 2322: -case 2323: -case 2324: -case 2325: -case 2326: -case 2327: -case 2328: -case 2329: -case 2330: -case 2331: -case 2332: -case 2333: -case 2334: -case 2335: -case 2336: -case 2337: -case 2338: -case 2339: -case 2340: -case 2341: -case 2342: -case 2343: -case 2344: -case 2345: -case 2346: -case 2347: -case 2348: -case 2349: -case 2350: -case 2351: -case 2352: -case 2353: -case 2354: -case 2355: -case 2356: -case 2357: -case 2358: -case 2359: -case 2360: -case 2361: -case 2362: -case 2363: -case 2364: -case 2365: -case 2366: -case 2367: -case 2368: -case 2369: -case 2370: -case 2371: -case 2372: -case 2373: -case 2374: -case 2375: -case 2376: -case 2377: -case 2378: -case 2379: -case 2380: -case 2381: -case 2382: -case 2383: -case 2384: -case 2385: -case 2386: -case 2387: -case 2388: -case 2389: -case 2390: -case 2391: -case 2392: -case 2393: -case 2394: -case 2395: -case 2396: -case 2397: -case 2398: -case 2399: -case 2400: -case 2401: -case 2402: -case 2403: -case 2404: -case 2405: -case 2406: -case 2407: -case 2408: -case 2409: -case 2410: -case 2411: -case 2412: -case 2413: -case 2414: -case 2415: -case 2416: -case 2417: -case 2418: -case 2419: -case 2420: -case 2421: -case 2422: -case 2423: -case 2424: -case 2425: -case 2426: -case 2427: -case 2428: -case 2429: -case 2430: -case 2431: -case 2432: -case 2433: -case 2434: -case 2435: -case 2436: -case 2437: -case 2438: -case 2439: -case 2440: -case 2441: -case 2442: -case 2443: -case 2444: -case 2445: -case 2446: -case 2447: -case 2448: -case 2449: -case 2450: -case 2451: -case 2452: -case 2453: -case 2454: -case 2455: -case 2456: -case 2457: -case 2458: -case 2459: -case 2460: -case 2461: -case 2462: -case 2463: -case 2464: -case 2465: -case 2466: -case 2467: -case 2468: -case 2469: -case 2470: -case 2471: -case 2472: -case 2473: -case 2474: -case 2475: -case 2476: -case 2477: -case 2478: -case 2479: -case 2480: -case 2481: -case 2482: -case 2483: -case 2484: -case 2485: -case 2486: -case 2487: -case 2488: -case 2489: -case 2490: -case 2491: -case 2492: -case 2493: -case 2494: -case 2495: -case 2496: -case 2497: -case 2498: -case 2499: -case 2500: -case 2501: -case 2502: -case 2503: -case 2504: -case 2505: -case 2506: -case 2507: -case 2508: -case 2509: -case 2510: -case 2511: -case 2512: -case 2513: -case 2514: -case 2515: -case 2516: -case 2517: -case 2518: -case 2519: -case 2520: -case 2521: -case 2522: -case 2523: -case 2524: -case 2525: -case 2526: -case 2527: -case 2528: -case 2529: -case 2530: -case 2531: -case 2532: -case 2533: -case 2534: -case 2535: -case 2536: -case 2537: -case 2538: -case 2539: -case 2540: -case 2541: -case 2542: -case 2543: -case 2544: -case 2545: -case 2546: -case 2547: -case 2548: -case 2549: -case 2550: -case 2551: -case 2552: -case 2553: -case 2554: -case 2555: -case 2556: -case 2557: -case 2558: -case 2559: -case 2560: -case 2561: -case 2562: -case 2563: -case 2564: -case 2565: -case 2566: -case 2567: -case 2568: -case 2569: -case 2570: -case 2571: -case 2572: -case 2573: -case 2574: -case 2575: -case 2576: -case 2577: -case 2578: -case 2579: -case 2580: -case 2581: -case 2582: -case 2583: -case 2584: -case 2585: -case 2586: -case 2587: -case 2588: -case 2589: -case 2590: -case 2591: -case 2592: -case 2593: -case 2594: -case 2595: -case 2596: -case 2597: -case 2598: -case 2599: -case 2600: -case 2601: -case 2602: -case 2603: -case 2604: -case 2605: -case 2606: -case 2607: -case 2608: -case 2609: -case 2610: -case 2611: -case 2612: -case 2613: -case 2614: -case 2615: -case 2616: -case 2617: -case 2618: -case 2619: -case 2620: -case 2621: -case 2622: -case 2623: -case 2624: -case 2625: -case 2626: -case 2627: -case 2628: -case 2629: -case 2630: -case 2631: -case 2632: -case 2633: -case 2634: -case 2635: -case 2636: -case 2637: -case 2638: -case 2639: -case 2640: -case 2641: -case 2642: -case 2643: -case 2644: -case 2645: -case 2646: -case 2647: -case 2648: -case 2649: -case 2650: -case 2651: -case 2652: -case 2653: -case 2654: -case 2655: -case 2656: -case 2657: -case 2658: -case 2659: -case 2660: -case 2661: -case 2662: -case 2663: -case 2664: -case 2665: -case 2666: -case 2667: -case 2668: -case 2669: -case 2670: -case 2671: -case 2672: -case 2673: -case 2674: -case 2675: -case 2676: -case 2677: -case 2678: -case 2679: -case 2680: -case 2681: -case 2682: -case 2683: -case 2684: -case 2685: -case 2686: -case 2687: -case 2688: -case 2689: -case 2690: -case 2691: -case 2692: -case 2693: -case 2694: -case 2695: -case 2696: -case 2697: -case 2698: -case 2699: -case 2700: -case 2701: -case 2702: -case 2703: -case 2704: -case 2705: -case 2706: -case 2707: -case 2708: -case 2709: -case 2710: -case 2711: -case 2712: -case 2713: -case 2714: -case 2715: -case 2716: -case 2717: -case 2718: -case 2719: -case 2720: -case 2721: -case 2722: -case 2723: -case 2724: -case 2725: -case 2726: -case 2727: -case 2728: -case 2729: -case 2730: -case 2731: -case 2732: -case 2733: -case 2734: -case 2735: -case 2736: -case 2737: -case 2738: -case 2739: -case 2740: -case 2741: -case 2742: -case 2743: -case 2744: -case 2745: -case 2746: -case 2747: -case 2748: -case 2749: -case 2750: -case 2751: -case 2752: -case 2753: -case 2754: -case 2755: -case 2756: -case 2757: -case 2758: -case 2759: -case 2760: -case 2761: -case 2762: -case 2763: -case 2764: -case 2765: -case 2766: -case 2767: -case 2768: -case 2769: -case 2770: -case 2771: -case 2772: -case 2773: -case 2774: -case 2775: -case 2776: -case 2777: -case 2778: -case 2779: -case 2780: -case 2781: -case 2782: -case 2783: -case 2784: -case 2785: -case 2786: -case 2787: -case 2788: -case 2789: -case 2790: -case 2791: -case 2792: -case 2793: -case 2794: -case 2795: -case 2796: -case 2797: -case 2798: -case 2799: -case 2800: -case 2801: -case 2802: -case 2803: -case 2804: -case 2805: -case 2806: -case 2807: -case 2808: -case 2809: -case 2810: -case 2811: -case 2812: -case 2813: -case 2814: -case 2815: -case 2816: -case 2817: -case 2818: -case 2819: -case 2820: -case 2821: -case 2822: -case 2823: -case 2824: -case 2825: -case 2826: -case 2827: -case 2828: -case 2829: -case 2830: -case 2831: -case 2832: -case 2833: -case 2834: -case 2835: -case 2836: -case 2837: -case 2838: -case 2839: -case 2840: -case 2841: -case 2842: -case 2843: -case 2844: -case 2845: -case 2846: -case 2847: -case 2848: -case 2849: -case 2850: -case 2851: -case 2852: -case 2853: -case 2854: -case 2855: -case 2856: -case 2857: -case 2858: -case 2859: -case 2860: -case 2861: -case 2862: -case 2863: -case 2864: -case 2865: -case 2866: -case 2867: -case 2868: -case 2869: -case 2870: -case 2871: -case 2872: -case 2873: -case 2874: -case 2875: -case 2876: -case 2877: -case 2878: -case 2879: -case 2880: -case 2881: -case 2882: -case 2883: -case 2884: -case 2885: -case 2886: -case 2887: -case 2888: -case 2889: -case 2890: -case 2891: -case 2892: -case 2893: -case 2894: -case 2895: -case 2896: -case 2897: -case 2898: -case 2899: -case 2900: -case 2901: -case 2902: -case 2903: -case 2904: -case 2905: -case 2906: -case 2907: -case 2908: -case 2909: -case 2910: -case 2911: -case 2912: -case 2913: -case 2914: -case 2915: -case 2916: -case 2917: -case 2918: -case 2919: -case 2920: -case 2921: -case 2922: -case 2923: -case 2924: -case 2925: -case 2926: -case 2927: -case 2928: -case 2929: -case 2930: -case 2931: -case 2932: -case 2933: -case 2934: -case 2935: -case 2936: -case 2937: -case 2938: -case 2939: -case 2940: -case 2941: -case 2942: -case 2943: -case 2944: -case 2945: -case 2946: -case 2947: -case 2948: -case 2949: -case 2950: -case 2951: -case 2952: -case 2953: -case 2954: -case 2955: -case 2956: -case 2957: -case 2958: -case 2959: -case 2960: -case 2961: -case 2962: -case 2963: -case 2964: -case 2965: -case 2966: -case 2967: -case 2968: -case 2969: -case 2970: -case 2971: -case 2972: -case 2973: -case 2974: -case 2975: -case 2976: -case 2977: -case 2978: -case 2979: -case 2980: -case 2981: -case 2982: -case 2983: -case 2984: -case 2985: -case 2986: -case 2987: -case 2988: -case 2989: -case 2990: -case 2991: -case 2992: -case 2993: -case 2994: -case 2995: -case 2996: -case 2997: -case 2998: -case 2999: -case 3000: -case 3001: -case 3002: -case 3003: -case 3004: -case 3005: -case 3006: -case 3007: -case 3008: -case 3009: -case 3010: -case 3011: -case 3012: -case 3013: -case 3014: -case 3015: -case 3016: -case 3017: -case 3018: -case 3019: -case 3020: -case 3021: -case 3022: -case 3023: -case 3024: -case 3025: -case 3026: -case 3027: -case 3028: -case 3029: -case 3030: -case 3031: -case 3032: -case 3033: -case 3034: -case 3035: -case 3036: -case 3037: -case 3038: -case 3039: -case 3040: -case 3041: -case 3042: -case 3043: -case 3044: -case 3045: -case 3046: -case 3047: -case 3048: -case 3049: -case 3050: -case 3051: -case 3052: -case 3053: -case 3054: -case 3055: -case 3056: -case 3057: -case 3058: -case 3059: -case 3060: -case 3061: -case 3062: -case 3063: -case 3064: -case 3065: -case 3066: -case 3067: -case 3068: -case 3069: -case 3070: -case 3071: -case 3072: -case 3073: -case 3074: -case 3075: -case 3076: -case 3077: -case 3078: -case 3079: -case 3080: -case 3081: -case 3082: -case 3083: -case 3084: -case 3085: -case 3086: -case 3087: -case 3088: -case 3089: -case 3090: -case 3091: -case 3092: -case 3093: -case 3094: -case 3095: -case 3096: -case 3097: -case 3098: -case 3099: -case 3100: -case 3101: -case 3102: -case 3103: -case 3104: -case 3105: -case 3106: -case 3107: -case 3108: -case 3109: -case 3110: -case 3111: -case 3112: -case 3113: -case 3114: -case 3115: -case 3116: -case 3117: -case 3118: -case 3119: -case 3120: -case 3121: -case 3122: -case 3123: -case 3124: -case 3125: -case 3126: -case 3127: -case 3128: -case 3129: -case 3130: -case 3131: -case 3132: -case 3133: -case 3134: -case 3135: -case 3136: -case 3137: -case 3138: -case 3139: -case 3140: -case 3141: -case 3142: -case 3143: -case 3144: -case 3145: -case 3146: -case 3147: -case 3148: -case 3149: -case 3150: -case 3151: -case 3152: -case 3153: -case 3154: -case 3155: -case 3156: -case 3157: -case 3158: -case 3159: -case 3160: -case 3161: -case 3162: -case 3163: -case 3164: -case 3165: -case 3166: -case 3167: -case 3168: -case 3169: -case 3170: -case 3171: -case 3172: -case 3173: -case 3174: -case 3175: -case 3176: -case 3177: -case 3178: -case 3179: -case 3180: -case 3181: -case 3182: -case 3183: -case 3184: -case 3185: -case 3186: -case 3187: -case 3188: -case 3189: -case 3190: -case 3191: -case 3192: -case 3193: -case 3194: -case 3195: -case 3196: -case 3197: -case 3198: -case 3199: -case 3200: -case 3201: -case 3202: -case 3203: -case 3204: -case 3205: -case 3206: -case 3207: -case 3208: -case 3209: -case 3210: -case 3211: -case 3212: -case 3213: -case 3214: -case 3215: -case 3216: -case 3217: -case 3218: -case 3219: -case 3220: -case 3221: -case 3222: -case 3223: -case 3224: -case 3225: -case 3226: -case 3227: -case 3228: -case 3229: -case 3230: -case 3231: -case 3232: -case 3233: -case 3234: -case 3235: -case 3236: -case 3237: -case 3238: -case 3239: -case 3240: -case 3241: -case 3242: -case 3243: -case 3244: -case 3245: -case 3246: -case 3247: -case 3248: -case 3249: -case 3250: -case 3251: -case 3252: -case 3253: -case 3254: -case 3255: -case 3256: -case 3257: -case 3258: -case 3259: -case 3260: -case 3261: -case 3262: -case 3263: -case 3264: -case 3265: -case 3266: -case 3267: -case 3268: -case 3269: -case 3270: -case 3271: -case 3272: -case 3273: -case 3274: -case 3275: -case 3276: -case 3277: -case 3278: -case 3279: -case 3280: -case 3281: -case 3282: -case 3283: -case 3284: -case 3285: -case 3286: -case 3287: -case 3288: -case 3289: -case 3290: -case 3291: -case 3292: -case 3293: -case 3294: -case 3295: -case 3296: -case 3297: -case 3298: -case 3299: -case 3300: -case 3301: -case 3302: -case 3303: -case 3304: -case 3305: -case 3306: -case 3307: -case 3308: -case 3309: -case 3310: -case 3311: -case 3312: -case 3313: -case 3314: -case 3315: -case 3316: -case 3317: -case 3318: -case 3319: -case 3320: -case 3321: -case 3322: -case 3323: -case 3324: -case 3325: -case 3326: -case 3327: -case 3328: -case 3329: -case 3330: -case 3331: -case 3332: -case 3333: -case 3334: -case 3335: -case 3336: -case 3337: -case 3338: -case 3339: -case 3340: -case 3341: -case 3342: -case 3343: -case 3344: -case 3345: -case 3346: -case 3347: -case 3348: -case 3349: -case 3350: -case 3351: -case 3352: -case 3353: -case 3354: -case 3355: -case 3356: -case 3357: -case 3358: -case 3359: -case 3360: -case 3361: -case 3362: -case 3363: -case 3364: -case 3365: -case 3366: -case 3367: -case 3368: -case 3369: -case 3370: -case 3371: -case 3372: -case 3373: -case 3374: -case 3375: -case 3376: -case 3377: -case 3378: -case 3379: -case 3380: -case 3381: -case 3382: -case 3383: -case 3384: -case 3385: -case 3386: -case 3387: -case 3388: -case 3389: -case 3390: -case 3391: -case 3392: -case 3393: -case 3394: -case 3395: -case 3396: -case 3397: -case 3398: -case 3399: -case 3400: -case 3401: -case 3402: -case 3403: -case 3404: -case 3405: -case 3406: -case 3407: -case 3408: -case 3409: -case 3410: -case 3411: -case 3412: -case 3413: -case 3414: -case 3415: -case 3416: -case 3417: -case 3418: -case 3419: -case 3420: -case 3421: -case 3422: -case 3423: -case 3424: -case 3425: -case 3426: -case 3427: -case 3428: -case 3429: -case 3430: -case 3431: -case 3432: -case 3433: -case 3434: -case 3435: -case 3436: -case 3437: -case 3438: -case 3439: -case 3440: -case 3441: -case 3442: -case 3443: -case 3444: -case 3445: -case 3446: -case 3447: -case 3448: -case 3449: -case 3450: -case 3451: -case 3452: -case 3453: -case 3454: -case 3455: -case 3456: -case 3457: -case 3458: -case 3459: -case 3460: -case 3461: -case 3462: -case 3463: -case 3464: -case 3465: -case 3466: -case 3467: -case 3468: -case 3469: -case 3470: -case 3471: -case 3472: -case 3473: -case 3474: -case 3475: -case 3476: -case 3477: -case 3478: -case 3479: -case 3480: -case 3481: -case 3482: -case 3483: -case 3484: -case 3485: -case 3486: -case 3487: -case 3488: -case 3489: -case 3490: -case 3491: -case 3492: -case 3493: -case 3494: -case 3495: -case 3496: -case 3497: -case 3498: -case 3499: -case 3500: -case 3501: -case 3502: -case 3503: -case 3504: -case 3505: -case 3506: -case 3507: -case 3508: -case 3509: -case 3510: -case 3511: -case 3512: -case 3513: -case 3514: -case 3515: -case 3516: -case 3517: -case 3518: -case 3519: -case 3520: -case 3521: -case 3522: -case 3523: -case 3524: -case 3525: -case 3526: -case 3527: -case 3528: -case 3529: -case 3530: -case 3531: -case 3532: -case 3533: -case 3534: -case 3535: -case 3536: -case 3537: -case 3538: -case 3539: -case 3540: -case 3541: -case 3542: -case 3543: -case 3544: -case 3545: -case 3546: -case 3547: -case 3548: -case 3549: -case 3550: -case 3551: -case 3552: -case 3553: -case 3554: -case 3555: -case 3556: -case 3557: -case 3558: -case 3559: -case 3560: -case 3561: -case 3562: -case 3563: -case 3564: -case 3565: -case 3566: -case 3567: -case 3568: -case 3569: -case 3570: -case 3571: -case 3572: -case 3573: -case 3574: -case 3575: -case 3576: -case 3577: -case 3578: -case 3579: -case 3580: -case 3581: -case 3582: -case 3583: -case 3584: -case 3585: -case 3586: -case 3587: -case 3588: -case 3589: -case 3590: -case 3591: -case 3592: -case 3593: -case 3594: -case 3595: -case 3596: -case 3597: -case 3598: -case 3599: -case 3600: -case 3601: -case 3602: -case 3603: -case 3604: -case 3605: -case 3606: -case 3607: -case 3608: -case 3609: -case 3610: -case 3611: -case 3612: -case 3613: -case 3614: -case 3615: -case 3616: -case 3617: -case 3618: -case 3619: -case 3620: -case 3621: -case 3622: -case 3623: -case 3624: -case 3625: -case 3626: -case 3627: -case 3628: -case 3629: -case 3630: -case 3631: -case 3632: -case 3633: -case 3634: -case 3635: -case 3636: -case 3637: -case 3638: -case 3639: -case 3640: -case 3641: -case 3642: -case 3643: -case 3644: -case 3645: -case 3646: -case 3647: -case 3648: -case 3649: -case 3650: -case 3651: -case 3652: -case 3653: -case 3654: -case 3655: -case 3656: -case 3657: -case 3658: -case 3659: -case 3660: -case 3661: -case 3662: -case 3663: -case 3664: -case 3665: -case 3666: -case 3667: -case 3668: -case 3669: -case 3670: -case 3671: -case 3672: -case 3673: -case 3674: -case 3675: -case 3676: -case 3677: -case 3678: -case 3679: -case 3680: -case 3681: -case 3682: -case 3683: -case 3684: -case 3685: -case 3686: -case 3687: -case 3688: -case 3689: -case 3690: -case 3691: -case 3692: -case 3693: -case 3694: -case 3695: -case 3696: -case 3697: -case 3698: -case 3699: -case 3700: -case 3701: -case 3702: -case 3703: -case 3704: -case 3705: -case 3706: -case 3707: -case 3708: -case 3709: -case 3710: -case 3711: -case 3712: -case 3713: -case 3714: -case 3715: -case 3716: -case 3717: -case 3718: -case 3719: -case 3720: -case 3721: -case 3722: -case 3723: -case 3724: -case 3725: -case 3726: -case 3727: -case 3728: -case 3729: -case 3730: -case 3731: -case 3732: -case 3733: -case 3734: -case 3735: -case 3736: -case 3737: -case 3738: -case 3739: -case 3740: -case 3741: -case 3742: -case 3743: -case 3744: -case 3745: -case 3746: -case 3747: -case 3748: -case 3749: -case 3750: -case 3751: -case 3752: -case 3753: -case 3754: -case 3755: -case 3756: -case 3757: -case 3758: -case 3759: -case 3760: -case 3761: -case 3762: -case 3763: -case 3764: -case 3765: -case 3766: -case 3767: -case 3768: -case 3769: -case 3770: -case 3771: -case 3772: -case 3773: -case 3774: -case 3775: -case 3776: -case 3777: -case 3778: -case 3779: -case 3780: -case 3781: -case 3782: -case 3783: -case 3784: -case 3785: -case 3786: -case 3787: -case 3788: -case 3789: -case 3790: -case 3791: -case 3792: -case 3793: -case 3794: -case 3795: -case 3796: -case 3797: -case 3798: -case 3799: -case 3800: -case 3801: -case 3802: -case 3803: -case 3804: -case 3805: -case 3806: -case 3807: -case 3808: -case 3809: -case 3810: -case 3811: -case 3812: -case 3813: -case 3814: -case 3815: -case 3816: -case 3817: -case 3818: -case 3819: -case 3820: -case 3821: -case 3822: -case 3823: -case 3824: -case 3825: -case 3826: -case 3827: -case 3828: -case 3829: -case 3830: -case 3831: -case 3832: -case 3833: -case 3834: -case 3835: -case 3836: -case 3837: -case 3838: -case 3839: -case 3840: -case 3841: -case 3842: -case 3843: -case 3844: -case 3845: -case 3846: -case 3847: -case 3848: -case 3849: -case 3850: -case 3851: -case 3852: -case 3853: -case 3854: -case 3855: -case 3856: -case 3857: -case 3858: -case 3859: -case 3860: -case 3861: -case 3862: -case 3863: -case 3864: -case 3865: -case 3866: -case 3867: -case 3868: -case 3869: -case 3870: -case 3871: -case 3872: -case 3873: -case 3874: -case 3875: -case 3876: -case 3877: -case 3878: -case 3879: -case 3880: -case 3881: -case 3882: -case 3883: -case 3884: -case 3885: -case 3886: -case 3887: -case 3888: -case 3889: -case 3890: -case 3891: -case 3892: -case 3893: -case 3894: -case 3895: -case 3896: -case 3897: -case 3898: -case 3899: -case 3900: -case 3901: -case 3902: -case 3903: -case 3904: -case 3905: -case 3906: -case 3907: -case 3908: -case 3909: -case 3910: -case 3911: -case 3912: -case 3913: -case 3914: -case 3915: -case 3916: -case 3917: -case 3918: -case 3919: -case 3920: -case 3921: -case 3922: -case 3923: -case 3924: -case 3925: -case 3926: -case 3927: -case 3928: -case 3929: -case 3930: -case 3931: -case 3932: -case 3933: -case 3934: -case 3935: -case 3936: -case 3937: -case 3938: -case 3939: -case 3940: -case 3941: -case 3942: -case 3943: -case 3944: -case 3945: -case 3946: -case 3947: -case 3948: -case 3949: -case 3950: -case 3951: -case 3952: -case 3953: -case 3954: -case 3955: -case 3956: -case 3957: -case 3958: -case 3959: -case 3960: -case 3961: -case 3962: -case 3963: -case 3964: -case 3965: -case 3966: -case 3967: -case 3968: -case 3969: -case 3970: -case 3971: -case 3972: -case 3973: -case 3974: -case 3975: -case 3976: -case 3977: -case 3978: -case 3979: -case 3980: -case 3981: -case 3982: -case 3983: -case 3984: -case 3985: -case 3986: -case 3987: -case 3988: -case 3989: -case 3990: -case 3991: -case 3992: -case 3993: -case 3994: -case 3995: -case 3996: -case 3997: -case 3998: -case 3999: -case 4000: -case 4001: -case 4002: -case 4003: -case 4004: -case 4005: -case 4006: -case 4007: -case 4008: -case 4009: -case 4010: -case 4011: -case 4012: -case 4013: -case 4014: -case 4015: -case 4016: -case 4017: -case 4018: -case 4019: -case 4020: -case 4021: -case 4022: -case 4023: -case 4024: -case 4025: -case 4026: -case 4027: -case 4028: -case 4029: -case 4030: -case 4031: -case 4032: -case 4033: -case 4034: -case 4035: -case 4036: -case 4037: -case 4038: -case 4039: -case 4040: -case 4041: -case 4042: -case 4043: -case 4044: -case 4045: -case 4046: -case 4047: -case 4048: -case 4049: -case 4050: -case 4051: -case 4052: -case 4053: -case 4054: -case 4055: -case 4056: -case 4057: -case 4058: -case 4059: -case 4060: -case 4061: -case 4062: -case 4063: -case 4064: -case 4065: -case 4066: -case 4067: -case 4068: -case 4069: -case 4070: -case 4071: -case 4072: -case 4073: -case 4074: -case 4075: -case 4076: -case 4077: -case 4078: -case 4079: -case 4080: -case 4081: -case 4082: -case 4083: -case 4084: -case 4085: -case 4086: -case 4087: -case 4088: -case 4089: -case 4090: -case 4091: -case 4092: -case 4093: -case 4094: -case 4095: -case 4096: -case 4097: -case 4098: -case 4099: -case 4100: -case 4101: -case 4102: -case 4103: -case 4104: -case 4105: -case 4106: -case 4107: -case 4108: -case 4109: -case 4110: -case 4111: -case 4112: -case 4113: -case 4114: -case 4115: -case 4116: -case 4117: -case 4118: -case 4119: -case 4120: -case 4121: -case 4122: -case 4123: -case 4124: -case 4125: -case 4126: -case 4127: -case 4128: -case 4129: -case 4130: -case 4131: -case 4132: -case 4133: -case 4134: -case 4135: -case 4136: -case 4137: -case 4138: -case 4139: -case 4140: -case 4141: -case 4142: -case 4143: -case 4144: -case 4145: -case 4146: -case 4147: -case 4148: -case 4149: -case 4150: -case 4151: -case 4152: -case 4153: -case 4154: -case 4155: -case 4156: -case 4157: -case 4158: -case 4159: -case 4160: -case 4161: -case 4162: -case 4163: -case 4164: -case 4165: -case 4166: -case 4167: -case 4168: -case 4169: -case 4170: -case 4171: -case 4172: -case 4173: -case 4174: -case 4175: -case 4176: -case 4177: -case 4178: -case 4179: -case 4180: -case 4181: -case 4182: -case 4183: -case 4184: -case 4185: -case 4186: -case 4187: -case 4188: -case 4189: -case 4190: -case 4191: -case 4192: -case 4193: -case 4194: -case 4195: -case 4196: -case 4197: -case 4198: -case 4199: -case 4200: -case 4201: -case 4202: -case 4203: -case 4204: -case 4205: -case 4206: -case 4207: -case 4208: -case 4209: -case 4210: -case 4211: -case 4212: -case 4213: -case 4214: -case 4215: -case 4216: -case 4217: -case 4218: -case 4219: -case 4220: -case 4221: -case 4222: -case 4223: -case 4224: -case 4225: -case 4226: -case 4227: -case 4228: -case 4229: -case 4230: -case 4231: -case 4232: -case 4233: -case 4234: -case 4235: -case 4236: -case 4237: -case 4238: -case 4239: -case 4240: -case 4241: -case 4242: -case 4243: -case 4244: -case 4245: -case 4246: -case 4247: -case 4248: -case 4249: -case 4250: -case 4251: -case 4252: -case 4253: -case 4254: -case 4255: -case 4256: -case 4257: -case 4258: -case 4259: -case 4260: -case 4261: -case 4262: -case 4263: -case 4264: -case 4265: -case 4266: -case 4267: -case 4268: -case 4269: -case 4270: -case 4271: -case 4272: -case 4273: -case 4274: -case 4275: -case 4276: -case 4277: -case 4278: -case 4279: -case 4280: -case 4281: -case 4282: -case 4283: -case 4284: -case 4285: -case 4286: -case 4287: -case 4288: -case 4289: -case 4290: -case 4291: -case 4292: -case 4293: -case 4294: -case 4295: -case 4296: -case 4297: -case 4298: -case 4299: -case 4300: -case 4301: -case 4302: -case 4303: -case 4304: -case 4305: -case 4306: -case 4307: -case 4308: -case 4309: -case 4310: -case 4311: -case 4312: -case 4313: -case 4314: -case 4315: -case 4316: -case 4317: -case 4318: -case 4319: -case 4320: -case 4321: -case 4322: -case 4323: -case 4324: -case 4325: -case 4326: -case 4327: -case 4328: -case 4329: -case 4330: -case 4331: -case 4332: -case 4333: -case 4334: -case 4335: -case 4336: -case 4337: -case 4338: -case 4339: -case 4340: -case 4341: -case 4342: -case 4343: -case 4344: -case 4345: -case 4346: -case 4347: -case 4348: -case 4349: -case 4350: -case 4351: -case 4352: -case 4353: -case 4354: -case 4355: -case 4356: -case 4357: -case 4358: -case 4359: -case 4360: -case 4361: -case 4362: -case 4363: -case 4364: -case 4365: -case 4366: -case 4367: -case 4368: -case 4369: -case 4370: -case 4371: -case 4372: -case 4373: -case 4374: -case 4375: -case 4376: -case 4377: -case 4378: -case 4379: -case 4380: -case 4381: -case 4382: -case 4383: -case 4384: -case 4385: -case 4386: -case 4387: -case 4388: -case 4389: -case 4390: -case 4391: -case 4392: -case 4393: -case 4394: -case 4395: -case 4396: -case 4397: -case 4398: -case 4399: -case 4400: -case 4401: -case 4402: -case 4403: -case 4404: -case 4405: -case 4406: -case 4407: -case 4408: -case 4409: -case 4410: -case 4411: -case 4412: -case 4413: -case 4414: -case 4415: -case 4416: -case 4417: -case 4418: -case 4419: -case 4420: -case 4421: -case 4422: -case 4423: -case 4424: -case 4425: -case 4426: -case 4427: -case 4428: -case 4429: -case 4430: -case 4431: -case 4432: -case 4433: -case 4434: -case 4435: -case 4436: -case 4437: -case 4438: -case 4439: -case 4440: -case 4441: -case 4442: -case 4443: -case 4444: -case 4445: -case 4446: -case 4447: -case 4448: -case 4449: -case 4450: -case 4451: -case 4452: -case 4453: -case 4454: -case 4455: -case 4456: -case 4457: -case 4458: -case 4459: -case 4460: -case 4461: -case 4462: -case 4463: -case 4464: -case 4465: -case 4466: -case 4467: -case 4468: -case 4469: -case 4470: -case 4471: -case 4472: -case 4473: -case 4474: -case 4475: -case 4476: -case 4477: -case 4478: -case 4479: -case 4480: -case 4481: -case 4482: -case 4483: -case 4484: -case 4485: -case 4486: -case 4487: -case 4488: -case 4489: -case 4490: -case 4491: -case 4492: -case 4493: -case 4494: -case 4495: -case 4496: -case 4497: -case 4498: -case 4499: -case 4500: -case 4501: -case 4502: -case 4503: -case 4504: -case 4505: -case 4506: -case 4507: -case 4508: -case 4509: -case 4510: -case 4511: -case 4512: -case 4513: -case 4514: -case 4515: -case 4516: -case 4517: -case 4518: -case 4519: -case 4520: -case 4521: -case 4522: -case 4523: -case 4524: -case 4525: -case 4526: -case 4527: -case 4528: -case 4529: -case 4530: -case 4531: -case 4532: -case 4533: -case 4534: -case 4535: -case 4536: -case 4537: -case 4538: -case 4539: -case 4540: -case 4541: -case 4542: -case 4543: -case 4544: -case 4545: -case 4546: -case 4547: -case 4548: -case 4549: -case 4550: -case 4551: -case 4552: -case 4553: -case 4554: -case 4555: -case 4556: -case 4557: -case 4558: -case 4559: -case 4560: -case 4561: -case 4562: -case 4563: -case 4564: -case 4565: -case 4566: -case 4567: -case 4568: -case 4569: -case 4570: -case 4571: -case 4572: -case 4573: -case 4574: -case 4575: -case 4576: -case 4577: -case 4578: -case 4579: -case 4580: -case 4581: -case 4582: -case 4583: -case 4584: -case 4585: -case 4586: -case 4587: -case 4588: -case 4589: -case 4590: -case 4591: -case 4592: -case 4593: -case 4594: -case 4595: -case 4596: -case 4597: -case 4598: -case 4599: -case 4600: -case 4601: -case 4602: -case 4603: -case 4604: -case 4605: -case 4606: -case 4607: -case 4608: -case 4609: -case 4610: -case 4611: -case 4612: -case 4613: -case 4614: -case 4615: -case 4616: -case 4617: -case 4618: -case 4619: -case 4620: -case 4621: -case 4622: -case 4623: -case 4624: -case 4625: -case 4626: -case 4627: -case 4628: -case 4629: -case 4630: -case 4631: -case 4632: -case 4633: -case 4634: -case 4635: -case 4636: -case 4637: -case 4638: -case 4639: -case 4640: -case 4641: -case 4642: -case 4643: -case 4644: -case 4645: -case 4646: -case 4647: -case 4648: -case 4649: -case 4650: -case 4651: -case 4652: -case 4653: -case 4654: -case 4655: -case 4656: -case 4657: -case 4658: -case 4659: -case 4660: -case 4661: -case 4662: -case 4663: -case 4664: -case 4665: -case 4666: -case 4667: -case 4668: -case 4669: -case 4670: -case 4671: -case 4672: -case 4673: -case 4674: -case 4675: -case 4676: -case 4677: -case 4678: -case 4679: -case 4680: -case 4681: -case 4682: -case 4683: -case 4684: -case 4685: -case 4686: -case 4687: -case 4688: -case 4689: -case 4690: -case 4691: -case 4692: -case 4693: -case 4694: -case 4695: -case 4696: -case 4697: -case 4698: -case 4699: -case 4700: -case 4701: -case 4702: -case 4703: -case 4704: -case 4705: -case 4706: -case 4707: -case 4708: -case 4709: -case 4710: -case 4711: -case 4712: -case 4713: -case 4714: -case 4715: -case 4716: -case 4717: -case 4718: -case 4719: -case 4720: -case 4721: -case 4722: -case 4723: -case 4724: -case 4725: -case 4726: -case 4727: -case 4728: -case 4729: -case 4730: -case 4731: -case 4732: -case 4733: -case 4734: -case 4735: -case 4736: -case 4737: -case 4738: -case 4739: -case 4740: -case 4741: -case 4742: -case 4743: -case 4744: -case 4745: -case 4746: -case 4747: -case 4748: -case 4749: -case 4750: -case 4751: -case 4752: -case 4753: -case 4754: -case 4755: -case 4756: -case 4757: -case 4758: -case 4759: -case 4760: -case 4761: -case 4762: -case 4763: -case 4764: -case 4765: -case 4766: -case 4767: -case 4768: -case 4769: -case 4770: -case 4771: -case 4772: -case 4773: -case 4774: -case 4775: -case 4776: -case 4777: -case 4778: -case 4779: -case 4780: -case 4781: -case 4782: -case 4783: -case 4784: -case 4785: -case 4786: -case 4787: -case 4788: -case 4789: -case 4790: -case 4791: -case 4792: -case 4793: -case 4794: -case 4795: -case 4796: -case 4797: -case 4798: -case 4799: -case 4800: -case 4801: -case 4802: -case 4803: -case 4804: -case 4805: -case 4806: -case 4807: -case 4808: -case 4809: -case 4810: -case 4811: -case 4812: -case 4813: -case 4814: -case 4815: -case 4816: -case 4817: -case 4818: -case 4819: -case 4820: -case 4821: -case 4822: -case 4823: -case 4824: -case 4825: -case 4826: -case 4827: -case 4828: -case 4829: -case 4830: -case 4831: -case 4832: -case 4833: -case 4834: -case 4835: -case 4836: -case 4837: -case 4838: -case 4839: -case 4840: -case 4841: -case 4842: -case 4843: -case 4844: -case 4845: -case 4846: -case 4847: -case 4848: -case 4849: -case 4850: -case 4851: -case 4852: -case 4853: -case 4854: -case 4855: -case 4856: -case 4857: -case 4858: -case 4859: -case 4860: -case 4861: -case 4862: -case 4863: -case 4864: -case 4865: -case 4866: -case 4867: -case 4868: -case 4869: -case 4870: -case 4871: -case 4872: -case 4873: -case 4874: -case 4875: -case 4876: -case 4877: -case 4878: -case 4879: -case 4880: -case 4881: -case 4882: -case 4883: -case 4884: -case 4885: -case 4886: -case 4887: -case 4888: -case 4889: -case 4890: -case 4891: -case 4892: -case 4893: -case 4894: -case 4895: -case 4896: -case 4897: -case 4898: -case 4899: -case 4900: -case 4901: -case 4902: -case 4903: -case 4904: -case 4905: -case 4906: -case 4907: -case 4908: -case 4909: -case 4910: -case 4911: -case 4912: -case 4913: -case 4914: -case 4915: -case 4916: -case 4917: -case 4918: -case 4919: -case 4920: -case 4921: -case 4922: -case 4923: -case 4924: -case 4925: -case 4926: -case 4927: -case 4928: -case 4929: -case 4930: -case 4931: -case 4932: -case 4933: -case 4934: -case 4935: -case 4936: -case 4937: -case 4938: -case 4939: -case 4940: -case 4941: -case 4942: -case 4943: -case 4944: -case 4945: -case 4946: -case 4947: -case 4948: -case 4949: -case 4950: -case 4951: -case 4952: -case 4953: -case 4954: -case 4955: -case 4956: -case 4957: -case 4958: -case 4959: -case 4960: -case 4961: -case 4962: -case 4963: -case 4964: -case 4965: -case 4966: -case 4967: -case 4968: -case 4969: -case 4970: -case 4971: -case 4972: -case 4973: -case 4974: -case 4975: -case 4976: -case 4977: -case 4978: -case 4979: -case 4980: -case 4981: -case 4982: -case 4983: -case 4984: -case 4985: -case 4986: -case 4987: -case 4988: -case 4989: -case 4990: -case 4991: -case 4992: -case 4993: -case 4994: -case 4995: -case 4996: -case 4997: -case 4998: -case 4999: -case 5000: -case 5001: -case 5002: -case 5003: -case 5004: -case 5005: -case 5006: -case 5007: -case 5008: -case 5009: -case 5010: -case 5011: -case 5012: -case 5013: -case 5014: -case 5015: -case 5016: -case 5017: -case 5018: -case 5019: -case 5020: -case 5021: -case 5022: -case 5023: -case 5024: -case 5025: -case 5026: -case 5027: -case 5028: -case 5029: -case 5030: -case 5031: -case 5032: -case 5033: -case 5034: -case 5035: -case 5036: -case 5037: -case 5038: -case 5039: -case 5040: -case 5041: -case 5042: -case 5043: -case 5044: -case 5045: -case 5046: -case 5047: -case 5048: -case 5049: -case 5050: -case 5051: -case 5052: -case 5053: -case 5054: -case 5055: -case 5056: -case 5057: -case 5058: -case 5059: -case 5060: -case 5061: -case 5062: -case 5063: -case 5064: -case 5065: -case 5066: -case 5067: -case 5068: -case 5069: -case 5070: -case 5071: -case 5072: -case 5073: -case 5074: -case 5075: -case 5076: -case 5077: -case 5078: -case 5079: -case 5080: -case 5081: -case 5082: -case 5083: -case 5084: -case 5085: -case 5086: -case 5087: -case 5088: -case 5089: -case 5090: -case 5091: -case 5092: -case 5093: -case 5094: -case 5095: -case 5096: -case 5097: -case 5098: -case 5099: -case 5100: -case 5101: -case 5102: -case 5103: -case 5104: -case 5105: -case 5106: -case 5107: -case 5108: -case 5109: -case 5110: -case 5111: -case 5112: -case 5113: -case 5114: -case 5115: -case 5116: -case 5117: -case 5118: -case 5119: -case 5120: -case 5121: -case 5122: -case 5123: -case 5124: -case 5125: -case 5126: -case 5127: -case 5128: -case 5129: -case 5130: -case 5131: -case 5132: -case 5133: -case 5134: -case 5135: -case 5136: -case 5137: -case 5138: -case 5139: -case 5140: -case 5141: -case 5142: -case 5143: -case 5144: -case 5145: -case 5146: -case 5147: -case 5148: -case 5149: -case 5150: -case 5151: -case 5152: -case 5153: -case 5154: -case 5155: -case 5156: -case 5157: -case 5158: -case 5159: -case 5160: -case 5161: -case 5162: -case 5163: -case 5164: -case 5165: -case 5166: -case 5167: -case 5168: -case 5169: -case 5170: -case 5171: -case 5172: -case 5173: -case 5174: -case 5175: -case 5176: -case 5177: -case 5178: -case 5179: -case 5180: -case 5181: -case 5182: -case 5183: -case 5184: -case 5185: -case 5186: -case 5187: -case 5188: -case 5189: -case 5190: -case 5191: -case 5192: -case 5193: -case 5194: -case 5195: -case 5196: -case 5197: -case 5198: -case 5199: -case 5200: -case 5201: -case 5202: -case 5203: -case 5204: -case 5205: -case 5206: -case 5207: -case 5208: -case 5209: -case 5210: -case 5211: -case 5212: -case 5213: -case 5214: -case 5215: -case 5216: -case 5217: -case 5218: -case 5219: -case 5220: -case 5221: -case 5222: -case 5223: -case 5224: -case 5225: -case 5226: -case 5227: -case 5228: -case 5229: -case 5230: -case 5231: -case 5232: -case 5233: -case 5234: -case 5235: -case 5236: -case 5237: -case 5238: -case 5239: -case 5240: -case 5241: -case 5242: -case 5243: -case 5244: -case 5245: -case 5246: -case 5247: -case 5248: -case 5249: -case 5250: -case 5251: -case 5252: -case 5253: -case 5254: -case 5255: -case 5256: -case 5257: -case 5258: -case 5259: -case 5260: -case 5261: -case 5262: -case 5263: -case 5264: -case 5265: -case 5266: -case 5267: -case 5268: -case 5269: -case 5270: -case 5271: -case 5272: -case 5273: -case 5274: -case 5275: -case 5276: -case 5277: -case 5278: -case 5279: -case 5280: -case 5281: -case 5282: -case 5283: -case 5284: -case 5285: -case 5286: -case 5287: -case 5288: -case 5289: -case 5290: -case 5291: -case 5292: -case 5293: -case 5294: -case 5295: -case 5296: -case 5297: -case 5298: -case 5299: -case 5300: -case 5301: -case 5302: -case 5303: -case 5304: -case 5305: -case 5306: -case 5307: -case 5308: -case 5309: -case 5310: -case 5311: -case 5312: -case 5313: -case 5314: -case 5315: -case 5316: -case 5317: -case 5318: -case 5319: -case 5320: -case 5321: -case 5322: -case 5323: -case 5324: -case 5325: -case 5326: -case 5327: -case 5328: -case 5329: -case 5330: -case 5331: -case 5332: -case 5333: -case 5334: -case 5335: -case 5336: -case 5337: -case 5338: -case 5339: -case 5340: -case 5341: -case 5342: -case 5343: -case 5344: -case 5345: -case 5346: -case 5347: -case 5348: -case 5349: -case 5350: -case 5351: -case 5352: -case 5353: -case 5354: -case 5355: -case 5356: -case 5357: -case 5358: -case 5359: -case 5360: -case 5361: -case 5362: -case 5363: -case 5364: -case 5365: -case 5366: -case 5367: -case 5368: -case 5369: -case 5370: -case 5371: -case 5372: -case 5373: -case 5374: -case 5375: -case 5376: -case 5377: -case 5378: -case 5379: -case 5380: -case 5381: -case 5382: -case 5383: -case 5384: -case 5385: -case 5386: -case 5387: -case 5388: -case 5389: -case 5390: -case 5391: -case 5392: -case 5393: -case 5394: -case 5395: -case 5396: -case 5397: -case 5398: -case 5399: -case 5400: -case 5401: -case 5402: -case 5403: -case 5404: -case 5405: -case 5406: -case 5407: -case 5408: -case 5409: -case 5410: -case 5411: -case 5412: -case 5413: -case 5414: -case 5415: -case 5416: -case 5417: -case 5418: -case 5419: -case 5420: -case 5421: -case 5422: -case 5423: -case 5424: -case 5425: -case 5426: -case 5427: -case 5428: -case 5429: -case 5430: -case 5431: -case 5432: -case 5433: -case 5434: -case 5435: -case 5436: -case 5437: -case 5438: -case 5439: -case 5440: -case 5441: -case 5442: -case 5443: -case 5444: -case 5445: -case 5446: -case 5447: -case 5448: -case 5449: -case 5450: -case 5451: -case 5452: -case 5453: -case 5454: -case 5455: -case 5456: -case 5457: -case 5458: -case 5459: -case 5460: -case 5461: -case 5462: -case 5463: -case 5464: -case 5465: -case 5466: -case 5467: -case 5468: -case 5469: -case 5470: -case 5471: -case 5472: -case 5473: -case 5474: -case 5475: -case 5476: -case 5477: -case 5478: -case 5479: -case 5480: -case 5481: -case 5482: -case 5483: -case 5484: -case 5485: -case 5486: -case 5487: -case 5488: -case 5489: -case 5490: -case 5491: -case 5492: -case 5493: -case 5494: -case 5495: -case 5496: -case 5497: -case 5498: -case 5499: -case 5500: -case 5501: -case 5502: -case 5503: -case 5504: -case 5505: -case 5506: -case 5507: -case 5508: -case 5509: -case 5510: -case 5511: -case 5512: -case 5513: -case 5514: -case 5515: -case 5516: -case 5517: -case 5518: -case 5519: -case 5520: -case 5521: -case 5522: -case 5523: -case 5524: -case 5525: -case 5526: -case 5527: -case 5528: -case 5529: -case 5530: -case 5531: -case 5532: -case 5533: -case 5534: -case 5535: -case 5536: -case 5537: -case 5538: -case 5539: -case 5540: -case 5541: -case 5542: -case 5543: -case 5544: -case 5545: -case 5546: -case 5547: -case 5548: -case 5549: -case 5550: -case 5551: -case 5552: -case 5553: -case 5554: -case 5555: -case 5556: -case 5557: -case 5558: -case 5559: -case 5560: -case 5561: -case 5562: -case 5563: -case 5564: -case 5565: -case 5566: -case 5567: -case 5568: -case 5569: -case 5570: -case 5571: -case 5572: -case 5573: -case 5574: -case 5575: -case 5576: -case 5577: -case 5578: -case 5579: -case 5580: -case 5581: -case 5582: -case 5583: -case 5584: -case 5585: -case 5586: -case 5587: -case 5588: -case 5589: -case 5590: -case 5591: -case 5592: -case 5593: -case 5594: -case 5595: -case 5596: -case 5597: -case 5598: -case 5599: -case 5600: -case 5601: -case 5602: -case 5603: -case 5604: -case 5605: -case 5606: -case 5607: -case 5608: -case 5609: -case 5610: -case 5611: -case 5612: -case 5613: -case 5614: -case 5615: -case 5616: -case 5617: -case 5618: -case 5619: -case 5620: -case 5621: -case 5622: -case 5623: -case 5624: -case 5625: -case 5626: -case 5627: -case 5628: -case 5629: -case 5630: -case 5631: -case 5632: -case 5633: -case 5634: -case 5635: -case 5636: -case 5637: -case 5638: -case 5639: -case 5640: -case 5641: -case 5642: -case 5643: -case 5644: -case 5645: -case 5646: -case 5647: -case 5648: -case 5649: -case 5650: -case 5651: -case 5652: -case 5653: -case 5654: -case 5655: -case 5656: -case 5657: -case 5658: -case 5659: -case 5660: -case 5661: -case 5662: -case 5663: -case 5664: -case 5665: -case 5666: -case 5667: -case 5668: -case 5669: -case 5670: -case 5671: -case 5672: -case 5673: -case 5674: -case 5675: -case 5676: -case 5677: -case 5678: -case 5679: -case 5680: -case 5681: -case 5682: -case 5683: -case 5684: -case 5685: -case 5686: -case 5687: -case 5688: -case 5689: -case 5690: -case 5691: -case 5692: -case 5693: -case 5694: -case 5695: -case 5696: -case 5697: -case 5698: -case 5699: -case 5700: -case 5701: -case 5702: -case 5703: -case 5704: -case 5705: -case 5706: -case 5707: -case 5708: -case 5709: -case 5710: -case 5711: -case 5712: -case 5713: -case 5714: -case 5715: -case 5716: -case 5717: -case 5718: -case 5719: -case 5720: -case 5721: -case 5722: -case 5723: -case 5724: -case 5725: -case 5726: -case 5727: -case 5728: -case 5729: -case 5730: -case 5731: -case 5732: -case 5733: -case 5734: -case 5735: -case 5736: -case 5737: -case 5738: -case 5739: -case 5740: -case 5741: -case 5742: -case 5743: -case 5744: -case 5745: -case 5746: -case 5747: -case 5748: -case 5749: -case 5750: -case 5751: -case 5752: -case 5753: -case 5754: -case 5755: -case 5756: -case 5757: -case 5758: -case 5759: -case 5760: -case 5761: -case 5762: -case 5763: -case 5764: -case 5765: -case 5766: -case 5767: -case 5768: -case 5769: -case 5770: -case 5771: -case 5772: -case 5773: -case 5774: -case 5775: -case 5776: -case 5777: -case 5778: -case 5779: -case 5780: -case 5781: -case 5782: -case 5783: -case 5784: -case 5785: -case 5786: -case 5787: -case 5788: -case 5789: -case 5790: -case 5791: -case 5792: -case 5793: -case 5794: -case 5795: -case 5796: -case 5797: -case 5798: -case 5799: -case 5800: -case 5801: -case 5802: -case 5803: -case 5804: -case 5805: -case 5806: -case 5807: -case 5808: -case 5809: -case 5810: -case 5811: -case 5812: -case 5813: -case 5814: -case 5815: -case 5816: -case 5817: -case 5818: -case 5819: -case 5820: -case 5821: -case 5822: -case 5823: -case 5824: -case 5825: -case 5826: -case 5827: -case 5828: -case 5829: -case 5830: -case 5831: -case 5832: -case 5833: -case 5834: -case 5835: -case 5836: -case 5837: -case 5838: -case 5839: -case 5840: -case 5841: -case 5842: -case 5843: -case 5844: -case 5845: -case 5846: -case 5847: -case 5848: -case 5849: -case 5850: -case 5851: -case 5852: -case 5853: -case 5854: -case 5855: -case 5856: -case 5857: -case 5858: -case 5859: -case 5860: -case 5861: -case 5862: -case 5863: -case 5864: -case 5865: -case 5866: -case 5867: -case 5868: -case 5869: -case 5870: -case 5871: -case 5872: -case 5873: -case 5874: -case 5875: -case 5876: -case 5877: -case 5878: -case 5879: -case 5880: -case 5881: -case 5882: -case 5883: -case 5884: -case 5885: -case 5886: -case 5887: -case 5888: -case 5889: -case 5890: -case 5891: -case 5892: -case 5893: -case 5894: -case 5895: -case 5896: -case 5897: -case 5898: -case 5899: -case 5900: -case 5901: -case 5902: -case 5903: -case 5904: -case 5905: -case 5906: -case 5907: -case 5908: -case 5909: -case 5910: -case 5911: -case 5912: -case 5913: -case 5914: -case 5915: -case 5916: -case 5917: -case 5918: -case 5919: -case 5920: -case 5921: -case 5922: -case 5923: -case 5924: -case 5925: -case 5926: -case 5927: -case 5928: -case 5929: -case 5930: -case 5931: -case 5932: -case 5933: -case 5934: -case 5935: -case 5936: -case 5937: -case 5938: -case 5939: -case 5940: -case 5941: -case 5942: -case 5943: -case 5944: -case 5945: -case 5946: -case 5947: -case 5948: -case 5949: -case 5950: -case 5951: -case 5952: -case 5953: -case 5954: -case 5955: -case 5956: -case 5957: -case 5958: -case 5959: -case 5960: -case 5961: -case 5962: -case 5963: -case 5964: -case 5965: -case 5966: -case 5967: -case 5968: -case 5969: -case 5970: -case 5971: -case 5972: -case 5973: -case 5974: -case 5975: -case 5976: -case 5977: -case 5978: -case 5979: -case 5980: -case 5981: -case 5982: -case 5983: -case 5984: -case 5985: -case 5986: -case 5987: -case 5988: -case 5989: -case 5990: -case 5991: -case 5992: -case 5993: -case 5994: -case 5995: -case 5996: -case 5997: -case 5998: -case 5999: -case 6000: -case 6001: -case 6002: -case 6003: -case 6004: -case 6005: -case 6006: -case 6007: -case 6008: -case 6009: -case 6010: -case 6011: -case 6012: -case 6013: -case 6014: -case 6015: -case 6016: -case 6017: -case 6018: -case 6019: -case 6020: -case 6021: -case 6022: -case 6023: -case 6024: -case 6025: -case 6026: -case 6027: -case 6028: -case 6029: -case 6030: -case 6031: -case 6032: -case 6033: -case 6034: -case 6035: -case 6036: -case 6037: -case 6038: -case 6039: -case 6040: -case 6041: -case 6042: -case 6043: -case 6044: -case 6045: -case 6046: -case 6047: -case 6048: -case 6049: -case 6050: -case 6051: -case 6052: -case 6053: -case 6054: -case 6055: -case 6056: -case 6057: -case 6058: -case 6059: -case 6060: -case 6061: -case 6062: -case 6063: -case 6064: -case 6065: -case 6066: -case 6067: -case 6068: -case 6069: -case 6070: -case 6071: -case 6072: -case 6073: -case 6074: -case 6075: -case 6076: -case 6077: -case 6078: -case 6079: -case 6080: -case 6081: -case 6082: -case 6083: -case 6084: -case 6085: -case 6086: -case 6087: -case 6088: -case 6089: -case 6090: -case 6091: -case 6092: -case 6093: -case 6094: -case 6095: -case 6096: -case 6097: -case 6098: -case 6099: -case 6100: -case 6101: -case 6102: -case 6103: -case 6104: -case 6105: -case 6106: -case 6107: -case 6108: -case 6109: -case 6110: -case 6111: -case 6112: -case 6113: -case 6114: -case 6115: -case 6116: -case 6117: -case 6118: -case 6119: -case 6120: -case 6121: -case 6122: -case 6123: -case 6124: -case 6125: -case 6126: -case 6127: -case 6128: -case 6129: -case 6130: -case 6131: -case 6132: -case 6133: -case 6134: -case 6135: -case 6136: -case 6137: -case 6138: -case 6139: -case 6140: -case 6141: -case 6142: -case 6143: -case 6144: -case 6145: -case 6146: -case 6147: -case 6148: -case 6149: -case 6150: -case 6151: -case 6152: -case 6153: -case 6154: -case 6155: -case 6156: -case 6157: -case 6158: -case 6159: -case 6160: -case 6161: -case 6162: -case 6163: -case 6164: -case 6165: -case 6166: -case 6167: -case 6168: -case 6169: -case 6170: -case 6171: -case 6172: -case 6173: -case 6174: -case 6175: -case 6176: -case 6177: -case 6178: -case 6179: -case 6180: -case 6181: -case 6182: -case 6183: -case 6184: -case 6185: -case 6186: -case 6187: -case 6188: -case 6189: -case 6190: -case 6191: -case 6192: -case 6193: -case 6194: -case 6195: -case 6196: -case 6197: -case 6198: -case 6199: -case 6200: -case 6201: -case 6202: -case 6203: -case 6204: -case 6205: -case 6206: -case 6207: -case 6208: -case 6209: -case 6210: -case 6211: -case 6212: -case 6213: -case 6214: -case 6215: -case 6216: -case 6217: -case 6218: -case 6219: -case 6220: -case 6221: -case 6222: -case 6223: -case 6224: -case 6225: -case 6226: -case 6227: -case 6228: -case 6229: -case 6230: -case 6231: -case 6232: -case 6233: -case 6234: -case 6235: -case 6236: -case 6237: -case 6238: -case 6239: -case 6240: -case 6241: -case 6242: -case 6243: -case 6244: -case 6245: -case 6246: -case 6247: -case 6248: -case 6249: -case 6250: -case 6251: -case 6252: -case 6253: -case 6254: -case 6255: -case 6256: -case 6257: -case 6258: -case 6259: -case 6260: -case 6261: -case 6262: -case 6263: -case 6264: -case 6265: -case 6266: -case 6267: -case 6268: -case 6269: -case 6270: -case 6271: -case 6272: -case 6273: -case 6274: -case 6275: -case 6276: -case 6277: -case 6278: -case 6279: -case 6280: -case 6281: -case 6282: -case 6283: -case 6284: -case 6285: -case 6286: -case 6287: -case 6288: -case 6289: -case 6290: -case 6291: -case 6292: -case 6293: -case 6294: -case 6295: -case 6296: -case 6297: -case 6298: -case 6299: -case 6300: -case 6301: -case 6302: -case 6303: -case 6304: -case 6305: -case 6306: -case 6307: -case 6308: -case 6309: -case 6310: -case 6311: -case 6312: -case 6313: -case 6314: -case 6315: -case 6316: -case 6317: -case 6318: -case 6319: -case 6320: -case 6321: -case 6322: -case 6323: -case 6324: -case 6325: -case 6326: -case 6327: -case 6328: -case 6329: -case 6330: -case 6331: -case 6332: -case 6333: -case 6334: -case 6335: -case 6336: -case 6337: -case 6338: -case 6339: -case 6340: -case 6341: -case 6342: -case 6343: -case 6344: -case 6345: -case 6346: -case 6347: -case 6348: -case 6349: -case 6350: -case 6351: -case 6352: -case 6353: -case 6354: -case 6355: -case 6356: -case 6357: -case 6358: -case 6359: -case 6360: -case 6361: -case 6362: -case 6363: -case 6364: -case 6365: -case 6366: -case 6367: -case 6368: -case 6369: -case 6370: -case 6371: -case 6372: -case 6373: -case 6374: -case 6375: -case 6376: -case 6377: -case 6378: -case 6379: -case 6380: -case 6381: -case 6382: -case 6383: -case 6384: -case 6385: -case 6386: -case 6387: -case 6388: -case 6389: -case 6390: -case 6391: -case 6392: -case 6393: -case 6394: -case 6395: -case 6396: -case 6397: -case 6398: -case 6399: -case 6400: -case 6401: -case 6402: -case 6403: -case 6404: -case 6405: -case 6406: -case 6407: -case 6408: -case 6409: -case 6410: -case 6411: -case 6412: -case 6413: -case 6414: -case 6415: -case 6416: -case 6417: -case 6418: -case 6419: -case 6420: -case 6421: -case 6422: -case 6423: -case 6424: -case 6425: -case 6426: -case 6427: -case 6428: -case 6429: -case 6430: -case 6431: -case 6432: -case 6433: -case 6434: -case 6435: -case 6436: -case 6437: -case 6438: -case 6439: -case 6440: -case 6441: -case 6442: -case 6443: -case 6444: -case 6445: -case 6446: -case 6447: -case 6448: -case 6449: -case 6450: -case 6451: -case 6452: -case 6453: -case 6454: -case 6455: -case 6456: -case 6457: -case 6458: -case 6459: -case 6460: -case 6461: -case 6462: -case 6463: -case 6464: -case 6465: -case 6466: -case 6467: -case 6468: -case 6469: -case 6470: -case 6471: -case 6472: -case 6473: -case 6474: -case 6475: -case 6476: -case 6477: -case 6478: -case 6479: -case 6480: -case 6481: -case 6482: -case 6483: -case 6484: -case 6485: -case 6486: -case 6487: -case 6488: -case 6489: -case 6490: -case 6491: -case 6492: -case 6493: -case 6494: -case 6495: -case 6496: -case 6497: -case 6498: -case 6499: -case 6500: -case 6501: -case 6502: -case 6503: -case 6504: -case 6505: -case 6506: -case 6507: -case 6508: -case 6509: -case 6510: -case 6511: -case 6512: -case 6513: -case 6514: -case 6515: -case 6516: -case 6517: -case 6518: -case 6519: -case 6520: -case 6521: -case 6522: -case 6523: -case 6524: -case 6525: -case 6526: -case 6527: -case 6528: -case 6529: -case 6530: -case 6531: -case 6532: -case 6533: -case 6534: -case 6535: -case 6536: -case 6537: -case 6538: -case 6539: -case 6540: -case 6541: -case 6542: -case 6543: -case 6544: -case 6545: -case 6546: -case 6547: -case 6548: -case 6549: -case 6550: -case 6551: -case 6552: -case 6553: -case 6554: -case 6555: -case 6556: -case 6557: -case 6558: -case 6559: -case 6560: -case 6561: -case 6562: -case 6563: -case 6564: -case 6565: -case 6566: -case 6567: -case 6568: -case 6569: -case 6570: -case 6571: -case 6572: -case 6573: -case 6574: -case 6575: -case 6576: -case 6577: -case 6578: -case 6579: -case 6580: -case 6581: -case 6582: -case 6583: -case 6584: -case 6585: -case 6586: -case 6587: -case 6588: -case 6589: -case 6590: -case 6591: -case 6592: -case 6593: -case 6594: -case 6595: -case 6596: -case 6597: -case 6598: -case 6599: -case 6600: -case 6601: -case 6602: -case 6603: -case 6604: -case 6605: -case 6606: -case 6607: -case 6608: -case 6609: -case 6610: -case 6611: -case 6612: -case 6613: -case 6614: -case 6615: -case 6616: -case 6617: -case 6618: -case 6619: -case 6620: -case 6621: -case 6622: -case 6623: -case 6624: -case 6625: -case 6626: -case 6627: -case 6628: -case 6629: -case 6630: -case 6631: -case 6632: -case 6633: -case 6634: -case 6635: -case 6636: -case 6637: -case 6638: -case 6639: -case 6640: -case 6641: -case 6642: -case 6643: -case 6644: -case 6645: -case 6646: -case 6647: -case 6648: -case 6649: -case 6650: -case 6651: -case 6652: -case 6653: -case 6654: -case 6655: -case 6656: -case 6657: -case 6658: -case 6659: -case 6660: -case 6661: -case 6662: -case 6663: -case 6664: -case 6665: -case 6666: -case 6667: -case 6668: -case 6669: -case 6670: -case 6671: -case 6672: -case 6673: -case 6674: -case 6675: -case 6676: -case 6677: -case 6678: -case 6679: -case 6680: -case 6681: -case 6682: -case 6683: -case 6684: -case 6685: -case 6686: -case 6687: -case 6688: -case 6689: -case 6690: -case 6691: -case 6692: -case 6693: -case 6694: -case 6695: -case 6696: -case 6697: -case 6698: -case 6699: -case 6700: -case 6701: -case 6702: -case 6703: -case 6704: -case 6705: -case 6706: -case 6707: -case 6708: -case 6709: -case 6710: -case 6711: -case 6712: -case 6713: -case 6714: -case 6715: -case 6716: -case 6717: -case 6718: -case 6719: -case 6720: -case 6721: -case 6722: -case 6723: -case 6724: -case 6725: -case 6726: -case 6727: -case 6728: -case 6729: -case 6730: -case 6731: -case 6732: -case 6733: -case 6734: -case 6735: -case 6736: -case 6737: -case 6738: -case 6739: -case 6740: -case 6741: -case 6742: -case 6743: -case 6744: -case 6745: -case 6746: -case 6747: -case 6748: -case 6749: -case 6750: -case 6751: -case 6752: -case 6753: -case 6754: -case 6755: -case 6756: -case 6757: -case 6758: -case 6759: -case 6760: -case 6761: -case 6762: -case 6763: -case 6764: -case 6765: -case 6766: -case 6767: -case 6768: -case 6769: -case 6770: -case 6771: -case 6772: -case 6773: -case 6774: -case 6775: -case 6776: -case 6777: -case 6778: -case 6779: -case 6780: -case 6781: -case 6782: -case 6783: -case 6784: -case 6785: -case 6786: -case 6787: -case 6788: -case 6789: -case 6790: -case 6791: -case 6792: -case 6793: -case 6794: -case 6795: -case 6796: -case 6797: -case 6798: -case 6799: -case 6800: -case 6801: -case 6802: -case 6803: -case 6804: -case 6805: -case 6806: -case 6807: -case 6808: -case 6809: -case 6810: -case 6811: -case 6812: -case 6813: -case 6814: -case 6815: -case 6816: -case 6817: -case 6818: -case 6819: -case 6820: -case 6821: -case 6822: -case 6823: -case 6824: -case 6825: -case 6826: -case 6827: -case 6828: -case 6829: -case 6830: -case 6831: -case 6832: -case 6833: -case 6834: -case 6835: -case 6836: -case 6837: -case 6838: -case 6839: -case 6840: -case 6841: -case 6842: -case 6843: -case 6844: -case 6845: -case 6846: -case 6847: -case 6848: -case 6849: -case 6850: -case 6851: -case 6852: -case 6853: -case 6854: -case 6855: -case 6856: -case 6857: -case 6858: -case 6859: -case 6860: -case 6861: -case 6862: -case 6863: -case 6864: -case 6865: -case 6866: -case 6867: -case 6868: -case 6869: -case 6870: -case 6871: -case 6872: -case 6873: -case 6874: -case 6875: -case 6876: -case 6877: -case 6878: -case 6879: -case 6880: -case 6881: -case 6882: -case 6883: -case 6884: -case 6885: -case 6886: -case 6887: -case 6888: -case 6889: -case 6890: -case 6891: -case 6892: -case 6893: -case 6894: -case 6895: -case 6896: -case 6897: -case 6898: -case 6899: -case 6900: -case 6901: -case 6902: -case 6903: -case 6904: -case 6905: -case 6906: -case 6907: -case 6908: -case 6909: -case 6910: -case 6911: -case 6912: -case 6913: -case 6914: -case 6915: -case 6916: -case 6917: -case 6918: -case 6919: -case 6920: -case 6921: -case 6922: -case 6923: -case 6924: -case 6925: -case 6926: -case 6927: -case 6928: -case 6929: -case 6930: -case 6931: -case 6932: -case 6933: -case 6934: -case 6935: -case 6936: -case 6937: -case 6938: -case 6939: -case 6940: -case 6941: -case 6942: -case 6943: -case 6944: -case 6945: -case 6946: -case 6947: -case 6948: -case 6949: -case 6950: -case 6951: -case 6952: -case 6953: -case 6954: -case 6955: -case 6956: -case 6957: -case 6958: -case 6959: -case 6960: -case 6961: -case 6962: -case 6963: -case 6964: -case 6965: -case 6966: -case 6967: -case 6968: -case 6969: -case 6970: -case 6971: -case 6972: -case 6973: -case 6974: -case 6975: -case 6976: -case 6977: -case 6978: -case 6979: -case 6980: -case 6981: -case 6982: -case 6983: -case 6984: -case 6985: -case 6986: -case 6987: -case 6988: -case 6989: -case 6990: -case 6991: -case 6992: -case 6993: -case 6994: -case 6995: -case 6996: -case 6997: -case 6998: -case 6999: -case 7000: -case 7001: -case 7002: -case 7003: -case 7004: -case 7005: -case 7006: -case 7007: -case 7008: -case 7009: -case 7010: -case 7011: -case 7012: -case 7013: -case 7014: -case 7015: -case 7016: -case 7017: -case 7018: -case 7019: -case 7020: -case 7021: -case 7022: -case 7023: -case 7024: -case 7025: -case 7026: -case 7027: -case 7028: -case 7029: -case 7030: -case 7031: -case 7032: -case 7033: -case 7034: -case 7035: -case 7036: -case 7037: -case 7038: -case 7039: -case 7040: -case 7041: -case 7042: -case 7043: -case 7044: -case 7045: -case 7046: -case 7047: -case 7048: -case 7049: -case 7050: -case 7051: -case 7052: -case 7053: -case 7054: -case 7055: -case 7056: -case 7057: -case 7058: -case 7059: -case 7060: -case 7061: -case 7062: -case 7063: -case 7064: -case 7065: -case 7066: -case 7067: -case 7068: -case 7069: -case 7070: -case 7071: -case 7072: -case 7073: -case 7074: -case 7075: -case 7076: -case 7077: -case 7078: -case 7079: -case 7080: -case 7081: -case 7082: -case 7083: -case 7084: -case 7085: -case 7086: -case 7087: -case 7088: -case 7089: -case 7090: -case 7091: -case 7092: -case 7093: -case 7094: -case 7095: -case 7096: -case 7097: -case 7098: -case 7099: -case 7100: -case 7101: -case 7102: -case 7103: -case 7104: -case 7105: -case 7106: -case 7107: -case 7108: -case 7109: -case 7110: -case 7111: -case 7112: -case 7113: -case 7114: -case 7115: -case 7116: -case 7117: -case 7118: -case 7119: -case 7120: -case 7121: -case 7122: -case 7123: -case 7124: -case 7125: -case 7126: -case 7127: -case 7128: -case 7129: -case 7130: -case 7131: -case 7132: -case 7133: -case 7134: -case 7135: -case 7136: -case 7137: -case 7138: -case 7139: -case 7140: -case 7141: -case 7142: -case 7143: -case 7144: -case 7145: -case 7146: -case 7147: -case 7148: -case 7149: -case 7150: -case 7151: -case 7152: -case 7153: -case 7154: -case 7155: -case 7156: -case 7157: -case 7158: -case 7159: -case 7160: -case 7161: -case 7162: -case 7163: -case 7164: -case 7165: -case 7166: -case 7167: -case 7168: -case 7169: -case 7170: -case 7171: -case 7172: -case 7173: -case 7174: -case 7175: -case 7176: -case 7177: -case 7178: -case 7179: -case 7180: -case 7181: -case 7182: -case 7183: -case 7184: -case 7185: -case 7186: -case 7187: -case 7188: -case 7189: -case 7190: -case 7191: -case 7192: -case 7193: -case 7194: -case 7195: -case 7196: -case 7197: -case 7198: -case 7199: -case 7200: -case 7201: -case 7202: -case 7203: -case 7204: -case 7205: -case 7206: -case 7207: -case 7208: -case 7209: -case 7210: -case 7211: -case 7212: -case 7213: -case 7214: -case 7215: -case 7216: -case 7217: -case 7218: -case 7219: -case 7220: -case 7221: -case 7222: -case 7223: -case 7224: -case 7225: -case 7226: -case 7227: -case 7228: -case 7229: -case 7230: -case 7231: -case 7232: -case 7233: -case 7234: -case 7235: -case 7236: -case 7237: -case 7238: -case 7239: -case 7240: -case 7241: -case 7242: -case 7243: -case 7244: -case 7245: -case 7246: -case 7247: -case 7248: -case 7249: -case 7250: -case 7251: -case 7252: -case 7253: -case 7254: -case 7255: -case 7256: -case 7257: -case 7258: -case 7259: -case 7260: -case 7261: -case 7262: -case 7263: -case 7264: -case 7265: -case 7266: -case 7267: -case 7268: -case 7269: -case 7270: -case 7271: -case 7272: -case 7273: -case 7274: -case 7275: -case 7276: -case 7277: -case 7278: -case 7279: -case 7280: -case 7281: -case 7282: -case 7283: -case 7284: -case 7285: -case 7286: -case 7287: -case 7288: -case 7289: -case 7290: -case 7291: -case 7292: -case 7293: -case 7294: -case 7295: -case 7296: -case 7297: -case 7298: -case 7299: -case 7300: -case 7301: -case 7302: -case 7303: -case 7304: -case 7305: -case 7306: -case 7307: -case 7308: -case 7309: -case 7310: -case 7311: -case 7312: -case 7313: -case 7314: -case 7315: -case 7316: -case 7317: -case 7318: -case 7319: -case 7320: -case 7321: -case 7322: -case 7323: -case 7324: -case 7325: -case 7326: -case 7327: -case 7328: -case 7329: -case 7330: -case 7331: -case 7332: -case 7333: -case 7334: -case 7335: -case 7336: -case 7337: -case 7338: -case 7339: -case 7340: -case 7341: -case 7342: -case 7343: -case 7344: -case 7345: -case 7346: -case 7347: -case 7348: -case 7349: -case 7350: -case 7351: -case 7352: -case 7353: -case 7354: -case 7355: -case 7356: -case 7357: -case 7358: -case 7359: -case 7360: -case 7361: -case 7362: -case 7363: -case 7364: -case 7365: -case 7366: -case 7367: -case 7368: -case 7369: -case 7370: -case 7371: -case 7372: -case 7373: -case 7374: -case 7375: -case 7376: -case 7377: -case 7378: -case 7379: -case 7380: -case 7381: -case 7382: -case 7383: -case 7384: -case 7385: -case 7386: -case 7387: -case 7388: -case 7389: -case 7390: -case 7391: -case 7392: -case 7393: -case 7394: -case 7395: -case 7396: -case 7397: -case 7398: -case 7399: -case 7400: -case 7401: -case 7402: -case 7403: -case 7404: -case 7405: -case 7406: -case 7407: -case 7408: -case 7409: -case 7410: -case 7411: -case 7412: -case 7413: -case 7414: -case 7415: -case 7416: -case 7417: -case 7418: -case 7419: -case 7420: -case 7421: -case 7422: -case 7423: -case 7424: -case 7425: -case 7426: -case 7427: -case 7428: -case 7429: -case 7430: -case 7431: -case 7432: -case 7433: -case 7434: -case 7435: -case 7436: -case 7437: -case 7438: -case 7439: -case 7440: -case 7441: -case 7442: -case 7443: -case 7444: -case 7445: -case 7446: -case 7447: -case 7448: -case 7449: -case 7450: -case 7451: -case 7452: -case 7453: -case 7454: -case 7455: -case 7456: -case 7457: -case 7458: -case 7459: -case 7460: -case 7461: -case 7462: -case 7463: -case 7464: -case 7465: -case 7466: -case 7467: -case 7468: -case 7469: -case 7470: -case 7471: -case 7472: -case 7473: -case 7474: -case 7475: -case 7476: -case 7477: -case 7478: -case 7479: -case 7480: -case 7481: -case 7482: -case 7483: -case 7484: -case 7485: -case 7486: -case 7487: -case 7488: -case 7489: -case 7490: -case 7491: -case 7492: -case 7493: -case 7494: -case 7495: -case 7496: -case 7497: -case 7498: -case 7499: -case 7500: -case 7501: -case 7502: -case 7503: -case 7504: -case 7505: -case 7506: -case 7507: -case 7508: -case 7509: -case 7510: -case 7511: -case 7512: -case 7513: -case 7514: -case 7515: -case 7516: -case 7517: -case 7518: -case 7519: -case 7520: -case 7521: -case 7522: -case 7523: -case 7524: -case 7525: -case 7526: -case 7527: -case 7528: -case 7529: -case 7530: -case 7531: -case 7532: -case 7533: -case 7534: -case 7535: -case 7536: -case 7537: -case 7538: -case 7539: -case 7540: -case 7541: -case 7542: -case 7543: -case 7544: -case 7545: -case 7546: -case 7547: -case 7548: -case 7549: -case 7550: -case 7551: -case 7552: -case 7553: -case 7554: -case 7555: -case 7556: -case 7557: -case 7558: -case 7559: -case 7560: -case 7561: -case 7562: -case 7563: -case 7564: -case 7565: -case 7566: -case 7567: -case 7568: -case 7569: -case 7570: -case 7571: -case 7572: -case 7573: -case 7574: -case 7575: -case 7576: -case 7577: -case 7578: -case 7579: -case 7580: -case 7581: -case 7582: -case 7583: -case 7584: -case 7585: -case 7586: -case 7587: -case 7588: -case 7589: -case 7590: -case 7591: -case 7592: -case 7593: -case 7594: -case 7595: -case 7596: -case 7597: -case 7598: -case 7599: -case 7600: -case 7601: -case 7602: -case 7603: -case 7604: -case 7605: -case 7606: -case 7607: -case 7608: -case 7609: -case 7610: -case 7611: -case 7612: -case 7613: -case 7614: -case 7615: -case 7616: -case 7617: -case 7618: -case 7619: -case 7620: -case 7621: -case 7622: -case 7623: -case 7624: -case 7625: -case 7626: -case 7627: -case 7628: -case 7629: -case 7630: -case 7631: -case 7632: -case 7633: -case 7634: -case 7635: -case 7636: -case 7637: -case 7638: -case 7639: -case 7640: -case 7641: -case 7642: -case 7643: -case 7644: -case 7645: -case 7646: -case 7647: -case 7648: -case 7649: -case 7650: -case 7651: -case 7652: -case 7653: -case 7654: -case 7655: -case 7656: -case 7657: -case 7658: -case 7659: -case 7660: -case 7661: -case 7662: -case 7663: -case 7664: -case 7665: -case 7666: -case 7667: -case 7668: -case 7669: -case 7670: -case 7671: -case 7672: -case 7673: -case 7674: -case 7675: -case 7676: -case 7677: -case 7678: -case 7679: -case 7680: -case 7681: -case 7682: -case 7683: -case 7684: -case 7685: -case 7686: -case 7687: -case 7688: -case 7689: -case 7690: -case 7691: -case 7692: -case 7693: -case 7694: -case 7695: -case 7696: -case 7697: -case 7698: -case 7699: -case 7700: -case 7701: -case 7702: -case 7703: -case 7704: -case 7705: -case 7706: -case 7707: -case 7708: -case 7709: -case 7710: -case 7711: -case 7712: -case 7713: -case 7714: -case 7715: -case 7716: -case 7717: -case 7718: -case 7719: -case 7720: -case 7721: -case 7722: -case 7723: -case 7724: -case 7725: -case 7726: -case 7727: -case 7728: -case 7729: -case 7730: -case 7731: -case 7732: -case 7733: -case 7734: -case 7735: -case 7736: -case 7737: -case 7738: -case 7739: -case 7740: -case 7741: -case 7742: -case 7743: -case 7744: -case 7745: -case 7746: -case 7747: -case 7748: -case 7749: -case 7750: -case 7751: -case 7752: -case 7753: -case 7754: -case 7755: -case 7756: -case 7757: -case 7758: -case 7759: -case 7760: -case 7761: -case 7762: -case 7763: -case 7764: -case 7765: -case 7766: -case 7767: -case 7768: -case 7769: -case 7770: -case 7771: -case 7772: -case 7773: -case 7774: -case 7775: -case 7776: -case 7777: -case 7778: -case 7779: -case 7780: -case 7781: -case 7782: -case 7783: -case 7784: -case 7785: -case 7786: -case 7787: -case 7788: -case 7789: -case 7790: -case 7791: -case 7792: -case 7793: -case 7794: -case 7795: -case 7796: -case 7797: -case 7798: -case 7799: -case 7800: -case 7801: -case 7802: -case 7803: -case 7804: -case 7805: -case 7806: -case 7807: -case 7808: -case 7809: -case 7810: -case 7811: -case 7812: -case 7813: -case 7814: -case 7815: -case 7816: -case 7817: -case 7818: -case 7819: -case 7820: -case 7821: -case 7822: -case 7823: -case 7824: -case 7825: -case 7826: -case 7827: -case 7828: -case 7829: -case 7830: -case 7831: -case 7832: -case 7833: -case 7834: -case 7835: -case 7836: -case 7837: -case 7838: -case 7839: -case 7840: -case 7841: -case 7842: -case 7843: -case 7844: -case 7845: -case 7846: -case 7847: -case 7848: -case 7849: -case 7850: -case 7851: -case 7852: -case 7853: -case 7854: -case 7855: -case 7856: -case 7857: -case 7858: -case 7859: -case 7860: -case 7861: -case 7862: -case 7863: -case 7864: -case 7865: -case 7866: -case 7867: -case 7868: -case 7869: -case 7870: -case 7871: -case 7872: -case 7873: -case 7874: -case 7875: -case 7876: -case 7877: -case 7878: -case 7879: -case 7880: -case 7881: -case 7882: -case 7883: -case 7884: -case 7885: -case 7886: -case 7887: -case 7888: -case 7889: -case 7890: -case 7891: -case 7892: -case 7893: -case 7894: -case 7895: -case 7896: -case 7897: -case 7898: -case 7899: -case 7900: -case 7901: -case 7902: -case 7903: -case 7904: -case 7905: -case 7906: -case 7907: -case 7908: -case 7909: -case 7910: -case 7911: -case 7912: -case 7913: -case 7914: -case 7915: -case 7916: -case 7917: -case 7918: -case 7919: -case 7920: -case 7921: -case 7922: -case 7923: -case 7924: -case 7925: -case 7926: -case 7927: -case 7928: -case 7929: -case 7930: -case 7931: -case 7932: -case 7933: -case 7934: -case 7935: -case 7936: -case 7937: -case 7938: -case 7939: -case 7940: -case 7941: -case 7942: -case 7943: -case 7944: -case 7945: -case 7946: -case 7947: -case 7948: -case 7949: -case 7950: -case 7951: -case 7952: -case 7953: -case 7954: -case 7955: -case 7956: -case 7957: -case 7958: -case 7959: -case 7960: -case 7961: -case 7962: -case 7963: -case 7964: -case 7965: -case 7966: -case 7967: -case 7968: -case 7969: -case 7970: -case 7971: -case 7972: -case 7973: -case 7974: -case 7975: -case 7976: -case 7977: -case 7978: -case 7979: -case 7980: -case 7981: -case 7982: -case 7983: -case 7984: -case 7985: -case 7986: -case 7987: -case 7988: -case 7989: -case 7990: -case 7991: -case 7992: -case 7993: -case 7994: -case 7995: -case 7996: -case 7997: -case 7998: -case 7999: -case 8000: -case 8001: -case 8002: -case 8003: -case 8004: -case 8005: -case 8006: -case 8007: -case 8008: -case 8009: -case 8010: -case 8011: -case 8012: -case 8013: -case 8014: -case 8015: -case 8016: -case 8017: -case 8018: -case 8019: -case 8020: -case 8021: -case 8022: -case 8023: -case 8024: -case 8025: -case 8026: -case 8027: -case 8028: -case 8029: -case 8030: -case 8031: -case 8032: -case 8033: -case 8034: -case 8035: -case 8036: -case 8037: -case 8038: -case 8039: -case 8040: -case 8041: -case 8042: -case 8043: -case 8044: -case 8045: -case 8046: -case 8047: -case 8048: -case 8049: -case 8050: -case 8051: -case 8052: -case 8053: -case 8054: -case 8055: -case 8056: -case 8057: -case 8058: -case 8059: -case 8060: -case 8061: -case 8062: -case 8063: -case 8064: -case 8065: -case 8066: -case 8067: -case 8068: -case 8069: -case 8070: -case 8071: -case 8072: -case 8073: -case 8074: -case 8075: -case 8076: -case 8077: -case 8078: -case 8079: -case 8080: -case 8081: -case 8082: -case 8083: -case 8084: -case 8085: -case 8086: -case 8087: -case 8088: -case 8089: -case 8090: -case 8091: -case 8092: -case 8093: -case 8094: -case 8095: -case 8096: -case 8097: -case 8098: -case 8099: -case 8100: -case 8101: -case 8102: -case 8103: -case 8104: -case 8105: -case 8106: -case 8107: -case 8108: -case 8109: -case 8110: -case 8111: -case 8112: -case 8113: -case 8114: -case 8115: -case 8116: -case 8117: -case 8118: -case 8119: -case 8120: -case 8121: -case 8122: -case 8123: -case 8124: -case 8125: -case 8126: -case 8127: -case 8128: -case 8129: -case 8130: -case 8131: -case 8132: -case 8133: -case 8134: -case 8135: -case 8136: -case 8137: -case 8138: -case 8139: -case 8140: -case 8141: -case 8142: -case 8143: -case 8144: -case 8145: -case 8146: -case 8147: -case 8148: -case 8149: -case 8150: -case 8151: -case 8152: -case 8153: -case 8154: -case 8155: -case 8156: -case 8157: -case 8158: -case 8159: -case 8160: -case 8161: -case 8162: -case 8163: -case 8164: -case 8165: -case 8166: -case 8167: -case 8168: -case 8169: -case 8170: -case 8171: -case 8172: -case 8173: -case 8174: -case 8175: -case 8176: -case 8177: -case 8178: -case 8179: -case 8180: -case 8181: -case 8182: -case 8183: -case 8184: -case 8185: -case 8186: -case 8187: -case 8188: -case 8189: -case 8190: -case 8191: -case 8192: -case 8193: -case 8194: -case 8195: -case 8196: -case 8197: -case 8198: -case 8199: -case 8200: -case 8201: -case 8202: -case 8203: -case 8204: -case 8205: -case 8206: -case 8207: -case 8208: -case 8209: -case 8210: -case 8211: -case 8212: -case 8213: -case 8214: -case 8215: -case 8216: -case 8217: -case 8218: -case 8219: -case 8220: -case 8221: -case 8222: -case 8223: -case 8224: -case 8225: -case 8226: -case 8227: -case 8228: -case 8229: -case 8230: -case 8231: -case 8232: -case 8233: -case 8234: -case 8235: -case 8236: -case 8237: -case 8238: -case 8239: -case 8240: -case 8241: -case 8242: -case 8243: -case 8244: -case 8245: -case 8246: -case 8247: -case 8248: -case 8249: -case 8250: -case 8251: -case 8252: -case 8253: -case 8254: -case 8255: -case 8256: -case 8257: -case 8258: -case 8259: -case 8260: -case 8261: -case 8262: -case 8263: -case 8264: -case 8265: -case 8266: -case 8267: -case 8268: -case 8269: -case 8270: -case 8271: -case 8272: -case 8273: -case 8274: -case 8275: -case 8276: -case 8277: -case 8278: -case 8279: -case 8280: -case 8281: -case 8282: -case 8283: -case 8284: -case 8285: -case 8286: -case 8287: -case 8288: -case 8289: -case 8290: -case 8291: -case 8292: -case 8293: -case 8294: -case 8295: -case 8296: -case 8297: -case 8298: -case 8299: -case 8300: -case 8301: -case 8302: -case 8303: -case 8304: -case 8305: -case 8306: -case 8307: -case 8308: -case 8309: -case 8310: -case 8311: -case 8312: -case 8313: -case 8314: -case 8315: -case 8316: -case 8317: -case 8318: -case 8319: -case 8320: -case 8321: -case 8322: -case 8323: -case 8324: -case 8325: -case 8326: -case 8327: -case 8328: -case 8329: -case 8330: -case 8331: -case 8332: -case 8333: -case 8334: -case 8335: -case 8336: -case 8337: -case 8338: -case 8339: -case 8340: -case 8341: -case 8342: -case 8343: -case 8344: -case 8345: -case 8346: -case 8347: -case 8348: -case 8349: -case 8350: -case 8351: -case 8352: -case 8353: -case 8354: -case 8355: -case 8356: -case 8357: -case 8358: -case 8359: -case 8360: -case 8361: -case 8362: -case 8363: -case 8364: -case 8365: -case 8366: -case 8367: -case 8368: -case 8369: -case 8370: -case 8371: -case 8372: -case 8373: -case 8374: -case 8375: -case 8376: -case 8377: -case 8378: -case 8379: -case 8380: -case 8381: -case 8382: -case 8383: -case 8384: -case 8385: -case 8386: -case 8387: -case 8388: -case 8389: -case 8390: -case 8391: -case 8392: -case 8393: -case 8394: -case 8395: -case 8396: -case 8397: -case 8398: -case 8399: -case 8400: -case 8401: -case 8402: -case 8403: -case 8404: -case 8405: -case 8406: -case 8407: -case 8408: -case 8409: -case 8410: -case 8411: -case 8412: -case 8413: -case 8414: -case 8415: -case 8416: -case 8417: -case 8418: -case 8419: -case 8420: -case 8421: -case 8422: -case 8423: -case 8424: -case 8425: -case 8426: -case 8427: -case 8428: -case 8429: -case 8430: -case 8431: -case 8432: -case 8433: -case 8434: -case 8435: -case 8436: -case 8437: -case 8438: -case 8439: -case 8440: -case 8441: -case 8442: -case 8443: -case 8444: -case 8445: -case 8446: -case 8447: -case 8448: -case 8449: -case 8450: -case 8451: -case 8452: -case 8453: -case 8454: -case 8455: -case 8456: -case 8457: -case 8458: -case 8459: -case 8460: -case 8461: -case 8462: -case 8463: -case 8464: -case 8465: -case 8466: -case 8467: -case 8468: -case 8469: -case 8470: -case 8471: -case 8472: -case 8473: -case 8474: -case 8475: -case 8476: -case 8477: -case 8478: -case 8479: -case 8480: -case 8481: -case 8482: -case 8483: -case 8484: -case 8485: -case 8486: -case 8487: -case 8488: -case 8489: -case 8490: -case 8491: -case 8492: -case 8493: -case 8494: -case 8495: -case 8496: -case 8497: -case 8498: -case 8499: -case 8500: -case 8501: -case 8502: -case 8503: -case 8504: -case 8505: -case 8506: -case 8507: -case 8508: -case 8509: -case 8510: -case 8511: -case 8512: -case 8513: -case 8514: -case 8515: -case 8516: -case 8517: -case 8518: -case 8519: -case 8520: -case 8521: -case 8522: -case 8523: -case 8524: -case 8525: -case 8526: -case 8527: -case 8528: -case 8529: -case 8530: -case 8531: -case 8532: -case 8533: -case 8534: -case 8535: -case 8536: -case 8537: -case 8538: -case 8539: -case 8540: -case 8541: -case 8542: -case 8543: -case 8544: -case 8545: -case 8546: -case 8547: -case 8548: -case 8549: -case 8550: -case 8551: -case 8552: -case 8553: -case 8554: -case 8555: -case 8556: -case 8557: -case 8558: -case 8559: -case 8560: -case 8561: -case 8562: -case 8563: -case 8564: -case 8565: -case 8566: -case 8567: -case 8568: -case 8569: -case 8570: -case 8571: -case 8572: -case 8573: -case 8574: -case 8575: -case 8576: -case 8577: -case 8578: -case 8579: -case 8580: -case 8581: -case 8582: -case 8583: -case 8584: -case 8585: -case 8586: -case 8587: -case 8588: -case 8589: -case 8590: -case 8591: -case 8592: -case 8593: -case 8594: -case 8595: -case 8596: -case 8597: -case 8598: -case 8599: -case 8600: -case 8601: -case 8602: -case 8603: -case 8604: -case 8605: -case 8606: -case 8607: -case 8608: -case 8609: -case 8610: -case 8611: -case 8612: -case 8613: -case 8614: -case 8615: -case 8616: -case 8617: -case 8618: -case 8619: -case 8620: -case 8621: -case 8622: -case 8623: -case 8624: -case 8625: -case 8626: -case 8627: -case 8628: -case 8629: -case 8630: -case 8631: -case 8632: -case 8633: -case 8634: -case 8635: -case 8636: -case 8637: -case 8638: -case 8639: -case 8640: -case 8641: -case 8642: -case 8643: -case 8644: -case 8645: -case 8646: -case 8647: -case 8648: -case 8649: -case 8650: -case 8651: -case 8652: -case 8653: -case 8654: -case 8655: -case 8656: -case 8657: -case 8658: -case 8659: -case 8660: -case 8661: -case 8662: -case 8663: -case 8664: -case 8665: -case 8666: -case 8667: -case 8668: -case 8669: -case 8670: -case 8671: -case 8672: -case 8673: -case 8674: -case 8675: -case 8676: -case 8677: -case 8678: -case 8679: -case 8680: -case 8681: -case 8682: -case 8683: -case 8684: -case 8685: -case 8686: -case 8687: -case 8688: -case 8689: -case 8690: -case 8691: -case 8692: -case 8693: -case 8694: -case 8695: -case 8696: -case 8697: -case 8698: -case 8699: -case 8700: -case 8701: -case 8702: -case 8703: -case 8704: -case 8705: -case 8706: -case 8707: -case 8708: -case 8709: -case 8710: -case 8711: -case 8712: -case 8713: -case 8714: -case 8715: -case 8716: -case 8717: -case 8718: -case 8719: -case 8720: -case 8721: -case 8722: -case 8723: -case 8724: -case 8725: -case 8726: -case 8727: -case 8728: -case 8729: -case 8730: -case 8731: -case 8732: -case 8733: -case 8734: -case 8735: -case 8736: -case 8737: -case 8738: -case 8739: -case 8740: -case 8741: -case 8742: -case 8743: -case 8744: -case 8745: -case 8746: -case 8747: -case 8748: -case 8749: -case 8750: -case 8751: -case 8752: -case 8753: -case 8754: -case 8755: -case 8756: -case 8757: -case 8758: -case 8759: -case 8760: -case 8761: -case 8762: -case 8763: -case 8764: -case 8765: -case 8766: -case 8767: -case 8768: -case 8769: -case 8770: -case 8771: -case 8772: -case 8773: -case 8774: -case 8775: -case 8776: -case 8777: -case 8778: -case 8779: -case 8780: -case 8781: -case 8782: -case 8783: -case 8784: -case 8785: -case 8786: -case 8787: -case 8788: -case 8789: -case 8790: -case 8791: -case 8792: -case 8793: -case 8794: -case 8795: -case 8796: -case 8797: -case 8798: -case 8799: -case 8800: -case 8801: -case 8802: -case 8803: -case 8804: -case 8805: -case 8806: -case 8807: -case 8808: -case 8809: -case 8810: -case 8811: -case 8812: -case 8813: -case 8814: -case 8815: -case 8816: -case 8817: -case 8818: -case 8819: -case 8820: -case 8821: -case 8822: -case 8823: -case 8824: -case 8825: -case 8826: -case 8827: -case 8828: -case 8829: -case 8830: -case 8831: -case 8832: -case 8833: -case 8834: -case 8835: -case 8836: -case 8837: -case 8838: -case 8839: -case 8840: -case 8841: -case 8842: -case 8843: -case 8844: -case 8845: -case 8846: -case 8847: -case 8848: -case 8849: -case 8850: -case 8851: -case 8852: -case 8853: -case 8854: -case 8855: -case 8856: -case 8857: -case 8858: -case 8859: -case 8860: -case 8861: -case 8862: -case 8863: -case 8864: -case 8865: -case 8866: -case 8867: -case 8868: -case 8869: -case 8870: -case 8871: -case 8872: -case 8873: -case 8874: -case 8875: -case 8876: -case 8877: -case 8878: -case 8879: -case 8880: -case 8881: -case 8882: -case 8883: -case 8884: -case 8885: -case 8886: -case 8887: -case 8888: -case 8889: -case 8890: -case 8891: -case 8892: -case 8893: -case 8894: -case 8895: -case 8896: -case 8897: -case 8898: -case 8899: -case 8900: -case 8901: -case 8902: -case 8903: -case 8904: -case 8905: -case 8906: -case 8907: -case 8908: -case 8909: -case 8910: -case 8911: -case 8912: -case 8913: -case 8914: -case 8915: -case 8916: -case 8917: -case 8918: -case 8919: -case 8920: -case 8921: -case 8922: -case 8923: -case 8924: -case 8925: -case 8926: -case 8927: -case 8928: -case 8929: -case 8930: -case 8931: -case 8932: -case 8933: -case 8934: -case 8935: -case 8936: -case 8937: -case 8938: -case 8939: -case 8940: -case 8941: -case 8942: -case 8943: -case 8944: -case 8945: -case 8946: -case 8947: -case 8948: -case 8949: -case 8950: -case 8951: -case 8952: -case 8953: -case 8954: -case 8955: -case 8956: -case 8957: -case 8958: -case 8959: -case 8960: -case 8961: -case 8962: -case 8963: -case 8964: -case 8965: -case 8966: -case 8967: -case 8968: -case 8969: -case 8970: -case 8971: -case 8972: -case 8973: -case 8974: -case 8975: -case 8976: -case 8977: -case 8978: -case 8979: -case 8980: -case 8981: -case 8982: -case 8983: -case 8984: -case 8985: -case 8986: -case 8987: -case 8988: -case 8989: -case 8990: -case 8991: -case 8992: -case 8993: -case 8994: -case 8995: -case 8996: -case 8997: -case 8998: -case 8998: // DUPLICATE LABEL - actual += 'a'; -case 8999: - actual += 'b'; -} -expect = 'ab'; -addThis(); - - - -//--------------------------------------------------------------------------------- -test(); -//--------------------------------------------------------------------------------- - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-83532-001.js b/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-83532-001.js deleted file mode 100644 index 8e2bb6b010..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-83532-001.js +++ /dev/null @@ -1,71 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 01 June 2001 - * - * SUMMARY: Testing that we don't crash on switch case -1... - * See http://bugzilla.mozilla.org/show_bug.cgi?id=83532 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-83532-001.js'; -var BUGNUMBER = 83532; -var summary = "Testing that we don't crash on switch case -1"; - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - // Just testing that we don't crash on these - - function f () {switch(1) {case -1:}} - function g(){switch(1){case (-1):}} - var h = function() {switch(1) {case -1:}} - f(); - g(); - h(); - reportCompare('No Crash', 'No Crash', ''); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-83532-002.js b/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-83532-002.js deleted file mode 100644 index 3bd5ce8703..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/regress-83532-002.js +++ /dev/null @@ -1,74 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 01 June 2001 - * - * SUMMARY: Testing that we don't crash on switch case -1... - * See http://bugzilla.mozilla.org/show_bug.cgi?id=83532 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-83532-002.js'; -var BUGNUMBER = 83532; -var summary = "Testing that we don't crash on switch case -1"; -var sToEval = ''; - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - // Just testing that we don't crash on these - - sToEval += 'function f () {switch(1) {case -1:}};'; - sToEval += 'function g(){switch(1){case (-1):}};'; - sToEval += 'var h = function() {switch(1) {case -1:}};' - sToEval += 'f();'; - sToEval += 'g();'; - sToEval += 'h();'; - eval(sToEval); - - reportCompare('No Crash', 'No Crash', ''); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/shell.js b/tests/auto/declarative/parserstress/tests/ecma_3/Statements/shell.js deleted file mode 100644 index 7346f697a5..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/shell.js +++ /dev/null @@ -1 +0,0 @@ -gTestsubsuite = 'Statements'; diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/switch-001.js b/tests/auto/declarative/parserstress/tests/ecma_3/Statements/switch-001.js deleted file mode 100644 index aae6659cc1..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Statements/switch-001.js +++ /dev/null @@ -1,143 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 07 May 2001 - * - * SUMMARY: Testing the switch statement - * - * See ECMA3 Section 12.11, "The switch Statement" - */ -//----------------------------------------------------------------------------- -var gTestfile = 'switch-001.js'; -var UBound = 0; -var BUGNUMBER = '(none)'; -var summary = 'Testing the switch statement'; -var cnMatch = 'Match'; -var cnNoMatch = 'NoMatch'; -var status = ''; -var statusitems = [ ]; -var actual = ''; -var actualvalues = [ ]; -var expect= ''; -var expectedvalues = [ ]; - - -status = 'Section A of test'; -actual = match(17, f(fInverse(17)), f, fInverse); -expect = cnMatch; -addThis(); - -status = 'Section B of test'; -actual = match(17, 18, f, fInverse); -expect = cnNoMatch; -addThis(); - -status = 'Section C of test'; -actual = match(1, 1, Math.exp, Math.log); -expect = cnMatch; -addThis(); - -status = 'Section D of test'; -actual = match(1, 2, Math.exp, Math.log); -expect = cnNoMatch; -addThis(); - -status = 'Section E of test'; -actual = match(1, 1, Math.sin, Math.cos); -expect = cnNoMatch; -addThis(); - - - -//--------------------------------------------------------------------------------- -test(); -//--------------------------------------------------------------------------------- - - - -/* - * If F,G are inverse functions and x==y, this should return cnMatch - - */ -function match(x, y, F, G) -{ - switch (x) - { - case F(G(y)): - return cnMatch; - - default: - return cnNoMatch; - } -} - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} - - -function f(m) -{ - return 2*(m+1); -} - - -function fInverse(n) -{ - return (n-2)/2; -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/String/15.5.4.11.js b/tests/auto/declarative/parserstress/tests/ecma_3/String/15.5.4.11.js deleted file mode 100644 index ef518bb9e5..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/String/15.5.4.11.js +++ /dev/null @@ -1,532 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2008 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * <x00000000@freenet.de> - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '15.5.4.11.js'; -var BUGNUMBER = 392378; -var summary = '15.5.4.11 - String.prototype.replace'; -var rex, f, a, i; - -reportCompare( - 2, - String.prototype.replace.length, - "Section 1" -); - -reportCompare( - "321", - String.prototype.replace.call(123, "123", "321"), - "Section 2" -); - -reportCompare( - "ok", - "ok".replace(), - "Section 3" -); - -reportCompare( - "undefined**", - "***".replace("*"), - "Section 4" -); - -reportCompare( - "xnullz", - "xyz".replace("y", null), - "Section 5" -); - -reportCompare( - "x123", - "xyz".replace("yz", 123), - "Section 6" -); - -reportCompare( - "/x/g/x/g/x/g", - "xxx".replace(/x/g, /x/g), - "Section 7" -); - -reportCompare( - "ok", - "undefined".replace(undefined, "ok"), - "Section 8" -); - -reportCompare( - "ok", - "null".replace(null, "ok"), - "Section 9" -); - -reportCompare( - "ok", - "123".replace(123, "ok"), - "Section 10" -); - -reportCompare( - "xzyxyz", - "xyzxyz".replace("yz", "zy"), - "Section 11" -); - -reportCompare( - "ok", - "(xyz)".replace("(xyz)", "ok"), - "Section 12" -); - -reportCompare( - "*$&yzxyz", - "xyzxyz".replace("x", "*$$&"), - "Section 13" -); - -reportCompare( - "xy*z*", - "xyz".replace("z", "*$&*"), - "Section 14" -); - -reportCompare( - "xyxyzxyz", - "xyzxyzxyz".replace("zxy", "$`"), - "Section 15" -); - -reportCompare( - "zxyzxyzzxyz", - "xyzxyz".replace("xy", "$'xyz"), - "Section 16" -); - -reportCompare( - "$", - "xyzxyz".replace("xyzxyz", "$"), - "Section 17" -); - -reportCompare( - "x$0$00xyz", - "xyzxyz".replace("yz", "$0$00"), - "Section 18" -); - -// Result for $1/$01 .. $99 is implementation-defined if searchValue is no -// regular expression. $+ is a non-standard Mozilla extension. - -reportCompare( - "$!$\"$-1$*$#$.$xyz$$", - "xyzxyz$$".replace("xyz", "$!$\"$-1$*$#$.$"), - "Section 19" -); - -reportCompare( - "$$$&$$$&$&", - "$$$&".replace("$$", "$$$$$$&$&$$&"), - "Section 20" -); - -reportCompare( - "yxx", - "xxx".replace(/x/, "y"), - "Section 21" -); - -reportCompare( - "yyy", - "xxx".replace(/x/g, "y"), - "Section 22" -); - -rex = /x/, rex.lastIndex = 1; -reportCompare( - "yxx1", - "xxx".replace(rex, "y") + rex.lastIndex, - "Section 23" -); - -rex = /x/g, rex.lastIndex = 1; -reportCompare( - "yyy0", - "xxx".replace(rex, "y") + rex.lastIndex, - "Section 24" -); - -rex = /y/, rex.lastIndex = 1; -reportCompare( - "xxx1", - "xxx".replace(rex, "y") + rex.lastIndex, - "Section 25" -); - -rex = /y/g, rex.lastIndex = 1; -reportCompare( - "xxx0", - "xxx".replace(rex, "y") + rex.lastIndex, - "Section 26" -); - -rex = /x?/, rex.lastIndex = 1; -reportCompare( - "(x)xx1", - "xxx".replace(rex, "($&)") + rex.lastIndex, - "Section 27" -); - -rex = /x?/g, rex.lastIndex = 1; -reportCompare( - "(x)(x)(x)()0", - "xxx".replace(rex, "($&)") + rex.lastIndex, - "Section 28" -); - -rex = /y?/, rex.lastIndex = 1; -reportCompare( - "()xxx1", - "xxx".replace(rex, "($&)") + rex.lastIndex, - "Section 29" -); - -rex = /y?/g, rex.lastIndex = 1; -reportCompare( - "()x()x()x()0", - "xxx".replace(rex, "($&)") + rex.lastIndex, - "Section 30" -); - -reportCompare( - "xy$0xy$zxy$zxyz$zxyz", - "xyzxyzxyz".replace(/zxy/, "$0$`$$$&$$$'$"), - "Section 31" -); - -reportCompare( - "xy$0xy$zxy$zxyz$$0xyzxy$zxy$z$z", - "xyzxyzxyz".replace(/zxy/g, "$0$`$$$&$$$'$"), - "Section 32" -); - -reportCompare( - "xyxyxyzxyxyxyz", - "xyzxyz".replace(/(((x)(y)()()))()()()(z)/g, "$01$2$3$04$5$6$7$8$09$10"), - "Section 33" -); - -rex = RegExp( - "()()()()()()()()()()" + - "()()()()()()()()()()" + - "()()()()()()()()()()" + - "()()()()()()()()()()" + - "()()()()()()()()()()" + - "()()()()()()()()()()" + - "()()()()()()()()()()" + - "()()()()()()()()()()" + - "()()()()()()()()()()" + - "()()()()()()()()(y)"); -reportCompare( - "x(y)z", - "xyz".replace(rex, "($99)"), - "Section 34" -); - -rex = RegExp( - "()()()()()()()()()(x)" + - "()()()()()()()()()()" + - "()()()()()()()()()()" + - "()()()()()()()()()()" + - "()()()()()()()()()()" + - "()()()()()()()()()()" + - "()()()()()()()()()()" + - "()()()()()()()()()()" + - "()()()()()()()()()()" + - "()()()()()()()()()(y)"); -reportCompare( - "(x0)z", - "xyz".replace(rex, "($100)"), - "Section 35" -); - -reportCompare( - "xyz(XYZ)", - "xyzXYZ".replace(/XYZ/g, "($&)"), - "Section 36" -); - -reportCompare( - "(xyz)(XYZ)", - "xyzXYZ".replace(/xYz/gi, "($&)"), - "Section 37" -); - -reportCompare( - "xyz\rxyz\n", - "xyz\rxyz\n".replace(/xyz$/g, "($&)"), - "Section 38" -); - -reportCompare( - "(xyz)\r(xyz)\n", - "xyz\rxyz\n".replace(/xyz$/gm, "($&)"), - "Section 39" -); - -f = function () { return "failure" }; - -reportCompare( - "ok", - "ok".replace("x", f), - "Section 40" -); - -reportCompare( - "ok", - "ok".replace(/(?=k)ok/, f), - "Section 41" -); - -reportCompare( - "ok", - "ok".replace(/(?!)ok/, f), - "Section 42" -); - -reportCompare( - "ok", - "ok".replace(/ok(?!$)/, f), - "Section 43" -); - -f = function (sub, offs, str) { - return ["", sub, typeof sub, offs, typeof offs, str, typeof str, ""] - .join("|"); -}; - -reportCompare( - "x|y|string|1|number|xyz|string|z", - "xyz".replace("y", f), - "Section 44" -); - -reportCompare( - "x|(y)|string|1|number|x(y)z|string|z", - "x(y)z".replace("(y)", f), - "Section 45" -); - -reportCompare( - "x|y*|string|1|number|xy*z|string|z", - "xy*z".replace("y*", f), - "Section 46" -); - -reportCompare( - "12|3|string|2|number|12345|string|45", - String.prototype.replace.call(1.2345e4, 3, f), - "Section 47" -); - -reportCompare( - "|x|string|0|number|xxx|string|xx", - "xxx".replace(/^x/g, f), - "Section 48" -); - -reportCompare( - "xx|x|string|2|number|xxx|string|", - "xxx".replace(/x$/g, f), - "Section 49" -); - -f = function (sub, paren, offs, str) { - return ["", sub, typeof sub, paren, typeof paren, offs, typeof offs, - str, typeof str, ""].join("|"); -}; - -reportCompare( - "xy|z|string|z|string|2|number|xyz|string|", - "xyz".replace(/(z)/g, f), - "Section 50" -); - -reportCompare( - "xyz||string||string|3|number|xyz|string|", - "xyz".replace(/($)/g, f), - "Section 51" -); - -reportCompare( - "|xy|string|y|string|0|number|xyz|string|z", - "xyz".replace(/(?:x)(y)/g, f), - "Section 52" -); - -reportCompare( - "|x|string|x|string|0|number|xyz|string|yz", - "xyz".replace(/((?=xy)x)/g, f), - "Section 53" -); - -reportCompare( - "|x|string|x|string|0|number|xyz|string|yz", - "xyz".replace(/(x(?=y))/g, f), - "Section 54" -); - -reportCompare( - "x|y|string|y|string|1|number|xyz|string|z", - "xyz".replace(/((?!x)y)/g, f), - "Section 55" -); - -reportCompare( - "|x|string|x|string|0|number|xyz|string|" + - "|y|string||undefined|1|number|xyz|string|z", - "xyz".replace(/y|(x)/g, f), - "Section 56" -); - -reportCompare( - "xy|z|string||string|2|number|xyz|string|", - "xyz".replace(/(z?)z/, f), - "Section 57" -); - -reportCompare( - "xy|z|string||undefined|2|number|xyz|string|", - "xyz".replace(/(z)?z/, f), - "Section 58" -); - -reportCompare( - "xy|z|string||undefined|2|number|xyz|string|", - "xyz".replace(/(z)?\1z/, f), - "Section 59" -); - -reportCompare( - "xy|z|string||undefined|2|number|xyz|string|", - "xyz".replace(/\1(z)?z/, f), - "Section 60" -); - -reportCompare( - "xy|z|string||string|2|number|xyz|string|", - "xyz".replace(/(z?\1)z/, f), - "Section 61" -); - -f = function (sub, paren1, paren2, offs, str) { - return ["", sub, typeof sub, paren1, typeof paren1, paren2, typeof paren2, - offs, typeof offs, str, typeof str, ""].join("|"); -}; - -reportCompare( - "x|y|string|y|string||undefined|1|number|xyz|string|z", - "xyz".replace(/(y)(\1)?/, f), - "Section 62" -); - -reportCompare( - "x|yy|string|y|string|y|string|1|number|xyyz|string|z", - "xyyz".replace(/(y)(\1)?/g, f), - "Section 63" -); - -reportCompare( - "x|y|string|y|string||undefined|1|number|xyyz|string|" + - "|y|string|y|string||undefined|2|number|xyyz|string|z", - "xyyz".replace(/(y)(\1)??/g, f), - "Section 64" -); - -reportCompare( - "x|y|string|y|string|y|string|1|number|xyz|string|z", - "xyz".replace(/(?=(y))(\1)?/, f), - "Section 65" -); - -reportCompare( - "xyy|z|string||undefined||string|3|number|xyyz|string|", - "xyyz".replace(/(?!(y)y)(\1)z/, f), - "Section 66" -); - -rex = RegExp( - "()()()()()()()()()()" + - "()()()()()()()()()()" + - "()()()()()()()()()()" + - "()()()()()()()()()()" + - "()()()()()()()()()()" + - "()()()()()()()()()()" + - "()()()()()()()()()()" + - "()()()()()()()()()()" + - "()()()()()()()()()()" + - "()()()()()()()()()()(z)?(y)"); -a = ["sub"]; -for (i = 1; i <= 102; ++i) - a[i] = "p" + i; -a[103] = "offs"; -a[104] = "str"; -a[105] = "return ['', sub, typeof sub, offs, typeof offs, str, typeof str, " + - "p100, typeof p100, p101, typeof p101, p102, typeof p102, ''].join('|');"; -f = Function.apply(null, a); -reportCompare( - "x|y|string|1|number|xyz|string||string||undefined|y|string|z", - "xyz".replace(rex, f), - "Section 67" -); - -reportCompare( - "undefined", - "".replace(/.*/g, function () {}), - "Section 68" -); - -reportCompare( - "nullxnullynullznull", - "xyz".replace(/.??/g, function () { return null; }), - "Section 69" -); - -reportCompare( - "111", - "xyz".replace(/./g, function () { return 1; }), - "Section 70" -); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/String/15.5.4.14.js b/tests/auto/declarative/parserstress/tests/ecma_3/String/15.5.4.14.js deleted file mode 100644 index aa6c7354c2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/String/15.5.4.14.js +++ /dev/null @@ -1,50 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Karsten Sperling <spiff@phreax.net> - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '15.5.4.14.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 287630; -var summary = '15.5.4.14 - String.prototype.split(/()/)'; -var actual = ''; -var expect = ['a'].toString(); - -printBugNumber(BUGNUMBER); -printStatus (summary); - -actual = 'a'.split(/()/).toString(); - -reportCompare(expect, actual, summary); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/String/browser.js b/tests/auto/declarative/parserstress/tests/ecma_3/String/browser.js deleted file mode 100644 index e69de29bb2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/String/browser.js +++ /dev/null diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/String/regress-104375.js b/tests/auto/declarative/parserstress/tests/ecma_3/String/regress-104375.js deleted file mode 100644 index c5593948d7..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/String/regress-104375.js +++ /dev/null @@ -1,116 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * k.mike@gmx.net, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 12 October 2001 - * - * SUMMARY: Regression test for string.replace bug 104375 - * See http://bugzilla.mozilla.org/show_bug.cgi?id=104375 - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-104375.js'; -var UBound = 0; -var BUGNUMBER = 104375; -var summary = 'Testing string.replace() with backreferences'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -/* - * Use the regexp to replace 'uid=31' with 'uid=15' - * - * In the second parameter of string.replace() method, - * "$1" refers to the first backreference: 'uid=' - */ -var str = 'uid=31'; -var re = /(uid=)(\d+)/; - -// try the numeric literal 15 -status = inSection(1); -actual = str.replace (re, "$1" + 15); -expect = 'uid=15'; -addThis(); - -// try the string literal '15' -status = inSection(2); -actual = str.replace (re, "$1" + '15'); -expect = 'uid=15'; -addThis(); - -// try a letter before the '15' -status = inSection(3); -actual = str.replace (re, "$1" + 'A15'); -expect = 'uid=A15'; -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} - - diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/String/regress-189898.js b/tests/auto/declarative/parserstress/tests/ecma_3/String/regress-189898.js deleted file mode 100644 index c75c081513..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/String/regress-189898.js +++ /dev/null @@ -1,157 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * igor@icesoft.no, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 21 January 2003 - * SUMMARY: Regression test for bug 189898 - * See http://bugzilla.mozilla.org/show_bug.cgi?id=189898 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-189898.js'; -var UBound = 0; -var BUGNUMBER = 189898; -var summary = 'Regression test for bug 189898'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -status = inSection(1); -actual = 'XaXY'.replace('XY', '--') - expect = 'Xa--'; -addThis(); - -status = inSection(2); -actual = '$a$^'.replace('$^', '--') - expect = '$a--'; -addThis(); - -status = inSection(3); -actual = 'ababc'.replace('abc', '--') - expect = 'ab--'; -addThis(); - -status = inSection(4); -actual = 'ababc'.replace('abc', '^$') - expect = 'ab^$'; -addThis(); - - - -/* - * Same as above, but providing a regexp in the first parameter - * to String.prototype.replace() instead of a string. - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=83293 - * for subtleties on this issue - - */ -status = inSection(5); -actual = 'XaXY'.replace(/XY/, '--') - expect = 'Xa--'; -addThis(); - -status = inSection(6); -actual = 'XaXY'.replace(/XY/g, '--') - expect = 'Xa--'; -addThis(); - -status = inSection(7); -actual = '$a$^'.replace(/\$\^/, '--') - expect = '$a--'; -addThis(); - -status = inSection(8); -actual = '$a$^'.replace(/\$\^/g, '--') - expect = '$a--'; -addThis(); - -status = inSection(9); -actual = 'ababc'.replace(/abc/, '--') - expect = 'ab--'; -addThis(); - -status = inSection(10); -actual = 'ababc'.replace(/abc/g, '--') - expect = 'ab--'; -addThis(); - -status = inSection(11); -actual = 'ababc'.replace(/abc/, '^$') - expect = 'ab^$'; -addThis(); - -status = inSection(12); -actual = 'ababc'.replace(/abc/g, '^$') - expect = 'ab^$'; -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/String/regress-304376.js b/tests/auto/declarative/parserstress/tests/ecma_3/String/regress-304376.js deleted file mode 100755 index 733cd713d8..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/String/regress-304376.js +++ /dev/null @@ -1,68 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Blake Kaplan - * timeless - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-304376.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 304376; -var summary = 'String.prototype should be readonly and permanent'; -var actual = ''; -var expect = ''; -printBugNumber(BUGNUMBER); -printStatus (summary); - -expect = 'TypeError'; - -var saveString = String; - -String = Array; - -try -{ - // see if we can crash... - "".join(); - String = saveString; - actual = 'No Error'; -} -catch(ex) -{ - String = saveString; - actual = ex.name; - printStatus(ex + ''); -} - -reportCompare(expect, actual, summary); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/String/regress-313567.js b/tests/auto/declarative/parserstress/tests/ecma_3/String/regress-313567.js deleted file mode 100755 index 9610238cc3..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/String/regress-313567.js +++ /dev/null @@ -1,56 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Igor Bukanov - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-313567.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 313567; -var summary = 'String.prototype.length should not be generic'; -var actual = ''; -var expect = ''; - -printBugNumber(BUGNUMBER); -printStatus (summary); - -var s = new String("1"); -s.toString = function() { - return "22"; -} - var expect = 1; -var actual = s.length; -printStatus("expect="+expect+" actual="+actual); - -reportCompare(expect, actual, summary); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/String/regress-392378.js b/tests/auto/declarative/parserstress/tests/ecma_3/String/regress-392378.js deleted file mode 100755 index 368fde1278..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/String/regress-392378.js +++ /dev/null @@ -1,77 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-392378.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 392378; -var summary = 'Regular Expression Non-participating Capture Groups are inaccurate in edge cases'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - expect = ["", undefined, ""] + ''; - actual = "y".split(/(x)?\1y/) + ''; - reportCompare(expect, actual, summary + ': "y".split(/(x)?\1y/)'); - - expect = ["", undefined, ""] + ''; - actual = "y".split(/(x)?y/) + ''; - reportCompare(expect, actual, summary + ': "y".split(/(x)?y/)'); - - expect = 'undefined'; - actual = "y".replace(/(x)?\1y/, function($0, $1){ return String($1); }) + ''; - reportCompare(expect, actual, summary + ': "y".replace(/(x)?\\1y/, function($0, $1){ return String($1); })'); - - expect = 'undefined'; - actual = "y".replace(/(x)?y/, function($0, $1){ return String($1); }) + ''; - reportCompare(expect, actual, summary + ': "y".replace(/(x)?y/, function($0, $1){ return String($1); })'); - - expect = 'undefined'; - actual = "y".replace(/(x)?y/, function($0, $1){ return $1; }) + ''; - reportCompare(expect, actual, summary + ': "y".replace(/(x)?y/, function($0, $1){ return $1; })'); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/String/regress-83293.js b/tests/auto/declarative/parserstress/tests/ecma_3/String/regress-83293.js deleted file mode 100644 index 55e74d4dd5..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/String/regress-83293.js +++ /dev/null @@ -1,216 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com, jim@jibbering.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-83293.js'; - -/* - * Creation Date: 30 May 2001 - * Correction Date: 14 Aug 2001 - * - * SUMMARY: Regression test for bugs 83293, 103351 - * See http://bugzilla.mozilla.org/show_bug.cgi?id=83293 - * http://bugzilla.mozilla.org/show_bug.cgi?id=103351 - * http://bugzilla.mozilla.org/show_bug.cgi?id=92942 - * - * - * ******************** CORRECTION !!! ***************************** - * - * When I originally wrote this test, I thought this was true: - * str.replace(strA, strB) == str.replace(new RegExp(strA),strB). - * See ECMA-262 Final Draft, 15.5.4.11 String.prototype.replace - * - * However, in http://bugzilla.mozilla.org/show_bug.cgi?id=83293 - * Jim Ley points out the ECMA-262 Final Edition changed on this. - * String.prototype.replace (searchValue, replaceValue), if provided - * a searchValue that is not a RegExp, is NO LONGER to replace it with - * - * new RegExp(searchValue) - * but rather: - * String(searchValue) - * - * This puts the replace() method at variance with search() and match(), - * which continue to follow the RegExp conversion of the Final Draft. - * It also makes most of this testcase, as originally written, invalid. - ********************************************************************** - */ - -//----------------------------------------------------------------------------- -var BUGNUMBER = 103351; // <--- (Outgrowth of original bug 83293) -var summ_OLD = 'Testing str.replace(strA, strB) == str.replace(new RegExp(strA),strB)'; -var summ_NEW = 'Testing String.prototype.replace(x,y) when x is a string'; -var summary = summ_NEW; -var status = ''; -var actual = ''; -var expect= ''; -var cnEmptyString = ''; -var str = 'abc'; -var strA = cnEmptyString; -var strB = 'Z'; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - -/* - * In this test, it's important to reportCompare() each other case - * BEFORE the last two cases are attempted. Don't store all results - * in an array and reportCompare() them at the end, as we usually do. - * - * When this bug was filed, str.replace(strA, strB) would return no value - * whatsoever if strA == cnEmptyString, and no error, either - - */ -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - -/******************* THESE WERE INCORRECT; SEE ABOVE ************************ - status = 'Section A of test'; - strA = 'a'; - actual = str.replace(strA, strB); - expect = str.replace(new RegExp(strA), strB); - reportCompare(expect, actual, status); - - status = 'Section B of test'; - strA = 'x'; - actual = str.replace(strA, strB); - expect = str.replace(new RegExp(strA), strB); - reportCompare(expect, actual, status); - - status = 'Section C of test'; - strA = undefined; - actual = str.replace(strA, strB); - expect = str.replace(new RegExp(strA), strB); - reportCompare(expect, actual, status); - - status = 'Section D of test'; - strA = null; - actual = str.replace(strA, strB); - expect = str.replace(new RegExp(strA), strB); - reportCompare(expect, actual, status); - - - * This example is from jim@jibbering.com (see Bugzilla bug 92942) - * It is a variation on the example below. - * - * Namely, we are using the regexp /$/ instead of the regexp //. - * The regexp /$/ means we should match the "empty string" at the - * end-boundary of the word, instead of the one at the beginning. - * - status = 'Section E of test'; - var strJim = 'aa$aa'; - strA = '$'; - actual = strJim.replace(strA, strB); // bug -> 'aaZaa' - expect = strJim.replace(new RegExp(strA), strB); // expect 'aa$aaZ' - reportCompare(expect, actual, status); - - - * - * Note: 'Zabc' is the result we expect for 'abc'.replace('', 'Z'). - * - * The string '' is supposed to be equivalent to new RegExp('') = //. - * The regexp // means we should match the "empty string" conceived of - * at the beginning boundary of the word, before the first character. - * - status = 'Section F of test'; - strA = cnEmptyString; - actual = str.replace(strA, strB); - expect = 'Zabc'; - reportCompare(expect, actual, status); - - status = 'Section G of test'; - strA = cnEmptyString; - actual = str.replace(strA, strB); - expect = str.replace(new RegExp(strA), strB); - reportCompare(expect, actual, status); - - ************************* END OF INCORRECT CASES ****************************/ - - -////////////////////////// OK, LET'S START OVER ////////////////////////////// - - status = 'Section 1 of test'; - actual = 'abc'.replace('a', 'Z'); - expect = 'Zbc'; - reportCompare(expect, actual, status); - - status = 'Section 2 of test'; - actual = 'abc'.replace('b', 'Z'); - expect = 'aZc'; - reportCompare(expect, actual, status); - - status = 'Section 3 of test'; - actual = 'abc'.replace(undefined, 'Z'); - expect = 'abc'; // String(undefined) == 'undefined'; no replacement possible - reportCompare(expect, actual, status); - - status = 'Section 4 of test'; - actual = 'abc'.replace(null, 'Z'); - expect = 'abc'; // String(null) == 'null'; no replacement possible - reportCompare(expect, actual, status); - - status = 'Section 5 of test'; - actual = 'abc'.replace(true, 'Z'); - expect = 'abc'; // String(true) == 'true'; no replacement possible - reportCompare(expect, actual, status); - - status = 'Section 6 of test'; - actual = 'abc'.replace(false, 'Z'); - expect = 'abc'; // String(false) == 'false'; no replacement possible - reportCompare(expect, actual, status); - - status = 'Section 7 of test'; - actual = 'aa$aa'.replace('$', 'Z'); - expect = 'aaZaa'; // NOT 'aa$aaZ' as in ECMA Final Draft; see above - reportCompare(expect, actual, status); - - status = 'Section 8 of test'; - actual = 'abc'.replace('.*', 'Z'); - expect = 'abc'; // not 'Z' as in EMCA Final Draft - reportCompare(expect, actual, status); - - status = 'Section 9 of test'; - actual = 'abc'.replace('', 'Z'); - expect = 'Zabc'; // Still expect 'Zabc' for this - reportCompare(expect, actual, status); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/String/shell.js b/tests/auto/declarative/parserstress/tests/ecma_3/String/shell.js deleted file mode 100644 index 7d850446cc..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/String/shell.js +++ /dev/null @@ -1 +0,0 @@ -gTestsubsuite = 'String'; diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/browser.js b/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/browser.js deleted file mode 100644 index e69de29bb2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/browser.js +++ /dev/null diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/regress-352044-01.js b/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/regress-352044-01.js deleted file mode 100755 index bb10ac6f7a..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/regress-352044-01.js +++ /dev/null @@ -1,72 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Martin Honnen - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-352044-01.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 352044; -var summary = 'issues with Unicode escape sequences in JavaScript source code'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - expect = 'SyntaxError: illegal character'; - - try - { - var i = 1; - eval('i \\u002b= 1'); - print(i); - } - catch(ex) - { - actual = ex + ''; - } - - reportCompare(expect, actual, summary); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/regress-352044-02-n.js b/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/regress-352044-02-n.js deleted file mode 100755 index 0e3c4b0189..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/regress-352044-02-n.js +++ /dev/null @@ -1,72 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Martin Honnen - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-352044-02-n.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 352044; -var summary = 'issues with Unicode escape sequences in JavaScript source code'; -var actual = 'No Error'; -var expect = 'SyntaxError'; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - print('This test case is expected to throw an uncaught SyntaxError'); - - try - { - var i = 1; - i \u002b= 1; - print(i); - } - catch(ex) - { - actual = ex + ''; - } - - reportCompare(expect, actual, summary); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/shell.js b/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/shell.js deleted file mode 100644 index 97a64fe83d..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/shell.js +++ /dev/null @@ -1 +0,0 @@ -gTestsubsuite = 'Unicode'; diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/uc-001-n.js b/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/uc-001-n.js deleted file mode 100644 index 31a13f70e2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/uc-001-n.js +++ /dev/null @@ -1,62 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Rob Ginda rginda@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'uc-001-n.js'; - -test(); - -function test() -{ - enterFunc ("test"); - - printStatus ("Unicode Characters 1C-1F negative test."); - printBugNumber (23612); - - reportCompare ("error", eval ("'no'\u001C+' error'"), - "Unicode whitespace test (1C.)"); - reportCompare ("error", eval ("'no'\u001D+' error'"), - "Unicode whitespace test (1D.)"); - reportCompare ("error", eval ("'no'\u001E+' error'"), - "Unicode whitespace test (1E.)"); - reportCompare ("error", eval ("'no'\u001F+' error'"), - "Unicode whitespace test (1F.)"); - - exitFunc ("test"); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/uc-001.js b/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/uc-001.js deleted file mode 100644 index 3fc0c8d927..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/uc-001.js +++ /dev/null @@ -1,56 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Rob Ginda rginda@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'uc-001.js'; - -test(); - -function test() -{ - enterFunc ("test"); - - printStatus ("Unicode format-control character (Category Cf) test."); - printBugNumber (23610); - - reportCompare ("no error", eval('"no\u200E error"'), - "Unicode format-control character test (Category Cf.)"); - - exitFunc ("test"); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/uc-002-n.js b/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/uc-002-n.js deleted file mode 100644 index f1ae9a749d..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/uc-002-n.js +++ /dev/null @@ -1,55 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Rob Ginda rginda@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'uc-002-n.js'; - -DESCRIPTION = "Non-character escapes in identifiers negative test."; -EXPECTED = "error"; - -enterFunc ("test"); - -printStatus ("Non-character escapes in identifiers negative test."); -printBugNumber (23607); - -eval("\u0020 = 5"); -reportCompare('PASS', 'FAIL', "Previous statement should have thrown an error."); - -exitFunc ("test"); - diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/uc-002.js b/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/uc-002.js deleted file mode 100644 index d19b2c4786..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/uc-002.js +++ /dev/null @@ -1,60 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Rob Ginda rginda@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'uc-002.js'; - -test(); - -function test() -{ - enterFunc ("test"); - - printStatus ("Unicode non-breaking space character test."); - printBugNumber (23613); - - reportCompare ("no error", eval("'no'\u00A0+ ' error'"), - "Unicode non-breaking space character test."); - - var str = "\u00A0foo"; - reportCompare (0, str.search(/^\sfoo$/), - "Unicode non-breaking space character regexp test."); - - exitFunc ("test"); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/uc-003.js b/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/uc-003.js deleted file mode 100644 index 66c3f09860..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/uc-003.js +++ /dev/null @@ -1,71 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Rob Ginda rginda@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'uc-003.js'; - -test(); - -function test() -{ - enterFunc ("test"); - - var \u0041 = 5; - var A\u03B2 = 15; - var c\u0061se = 25; - - printStatus ("Escapes in identifiers test."); - printBugNumber (23608); - printBugNumber (23607); - - reportCompare (5, eval("\u0041"), - "Escaped ASCII Identifier test."); - reportCompare (6, eval("++\u0041"), - "Escaped ASCII Identifier test"); - reportCompare (15, eval("A\u03B2"), - "Escaped non-ASCII Identifier test"); - reportCompare (16, eval("++A\u03B2"), - "Escaped non-ASCII Identifier test"); - reportCompare (25, eval("c\\u00" + "61se"), - "Escaped keyword Identifier test"); - reportCompare (26, eval("++c\\u00" + "61se"), - "Escaped keyword Identifier test"); - - exitFunc ("test"); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/uc-004.js b/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/uc-004.js deleted file mode 100644 index a54923c525..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/uc-004.js +++ /dev/null @@ -1,65 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Rob Ginda rginda@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'uc-004.js'; - -test(); - -function test() -{ - enterFunc ("test"); - - printStatus ("Unicode Characters 1C-1F with regexps test."); - printBugNumber (23612); - - var ary = ["\u001Cfoo", "\u001Dfoo", "\u001Efoo", "\u001Ffoo"]; - - for (var i in ary) - { - reportCompare (0, ary[Number(i)].search(/^\Sfoo$/), - "Unicode characters 1C-1F in regexps, ary[" + - i + "] did not match \\S test (it should not.)"); - reportCompare (-1, ary[Number(i)].search(/^\sfoo$/), - "Unicode characters 1C-1F in regexps, ary[" + - i + "] matched \\s test (it should not.)"); - } - - exitFunc ("test"); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/uc-005.js b/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/uc-005.js deleted file mode 100644 index 3727042046..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Unicode/uc-005.js +++ /dev/null @@ -1,276 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * rogerl@netscape.com, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 15 July 2002 - * SUMMARY: Testing identifiers with double-byte names - * See http://bugzilla.mozilla.org/show_bug.cgi?id=58274 - * - * Here is a sample of the problem: - * - * js> function f\u02B1 () {} - * - * js> f\u02B1.toSource(); - * function f¦() {} - * - * js> f\u02B1.toSource().toSource(); - * (new String("function f\xB1() {}")) - * - * - * See how the high-byte information (the 02) has been lost? - * The same thing was happening with the toString() method: - * - * js> f\u02B1.toString(); - * - * function f¦() { - * } - * - * js> f\u02B1.toString().toSource(); - * (new String("\nfunction f\xB1() {\n}\n")) - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'uc-005.js'; -var UBound = 0; -var BUGNUMBER = 58274; -var summary = 'Testing identifiers with double-byte names'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -/* - * Define a function that uses double-byte identifiers in - * "every possible way" - * - * Then recover each double-byte identifier via f.toString(). - * To make this easier, put a 'Z' token before every one. - * - * Our eval string will be: - * - * sEval = "function Z\u02b1(Z\u02b2, b) { - * try { Z\u02b3 : var Z\u02b4 = Z\u02b1; } - * catch (Z\u02b5) { for (var Z\u02b6 in Z\u02b5) - * {for (1; 1<0; Z\u02b7++) {new Array()[Z\u02b6] = 1;} };} }"; - * - * It will be helpful to build this string in stages: - */ -var s0 = 'function Z'; -var s1 = '\u02b1(Z'; -var s2 = '\u02b2, b) {try { Z'; -var s3 = '\u02b3 : var Z'; -var s4 = '\u02b4 = Z'; -var s5 = '\u02b1; } catch (Z' - var s6 = '\u02b5) { for (var Z'; -var s7 = '\u02b6 in Z'; -var s8 = '\u02b5){for (1; 1<0; Z'; -var s9 = '\u02b7++) {new Array()[Z'; -var s10 = '\u02b6] = 1;} };} }'; - - -/* - * Concatenate these and eval() to create the function Z\u02b1 - */ -var sEval = s0 + s1 + s2 + s3 + s4 + s5 + s6 + s7 + s8 + s9 + s10; -eval(sEval); - - -/* - * Recover all the double-byte identifiers via Z\u02b1.toString(). - * We'll recover the 1st one as arrID[1], the 2nd one as arrID[2], - * and so on ... - */ -var arrID = getIdentifiers(Z\u02b1); - - -/* - * Now check that we got back what we put in - - */ -status = inSection(1); -actual = arrID[1]; -expect = s1.charAt(0); -addThis(); - -status = inSection(2); -actual = arrID[2]; -expect = s2.charAt(0); -addThis(); - -status = inSection(3); -actual = arrID[3]; -expect = s3.charAt(0); -addThis(); - -status = inSection(4); -actual = arrID[4]; -expect = s4.charAt(0); -addThis(); - -status = inSection(5); -actual = arrID[5]; -expect = s5.charAt(0); -addThis(); - -status = inSection(6); -actual = arrID[6]; -expect = s6.charAt(0); -addThis(); - -status = inSection(7); -actual = arrID[7]; -expect = s7.charAt(0); -addThis(); - -status = inSection(8); -actual = arrID[8]; -expect = s8.charAt(0); -addThis(); - -status = inSection(9); -actual = arrID[9]; -expect = s9.charAt(0); -addThis(); - -status = inSection(10); -actual = arrID[10]; -expect = s10.charAt(0); -addThis(); - - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -/* - * Goal: recover the double-byte identifiers from f.toString() - * by getting the very next character after each 'Z' token. - * - * The return value will be an array |arr| indexed such that - * |arr[1]| is the 1st identifier, |arr[2]| the 2nd, and so on. - * - * Note, however, f.toString() is implementation-independent. - * For example, it may begin with '\nfunction' instead of 'function'. - * - * Rhino uses a Unicode representation for f.toString(); whereas - * SpiderMonkey uses an ASCII representation, putting escape sequences - * for non-ASCII characters. For example, if a function is called f\u02B1, - * then in Rhino the toString() method will present a 2-character Unicode - * string for its name, whereas SpiderMonkey will present a 7-character - * ASCII string for its name: the string literal 'f\u02B1'. - * - * So we force the lexer to condense the string before we use it. - * This will give uniform results in Rhino and SpiderMonkey. - */ -function getIdentifiers(f) -{ - var str = condenseStr(f.toString()); - var arr = str.split('Z'); - - /* - * The identifiers are the 1st char of each split substring - * EXCEPT the first one, which is just ('\n' +) 'function '. - * - * Thus note the 1st identifier will be stored in |arr[1]|, - * the 2nd one in |arr[2]|, etc., making the indexing easy - - */ - for (i in arr) - arr[i] = arr[i].charAt(0); - return arr; -} - - -/* - * This function is the opposite of a functions like escape(), which take - * Unicode characters and return escape sequences for them. Here, we force - * the lexer to turn escape sequences back into single characters. - * - * Note we can't simply do |eval(str)|, since in practice |str| will be an - * identifier somewhere in the program (e.g. a function name); thus |eval(str)| - * would return the object that the identifier represents: not what we want. - * - * So we surround |str| lexicographically with quotes to force the lexer to - * evaluate it as a string. Have to strip out any linefeeds first, however - - */ -function condenseStr(str) -{ - /* - * You won't be able to do the next step if |str| has - * any carriage returns or linefeeds in it. For example: - * - * js> eval("'" + '\nHello' + "'"); - * 1: SyntaxError: unterminated string literal: - * 1: ' - * 1: ^ - * - * So replace them with the empty string - - */ - str = str.replace(/[\r\n]/g, '') - return eval("'" + str + "'") - } - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/browser.js b/tests/auto/declarative/parserstress/tests/ecma_3/browser.js deleted file mode 100755 index 2339522cb6..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/browser.js +++ /dev/null @@ -1,36 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/10.1.3-2.js b/tests/auto/declarative/parserstress/tests/ecma_3/extensions/10.1.3-2.js deleted file mode 100755 index f941cb7800..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/10.1.3-2.js +++ /dev/null @@ -1,162 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 11 Feb 2002 - * SUMMARY: Testing functions having duplicate formal parameter names - * - * SpiderMonkey was crashing on each case below if the parameters had - * the same name. But duplicate parameter names are permitted by ECMA; - * see ECMA-262 3rd Edition Final Section 10.1.3 - * - * NOTE: Rhino does not have toSource() and uneval(); they are non-ECMA - * extensions to the language. So we include a test for them at the beginning - - */ -//----------------------------------------------------------------------------- -var gTestfile = '10.1.3-2.js'; -var UBound = 0; -var BUGNUMBER = '(none)'; -var summary = 'Testing functions having duplicate formal parameter names'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; -var OBJ = new Object(); -var OBJ_TYPE = OBJ.toString(); - -/* - * Exit if the implementation doesn't support toSource() or uneval(), - * since these are non-ECMA extensions to the language - - */ -try -{ - if (!OBJ.toSource || !uneval(OBJ)) - quit(); -} -catch(e) -{ - quit(); -} - - -/* - * OK, now begin the test. Just checking that we don't crash on these - - */ -function f1(x,x,x,x) -{ - var ret = eval(arguments.toSource()); - return ret.toString(); -} -status = inSection(1); -actual = f1(1,2,3,4); -expect = OBJ_TYPE; -addThis(); - - -/* - * Same thing, but preface |arguments| with the function name - */ -function f2(x,x,x,x) -{ - var ret = eval(f2.arguments.toSource()); - return ret.toString(); -} -status = inSection(2); -actual = f2(1,2,3,4); -expect = OBJ_TYPE; -addThis(); - - -function f3(x,x,x,x) -{ - var ret = eval(uneval(arguments)); - return ret.toString(); -} -status = inSection(3); -actual = f3(1,2,3,4); -expect = OBJ_TYPE; -addThis(); - - -/* - * Same thing, but preface |arguments| with the function name - */ -function f4(x,x,x,x) -{ - var ret = eval(uneval(f4.arguments)); - return ret.toString(); -} -status = inSection(4); -actual = f4(1,2,3,4); -expect = OBJ_TYPE; -addThis(); - - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/7.9.1.js b/tests/auto/declarative/parserstress/tests/ecma_3/extensions/7.9.1.js deleted file mode 100755 index b69e9d065a..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/7.9.1.js +++ /dev/null @@ -1,83 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = '7.9.1.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 402386; -var summary = 'Automatic Semicolon insertion in restricted statements'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - var code; - - code = '(function() { label1: for (;;) { continue \n label1; }})'; - expect = '(function() { label1: for (;;) { continue ; label1; }})'; - actual = uneval(eval(code)); - compareSource(expect, actual, summary + ': ' + code); - - code = '(function() { label2: for (;;) { break \n label2; }})'; - expect = '(function() { label2: for (;;) { break ; label2; }})'; - actual = uneval(eval(code)); - compareSource(expect, actual, summary + ': ' + code); - - code = '(function() { return \n x++; })'; - expect = '(function() { return ; x++; })'; - actual = uneval(eval(code)); - compareSource(expect, actual, summary + ': ' + code); - - print('see bug 256617'); - code = '(function() { throw \n x++; })'; -// expect = '(function() { throw ; x++; })'; - expect = 'SyntaxError: syntax error'; - try { uneval(eval(code)); } catch(ex) { actual = ex + ''; }; -// compareSource(expect, actual, summary + ': ' + code); - reportCompare(expect, actual, summary + ': ' + code); - - exitFunc ('test'); -} - diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/browser.js b/tests/auto/declarative/parserstress/tests/ecma_3/extensions/browser.js deleted file mode 100644 index e69de29bb2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/browser.js +++ /dev/null diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-103087.js b/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-103087.js deleted file mode 100644 index 8cef9404e9..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-103087.js +++ /dev/null @@ -1,178 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * bedney@technicalpursuit.com, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 04 October 2001 - * - * SUMMARY: Arose from Bugzilla bug 103087: - * "The RegExp MarkupSPE in demo crashes Mozilla" - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=103087 - * The SpiderMonkey shell crashed on some of these regexps. - * - * The reported crash was on i=24 below ('MarkupSPE' regexp) - * I crashed on that, and also on i=43 ('XML_SPE' regexp) - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-103087.js'; -var UBound = 0; -var BUGNUMBER = 103087; -var summary = "Testing that we don't crash on any of these regexps -"; -var re = ''; -var lm = ''; -var lc = ''; -var rc = ''; - - -// the regexps are built in pieces - -var NameStrt = "[A-Za-z_:]|[^\\x00-\\x7F]"; -var NameChar = "[A-Za-z0-9_:.-]|[^\\x00-\\x7F]"; -var Name = "(" + NameStrt + ")(" + NameChar + ")*"; -var TextSE = "[^<]+"; -var UntilHyphen = "[^-]*-"; -var Until2Hyphens = UntilHyphen + "([^-]" + UntilHyphen + ")*-"; -var CommentCE = Until2Hyphens + ">?"; -var UntilRSBs = "[^]]*]([^]]+])*]+"; -var CDATA_CE = UntilRSBs + "([^]>]" + UntilRSBs + ")*>"; -var S = "[ \\n\\t\\r]+"; -var QuoteSE = '"[^"]' + "*" + '"' + "|'[^']*'"; -var DT_IdentSE = S + Name + "(" + S + "(" + Name + "|" + QuoteSE + "))*"; -var MarkupDeclCE = "([^]\"'><]+|" + QuoteSE + ")*>"; -var S1 = "[\\n\\r\\t ]"; -var UntilQMs = "[^?]*\\?+"; -var PI_Tail = "\\?>|" + S1 + UntilQMs + "([^>?]" + UntilQMs + ")*>"; -var DT_ItemSE = "<(!(--" + Until2Hyphens + ">|[^-]" + MarkupDeclCE + ")|\\?" + Name + "(" + PI_Tail + "))|%" + Name + ";|" + S; -var DocTypeCE = DT_IdentSE + "(" + S + ")?(\\[(" + DT_ItemSE + ")*](" + S + ")?)?>?"; -var DeclCE = "--(" + CommentCE + ")?|\\[CDATA\\[(" + CDATA_CE + ")?|DOCTYPE(" + DocTypeCE + ")?"; -var PI_CE = Name + "(" + PI_Tail + ")?"; -var EndTagCE = Name + "(" + S + ")?>?"; -var AttValSE = '"[^<"]' + "*" + '"' + "|'[^<']*'"; -var ElemTagCE = Name + "(" + S + Name + "(" + S + ")?=(" + S + ")?(" + AttValSE + "))*(" + S + ")?/?>?"; -var MarkupSPE = "<(!(" + DeclCE + ")?|\\?(" + PI_CE + ")?|/(" + EndTagCE + ")?|(" + ElemTagCE + ")?)"; -var XML_SPE = TextSE + "|" + MarkupSPE; -var CommentRE = "<!--" + Until2Hyphens + ">"; -var CommentSPE = "<!--(" + CommentCE + ")?"; -var PI_RE = "<\\?" + Name + "(" + PI_Tail + ")"; -var Erroneous_PI_SE = "<\\?[^?]*(\\?[^>]+)*\\?>"; -var PI_SPE = "<\\?(" + PI_CE + ")?"; -var CDATA_RE = "<!\\[CDATA\\[" + CDATA_CE; -var CDATA_SPE = "<!\\[CDATA\\[(" + CDATA_CE + ")?"; -var ElemTagSE = "<(" + NameStrt + ")([^<>\"']+|" + AttValSE + ")*>"; -var ElemTagRE = "<" + Name + "(" + S + Name + "(" + S + ")?=(" + S + ")?(" + AttValSE + "))*(" + S + ")?/?>"; -var ElemTagSPE = "<" + ElemTagCE; -var EndTagRE = "</" + Name + "(" + S + ")?>"; -var EndTagSPE = "</(" + EndTagCE + ")?"; -var DocTypeSPE = "<!DOCTYPE(" + DocTypeCE + ")?"; -var PERef_APE = "%(" + Name + ";?)?"; -var HexPart = "x([0-9a-fA-F]+;?)?"; -var NumPart = "#([0-9]+;?|" + HexPart + ")?"; -var CGRef_APE = "&(" + Name + ";?|" + NumPart + ")?"; -var Text_PE = CGRef_APE + "|[^&]+"; -var EntityValue_PE = CGRef_APE + "|" + PERef_APE + "|[^%&]+"; - - -var rePatterns = new Array(AttValSE, CDATA_CE, CDATA_RE, CDATA_SPE, CGRef_APE, CommentCE, CommentRE, CommentSPE, DT_IdentSE, DT_ItemSE, DeclCE, DocTypeCE, DocTypeSPE, ElemTagCE, ElemTagRE, ElemTagSE, ElemTagSPE, EndTagCE, EndTagRE, EndTagSPE, EntityValue_PE, Erroneous_PI_SE, HexPart, MarkupDeclCE, MarkupSPE, Name, NameChar, NameStrt, NumPart, PERef_APE, PI_CE, PI_RE, PI_SPE, PI_Tail, QuoteSE, S, S1, TextSE, Text_PE, Until2Hyphens, UntilHyphen, UntilQMs, UntilRSBs, XML_SPE); - - -// here's a big string to test the regexps on - -var str = ''; -str += '<html xmlns="http://www.w3.org/1999/xhtml"' + '\n'; -str += ' xmlns:xlink="http://www.w3.org/XML/XLink/0.9">' + '\n'; -str += ' <head><title>Three Namespaces</title></head>' + '\n'; -str += ' <body>' + '\n'; -str += ' <h1 align="center">An Ellipse and a Rectangle</h1>' + '\n'; -str += ' <svg xmlns="http://www.w3.org/Graphics/SVG/SVG-19991203.dtd" ' + '\n'; -str += ' width="12cm" height="10cm">' + '\n'; -str += ' <ellipse rx="110" ry="130" />' + '\n'; -str += ' <rect x="4cm" y="1cm" width="3cm" height="6cm" />' + '\n'; -str += ' </svg>' + '\n'; -str += ' <p xlink:type="simple" xlink:href="ellipses.html">' + '\n'; -str += ' More about ellipses' + '\n'; -str += ' </p>' + '\n'; -str += ' <p xlink:type="simple" xlink:href="rectangles.html">' + '\n'; -str += ' More about rectangles' + '\n'; -str += ' </p>' + '\n'; -str += ' <hr/>' + '\n'; -str += ' <p>Last Modified February 13, 2000</p> ' + '\n'; -str += ' </body>' + '\n'; -str += '</html>'; - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i=0; i<rePatterns.length; i++) - { - status = inSection(i); - re = new RegExp(rePatterns[i]); - - // Test that we don't crash on any of these - - re.exec(str); - getResults(); - - // Just for the heck of it, test the current leftContext - re.exec(lc); - getResults(); - - // Test the current rightContext - re.exec(rc); - getResults(); - } - - reportCompare('No Crash', 'No Crash', ''); - - exitFunc ('test'); -} - - -function getResults() -{ - lm = RegExp.lastMatch; - lc = RegExp.leftContext; - rc = RegExp.rightContext; -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-188206-01.js b/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-188206-01.js deleted file mode 100644 index f09963a7b5..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-188206-01.js +++ /dev/null @@ -1,108 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * scole@planetweb.com, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -//----------------------------------------------------------------------------- -var gTestfile = 'regress-188206-01.js'; -var UBound = 0; -var BUGNUMBER = 188206; -var summary = 'Invalid use of regexp quantifiers should generate SyntaxErrors'; -var TEST_PASSED = 'SyntaxError'; -var TEST_FAILED = 'Generated an error, but NOT a SyntaxError!'; -var TEST_FAILED_BADLY = 'Did not generate ANY error!!!'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -/* - * Now do some weird things on the left side of the regexps - - */ -status = inSection(7); -testThis(' /*a/ '); - -status = inSection(8); -testThis(' /**a/ '); - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -/* - * Invalid syntax should generate a SyntaxError - */ -function testThis(sInvalidSyntax) -{ - expect = TEST_PASSED; - actual = TEST_FAILED_BADLY; - - try - { - eval(sInvalidSyntax); - } - catch(e) - { - if (e instanceof SyntaxError) - actual = TEST_PASSED; - else - actual = TEST_FAILED; - } - - statusitems[UBound] = status; - expectedvalues[UBound] = expect; - actualvalues[UBound] = actual; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-188206-02.js b/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-188206-02.js deleted file mode 100644 index 3bd079fae6..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-188206-02.js +++ /dev/null @@ -1,158 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * scole@planetweb.com, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -//----------------------------------------------------------------------------- -var gTestfile = 'regress-188206-02.js'; -var UBound = 0; -var BUGNUMBER = 188206; -var summary = 'Invalid use of regexp quantifiers should generate SyntaxErrors'; -var CHECK_PASSED = 'Should not generate an error'; -var CHECK_FAILED = 'Generated an error!'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -/* - * Misusing the {DecmalDigits} quantifier - according to ECMA, - * but not according to Perl. - * - * ECMA-262 Edition 3 prohibits the use of unescaped braces in - * regexp patterns, unless they form part of a quantifier. - * - * Hovever, Perl does not prohibit this. If not used as part - * of a quantifer, Perl treats braces literally. - * - * We decided to follow Perl on this for backward compatibility. - * See http://bugzilla.mozilla.org/show_bug.cgi?id=190685. - * - * Therefore NONE of the following ECMA violations should generate - * a SyntaxError. Note we use checkThis() instead of testThis(). - */ -status = inSection(13); -checkThis(' /a*{/ '); - -status = inSection(14); -checkThis(' /a{}/ '); - -status = inSection(15); -checkThis(' /{a/ '); - -status = inSection(16); -checkThis(' /}a/ '); - -status = inSection(17); -checkThis(' /x{abc}/ '); - -status = inSection(18); -checkThis(' /{{0}/ '); - -status = inSection(19); -checkThis(' /{{1}/ '); - -status = inSection(20); -checkThis(' /x{{0}/ '); - -status = inSection(21); -checkThis(' /x{{1}/ '); - -status = inSection(22); -checkThis(' /x{{0}}/ '); - -status = inSection(23); -checkThis(' /x{{1}}/ '); - -status = inSection(24); -checkThis(' /x{{0}}/ '); - -status = inSection(25); -checkThis(' /x{{1}}/ '); - -status = inSection(26); -checkThis(' /x{{0}}/ '); - -status = inSection(27); -checkThis(' /x{{1}}/ '); - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -/* - * Allowed syntax shouldn't generate any errors - */ -function checkThis(sAllowedSyntax) -{ - expect = CHECK_PASSED; - actual = CHECK_PASSED; - - try - { - eval(sAllowedSyntax); - } - catch(e) - { - actual = CHECK_FAILED; - } - - statusitems[UBound] = status; - expectedvalues[UBound] = expect; - actualvalues[UBound] = actual; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-220367-002.js b/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-220367-002.js deleted file mode 100644 index 7af2a9d63f..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-220367-002.js +++ /dev/null @@ -1,112 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * igor@fastmail.fm, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 26 September 2003 - * SUMMARY: Regexp conformance test - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=220367 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-220367-002.js'; -var UBound = 0; -var BUGNUMBER = 220367; -var summary = 'Regexp conformance test'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - -var re = /(a)|(b)/; - -re.test('a'); -status = inSection(1); -actual = RegExp.$1; -expect = 'a'; -addThis(); - -status = inSection(2); -actual = RegExp.$2; -expect = ''; -addThis(); - -re.test('b'); -status = inSection(3); -actual = RegExp.$1; -expect = ''; -addThis(); - -status = inSection(4); -actual = RegExp.$2; -expect = 'b'; -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-228087.js b/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-228087.js deleted file mode 100644 index 6e16126cc0..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-228087.js +++ /dev/null @@ -1,352 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- -/* ***** BEGIN LICENSE BLOCK ***** -* Version: MPL 1.1/GPL 2.0/LGPL 2.1 -* -* The contents of this file are subject to the Mozilla Public License Version -* 1.1 (the "License"); you may not use this file except in compliance with -* the License. You may obtain a copy of the License at -* http://www.mozilla.org/MPL/ -* -* Software distributed under the License is distributed on an "AS IS" basis, -* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -* for the specific language governing rights and limitations under the -* License. -* -* The Original Code is JavaScript Engine testing utilities. -* -* The Initial Developer of the Original Code is -* Netscape Communications Corp. -* Portions created by the Initial Developer are Copyright (C) 2003 -* the Initial Developer. All Rights Reserved. -* -* Contributor(s): -* bex@xaotec.com, PhilSchwartau@aol.com -* -* Alternatively, the contents of this file may be used under the terms of -* either the GNU General Public License Version 2 or later (the "GPL"), or -* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -* in which case the provisions of the GPL or the LGPL are applicable instead -* of those above. If you wish to allow use of your version of this file only -* under the terms of either the GPL or the LGPL, and not to allow others to -* use your version of this file under the terms of the MPL, indicate your -* decision by deleting the provisions above and replace them with the notice -* and other provisions required by the GPL or the LGPL. If you do not delete -* the provisions above, a recipient may use your version of this file under -* the terms of any one of the MPL, the GPL or the LGPL. -* -* ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 12 December 2003 - * SUMMARY: Testing regexps with unescaped braces - * See http://bugzilla.mozilla.org/show_bug.cgi?id=228087 - * - * Note: unbalanced, unescaped braces are not permitted by ECMA-262 Ed.3, - * but we decided to follow Perl and IE and allow this for compatibility. - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=188206 and its testcase. - * See http://bugzilla.mozilla.org/show_bug.cgi?id=223273 and its testcase. - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-228087.js'; -var i = 0; -var BUGNUMBER = 228087; -var summary = 'Testing regexps with unescaped braces'; -var status = ''; -var statusmessages = new Array(); -var pattern = ''; -var patterns = new Array(); -var string = ''; -var strings = new Array(); -var actualmatch = ''; -var actualmatches = new Array(); -var expectedmatch = ''; -var expectedmatches = new Array(); -var e; - - -string = 'foo {1} foo {2} foo'; - -// try an example with the braces escaped -status = inSection(1); -try -{ - pattern = new RegExp('\{1.*\}', 'g'); - actualmatch = string.match(pattern); -} -catch (e) -{ - pattern = 'error'; - actualmatch = ''; -} -expectedmatch = Array('{1} foo {2}'); -addThis(); - -// just like Section 1, without the braces being escaped -status = inSection(2); -try -{ - pattern = new RegExp('{1.*}', 'g'); - actualmatch = string.match(pattern); -} -catch (e) -{ - pattern = 'error'; - actualmatch = ''; -} -expectedmatch = Array('{1} foo {2}'); -addThis(); - -// try an example with the braces escaped -status = inSection(3); -try -{ - pattern = new RegExp('\{1[.!\}]*\}', 'g'); - actualmatch = string.match(pattern); -} -catch (e) -{ - pattern = 'error'; - actualmatch = ''; -} -expectedmatch = Array('{1}'); -addThis(); - -// just like Section 3, without the braces being escaped -status = inSection(4); -try -{ - pattern = new RegExp('{1[.!}]*}', 'g'); - actualmatch = string.match(pattern); -} -catch (e) -{ - pattern = 'error'; - actualmatch = ''; -} -expectedmatch = Array('{1}'); -addThis(); - - -string = 'abccccc{3 }c{ 3}c{3, }c{3 ,}c{3 ,4}c{3, 4}c{3,4 }de'; - -// use braces in a normal quantifier construct -status = inSection(5); -try -{ - pattern = new RegExp('c{3}'); - actualmatch = string.match(pattern); -} -catch (e) -{ - pattern = 'error'; - actualmatch = ''; -} -expectedmatch = Array('ccc'); -addThis(); - -// now disrupt the quantifer - the braces should now be interpreted literally -status = inSection(6); -try -{ - pattern = new RegExp('c{3 }'); - actualmatch = string.match(pattern); -} -catch (e) -{ - pattern = 'error'; - actualmatch = ''; -} -expectedmatch = Array('c{3 }'); -addThis(); - -status = inSection(7); -try -{ - pattern = new RegExp('c{3.}'); - actualmatch = string.match(pattern); -} -catch (e) -{ - pattern = 'error'; - actualmatch = ''; -} -expectedmatch = Array('c{3 }'); -addThis(); - -status = inSection(8); -try -{ - // need to escape the \ in \s since - // this has been converted to a constructor call - // instead of a literal regexp - pattern = new RegExp('c{3\\s}'); - actualmatch = string.match(pattern); -} -catch (e) -{ - pattern = 'error'; - actualmatch = ''; -} -expectedmatch = Array('c{3 }'); -addThis(); - -status = inSection(9); -try -{ - pattern = new RegExp('c{3[ ]}'); - actualmatch = string.match(pattern); -} -catch (e) -{ - pattern = 'error'; - actualmatch = ''; -} -expectedmatch = Array('c{3 }'); -addThis(); - -status = inSection(10); -try -{ - pattern = new RegExp('c{ 3}'); - actualmatch = string.match(pattern); -} -catch (e) -{ - pattern = 'error'; - actualmatch = ''; -} -expectedmatch = Array('c{ 3}'); -addThis(); - -// using braces in a normal quantifier construct again -status = inSection(11); -try -{ - pattern = new RegExp('c{3,}'); - actualmatch = string.match(pattern); -} -catch (e) -{ - pattern = 'error'; - actualmatch = ''; -} -expectedmatch = Array('ccccc'); -addThis(); - -// now disrupt it - the braces should now be interpreted literally -status = inSection(12); -try -{ - pattern = new RegExp('c{3, }'); - actualmatch = string.match(pattern); -} -catch (e) -{ - pattern = 'error'; - actualmatch = ''; -} -expectedmatch = Array('c{3, }'); -addThis(); - -status = inSection(13); -try -{ - pattern = new RegExp('c{3 ,}'); - actualmatch = string.match(pattern); -} -catch (e) -{ - pattern = 'error'; - actualmatch = ''; -} -expectedmatch = Array('c{3 ,}'); -addThis(); - -// using braces in a normal quantifier construct again -status = inSection(14); -try -{ - pattern = new RegExp('c{3,4}'); - actualmatch = string.match(pattern); -} -catch (e) -{ - pattern = 'error'; - actualmatch = ''; -} -expectedmatch = Array('cccc'); -addThis(); - -// now disrupt it - the braces should now be interpreted literally -status = inSection(15); -try -{ - pattern = new RegExp('c{3 ,4}'); - actualmatch = string.match(pattern); -} -catch (e) -{ - pattern = 'error'; - actualmatch = ''; -} -expectedmatch = Array('c{3 ,4}'); -addThis(); - -status = inSection(16); -try -{ - pattern = new RegExp('c{3, 4}'); - actualmatch = string.match(pattern); -} -catch (e) -{ - pattern = 'error'; - actualmatch = ''; -} -expectedmatch = Array('c{3, 4}'); -addThis(); - -status = inSection(17); -try -{ - pattern = new RegExp('c{3,4 }'); - actualmatch = string.match(pattern); -} -catch (e) -{ - pattern = 'error'; - actualmatch = ''; -} -expectedmatch = Array('c{3,4 }'); -addThis(); - - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - - -function addThis() -{ - statusmessages[i] = status; - patterns[i] = pattern; - strings[i] = string; - actualmatches[i] = actualmatch; - expectedmatches[i] = expectedmatch; - i++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-274152.js b/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-274152.js deleted file mode 100755 index d7074d9128..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-274152.js +++ /dev/null @@ -1,83 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Brendan Eich - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-274152.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 274152; -var summary = 'Do not ignore unicode format-control characters'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - expect = 'SyntaxError: illegal character'; - - var formatcontrolchars = ['\u200C', - '\u200D', - '\u200E', - '\u0600', - '\u0601', - '\u0602', - '\u0603', - '\u06DD', - '\u070F']; - - for (var i = 0; i < formatcontrolchars.length; i++) - { - try - { - eval("hi" + formatcontrolchars[i] + "there = 'howdie';"); - } - catch(ex) - { - actual = ex + ''; - } - - reportCompare(expect, actual, summary + ': ' + i); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-320854.js b/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-320854.js deleted file mode 100755 index 85e684882f..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-320854.js +++ /dev/null @@ -1,53 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Brendan Eich - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-320854.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 320854; -var summary = 'o.hasOwnProperty("length") should not lie when o has function in proto chain'; -var actual = ''; -var expect = ''; - -printBugNumber(BUGNUMBER); -printStatus (summary); - -var o = {__proto__:function(){}}; - -expect = false; -actual = o.hasOwnProperty('length') - - reportCompare(expect, actual, summary); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-327170.js b/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-327170.js deleted file mode 100755 index 5d15ce31a9..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-327170.js +++ /dev/null @@ -1,58 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2006 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Jonas Jonsson - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-327170.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 327170; -var summary = 'Reuse of RegExp in string.replace(rx.compile(...), function() { rx.compile(...); }) causes a crash'; -var actual = 'No Crash'; -var expect = 'No Crash'; - -printBugNumber(BUGNUMBER); -printStatus (summary); - -var g_rx = /(?:)/; - -"this is a test-string".replace(g_rx.compile("test", "g"), - function() - { - // re-use of the g_rx RegExp object, - // that's currently in use by the replace fn. - g_rx.compile("string", "g"); - }); - -reportCompare(expect, actual, summary); diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-368516.js b/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-368516.js deleted file mode 100755 index a5f5fb769b..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-368516.js +++ /dev/null @@ -1,78 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Brendan Eich - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-368516.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 368516; -var summary = 'Treat unicode BOM characters as whitespace'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - var bomchars = ['\uFFFE', - '\uFEFF']; - - for (var i = 0; i < bomchars.length; i++) - { - expect = 'howdie'; - actual = ''; - - try - { - eval("var" + bomchars[i] + "hithere = 'howdie';"); - actual = hithere; - } - catch(ex) - { - actual = ex + ''; - } - - reportCompare(expect, actual, summary + ': ' + i); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-385393-03.js b/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-385393-03.js deleted file mode 100755 index 40c7e8dd81..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-385393-03.js +++ /dev/null @@ -1,63 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Jesse Ruderman - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-385393-03.js'; - -//----------------------------------------------------------------------------- -var BUGNUMBER = 385393; -var summary = 'Regression test for bug 385393'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - f = (function() { new (delete y) }); - eval(uneval(f)) - - reportCompare(expect, actual, summary); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-429248.js b/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-429248.js deleted file mode 100755 index 9966269115..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-429248.js +++ /dev/null @@ -1,67 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Jesse Ruderman - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-429248.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 429248; -var summary = 'Do not assert: 0'; -var actual = 'No Crash'; -var expect = 'No Crash'; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - function c() { do{}while(0) } - - if (typeof trap == 'function') - { - trap(c, 0, ""); - } - c + ''; - - reportCompare(expect, actual, summary); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-430740.js b/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-430740.js deleted file mode 100755 index 446adb95a6..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/regress-430740.js +++ /dev/null @@ -1,72 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Dave Reed - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-430740.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 430740; -var summary = 'Do not strip format-control characters from string literals'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - function doevil() { - print('evildone'); - return 'evildone'; - } - - expect = 'a%E2%80%8D,+doevil()%5D)//'; - actual += eval("(['a\\\u200d', '+doevil()])//'])"); - actual = encodeURI(actual); - reportCompare(expect, actual, summary); - - expect = 'a%EF%BF%BE,+doevil()%5D)//'; - actual = eval("(['a\\\ufffe', '+doevil()])//'])"); - actual = encodeURI(actual); - reportCompare(expect, actual, summary); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/shell.js b/tests/auto/declarative/parserstress/tests/ecma_3/extensions/shell.js deleted file mode 100644 index d83e3591af..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/extensions/shell.js +++ /dev/null @@ -1,266 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 07 February 2001 - * - * Functionality common to RegExp testing - - */ -//----------------------------------------------------------------------------- - -gTestsubsuite = 'extensions'; - -var MSG_PATTERN = '\nregexp = '; -var MSG_STRING = '\nstring = '; -var MSG_EXPECT = '\nExpect: '; -var MSG_ACTUAL = '\nActual: '; -var ERR_LENGTH = '\nERROR !!! match arrays have different lengths:'; -var ERR_MATCH = '\nERROR !!! regexp failed to give expected match array:'; -var ERR_NO_MATCH = '\nERROR !!! regexp FAILED to match anything !!!'; -var ERR_UNEXP_MATCH = '\nERROR !!! regexp MATCHED when we expected it to fail !!!'; -var CHAR_LBRACKET = '['; -var CHAR_RBRACKET = ']'; -var CHAR_QT_DBL = '"'; -var CHAR_QT = "'"; -var CHAR_NL = '\n'; -var CHAR_COMMA = ','; -var CHAR_SPACE = ' '; -var TYPE_STRING = typeof 'abc'; - - - -function testRegExp(statuses, patterns, strings, actualmatches, expectedmatches) -{ - var status = ''; - var pattern = new RegExp(); - var string = ''; - var actualmatch = new Array(); - var expectedmatch = new Array(); - var state = ''; - var lActual = -1; - var lExpect = -1; - - - for (var i=0; i != patterns.length; i++) - { - status = statuses[i]; - pattern = patterns[i]; - string = strings[i]; - actualmatch=actualmatches[i]; - expectedmatch=expectedmatches[i]; - state = getState(status, pattern, string); - - description = status; - - if(actualmatch) - { - actual = formatArray(actualmatch); - if(expectedmatch) - { - // expectedmatch and actualmatch are arrays - - lExpect = expectedmatch.length; - lActual = actualmatch.length; - - var expected = formatArray(expectedmatch); - - if (lActual != lExpect) - { - reportCompare(lExpect, lActual, - state + ERR_LENGTH + - MSG_EXPECT + expected + - MSG_ACTUAL + actual + - CHAR_NL - ); - continue; - } - - // OK, the arrays have same length - - if (expected != actual) - { - reportCompare(expected, actual, - state + ERR_MATCH + - MSG_EXPECT + expected + - MSG_ACTUAL + actual + - CHAR_NL - ); - } - else - { - reportCompare(expected, actual, state) - } - - } - else //expectedmatch is null - that is, we did not expect a match - - { - expected = expectedmatch; - reportCompare(expected, actual, - state + ERR_UNEXP_MATCH + - MSG_EXPECT + expectedmatch + - MSG_ACTUAL + actual + - CHAR_NL - ); - } - - } - else // actualmatch is null - { - if (expectedmatch) - { - actual = actualmatch; - reportCompare(expected, actual, - state + ERR_NO_MATCH + - MSG_EXPECT + expectedmatch + - MSG_ACTUAL + actualmatch + - CHAR_NL - ); - } - else // we did not expect a match - { - // Being ultra-cautious. Presumably expectedmatch===actualmatch===null - expected = expectedmatch; - actual = actualmatch; - reportCompare (expectedmatch, actualmatch, state); - } - } - } -} - - -function getState(status, pattern, string) -{ - /* - * Escape \n's, etc. to make them LITERAL in the presentation string. - * We don't have to worry about this in |pattern|; such escaping is - * done automatically by pattern.toString(), invoked implicitly below. - * - * One would like to simply do: string = string.replace(/(\s)/g, '\$1'). - * However, the backreference $1 is not a literal string value, - * so this method doesn't work. - * - * Also tried string = string.replace(/(\s)/g, escape('$1')); - * but this just inserts the escape of the literal '$1', i.e. '%241'. - */ - string = string.replace(/\n/g, '\\n'); - string = string.replace(/\r/g, '\\r'); - string = string.replace(/\t/g, '\\t'); - string = string.replace(/\v/g, '\\v'); - string = string.replace(/\f/g, '\\f'); - - return (status + MSG_PATTERN + pattern + MSG_STRING + singleQuote(string)); -} - - -/* - * If available, arr.toSource() gives more detail than arr.toString() - * - * var arr = Array(1,2,'3'); - * - * arr.toSource() - * [1, 2, "3"] - * - * arr.toString() - * 1,2,3 - * - * But toSource() doesn't exist in Rhino, so use our own imitation, below - - * - */ -function formatArray(arr) -{ - try - { - return arr.toSource(); - } - catch(e) - { - return toSource(arr); - } -} - - -/* - * Imitate SpiderMonkey's arr.toSource() method: - * - * a) Double-quote each array element that is of string type - * b) Represent |undefined| and |null| by empty strings - * c) Delimit elements by a comma + single space - * d) Do not add delimiter at the end UNLESS the last element is |undefined| - * e) Add square brackets to the beginning and end of the string - */ -function toSource(arr) -{ - var delim = CHAR_COMMA + CHAR_SPACE; - var elt = ''; - var ret = ''; - var len = arr.length; - - for (i=0; i<len; i++) - { - elt = arr[i]; - - switch(true) - { - case (typeof elt === TYPE_STRING) : - ret += doubleQuote(elt); - break; - - case (elt === undefined || elt === null) : - break; // add nothing but the delimiter, below - - - default: - ret += elt.toString(); - } - - if ((i < len-1) || (elt === undefined)) - ret += delim; - } - - return CHAR_LBRACKET + ret + CHAR_RBRACKET; -} - - -function doubleQuote(text) -{ - return CHAR_QT_DBL + text + CHAR_QT_DBL; -} - - -function singleQuote(text) -{ - return CHAR_QT + text + CHAR_QT; -} - diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/shell.js b/tests/auto/declarative/parserstress/tests/ecma_3/shell.js deleted file mode 100644 index ea63a51957..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/shell.js +++ /dev/null @@ -1,40 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code, released - * March 31, 1998. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -gTestsuite = 'ecma_3'; diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/template.js b/tests/auto/declarative/parserstress/tests/ecma_3/template.js deleted file mode 100755 index 4dedd5a0e3..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/template.js +++ /dev/null @@ -1,59 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2008 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'template.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 99999; -var summary = ''; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - reportCompare(expect, actual, summary); - - exitFunc ('test'); -} |