summaryrefslogtreecommitdiffstats
path: root/JavaScriptCore/tests/mozilla/ecma_3
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:41 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:41 -0800
commit648161bb0edfc3d43db63caed5cc5213bc6cb78f (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /JavaScriptCore/tests/mozilla/ecma_3
parenta65af38181ac7d34544586bdb5cd004de93897ad (diff)
downloadexternal_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.zip
external_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.tar.gz
external_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.tar.bz2
auto import from //depot/cupcake/@135843
Diffstat (limited to 'JavaScriptCore/tests/mozilla/ecma_3')
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Array/15.4.4.3-1.js66
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Array/15.4.4.4-001.js148
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Array/regress-101488.js151
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Array/regress-130451.js214
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Date/15.9.5.3.js149
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Date/15.9.5.4.js194
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Date/15.9.5.5.js94
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Date/15.9.5.6.js149
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Date/15.9.5.7.js211
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Date/shell.js676
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Exceptions/15.11.1.1.js132
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Exceptions/15.11.4.4-1.js169
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Exceptions/15.11.7.6-001.js125
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Exceptions/15.11.7.6-002.js120
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Exceptions/15.11.7.6-003.js120
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Exceptions/binding-001.js106
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Exceptions/regress-181654.js150
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Exceptions/regress-181914.js189
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Exceptions/regress-58946.js56
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Exceptions/regress-95101.js97
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/ExecutionContexts/10.1.3-1.js196
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/ExecutionContexts/10.1.3-2.js157
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/ExecutionContexts/10.1.3.js55
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/ExecutionContexts/10.1.4-1.js58
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/ExecutionContexts/regress-23346.js53
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Expressions/11.6.1-1.js171
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Expressions/11.9.6-1.js208
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/FunExpr/fe-001-n.js37
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/FunExpr/fe-001.js39
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/FunExpr/fe-002.js43
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Function/15.3.4.3-1.js205
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Function/15.3.4.4-1.js180
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Function/arguments-001.js148
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Function/call-001.js131
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Function/regress-104584.js56
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Function/regress-131964.js191
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Function/regress-137181.js108
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Function/regress-193555.js131
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Function/regress-49286.js116
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Function/regress-58274.js221
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Function/regress-85880.js152
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Function/regress-94506.js142
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Function/regress-97921.js131
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Function/scope-001.js249
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Function/scope-002.js224
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Number/15.7.4.5-1.js124
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Number/15.7.4.6-1.js113
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Number/15.7.4.7-1.js118
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/NumberFormatting/tostring-001.js42
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Object/8.6.2.6-001.js108
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Object/class-001.js128
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Object/class-002.js124
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Object/class-003.js118
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Object/class-004.js117
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Object/class-005.js102
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Object/regress-72773.js75
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Object/regress-79129-001.js58
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Object/shell.js81
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Operators/11.13.1-001.js147
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Operators/11.4.1-001.js115
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.2-1.js176
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.3.1-1.js115
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.3.1-2.js123
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.4.1-1.js111
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.4.1-2.js117
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.4.1-3.js124
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.4.1-4.js130
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.4.1-5-n.js113
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.6.2-1.js119
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.6.2-2.js362
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/octal-001.js131
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/octal-002.js213
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/perlstress-001.js3225
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/perlstress-002.js1837
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-100199.js286
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-103087.js155
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-105972.js136
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-119909.js86
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-122076.js103
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-123437.js107
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-165353.js117
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-169497.js100
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-169534.js90
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-187133.js137
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-188206.js282
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-191479.js193
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-202564.js96
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-209067.js1101
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-209919.js169
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-216591.js112
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-220367-001.js99
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-220367-002.js107
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-24712.js42
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-28686.js39
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-31316.js75
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-57572.js129
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-57631.js128
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-67773.js190
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-72964.js100
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-76683.js93
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-78156.js102
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-85721.js271
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-87231.js124
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-98306.js77
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/RegExp/shell.js230
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-121744.js212
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-131348.js179
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-157509.js106
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-194364.js134
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-74474-001.js118
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-74474-002.js9076
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-74474-003.js9078
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-83532-001.js48
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-83532-002.js51
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Statements/switch-001.js122
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/String/regress-104375.js95
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/String/regress-189898.js152
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/String/regress-83293.js193
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-001-n.js44
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-001.js38
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-002-n.js38
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-002.js42
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-003.js53
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-004.js47
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-005.js271
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_3/shell.js180
126 files changed, 0 insertions, 40537 deletions
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Array/15.4.4.3-1.js b/JavaScriptCore/tests/mozilla/ecma_3/Array/15.4.4.3-1.js
deleted file mode 100644
index 7b5fdbd..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Array/15.4.4.3-1.js
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 bug = 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 (bug);
- printStatus (summary);
-
- reportCompare(expect, actual, summary);
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Array/15.4.4.4-001.js b/JavaScriptCore/tests/mozilla/ecma_3/Array/15.4.4.4-001.js
deleted file mode 100644
index 6d99159..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Array/15.4.4.4-001.js
+++ /dev/null
@@ -1,148 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Array/regress-101488.js b/JavaScriptCore/tests/mozilla/ecma_3/Array/regress-101488.js
deleted file mode 100644
index 73c22c9..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Array/regress-101488.js
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): igor@icesoft.no, pschwartau@netscape.com
-* 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 UBound = 0;
-var bug = 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 (bug);
- printStatus (summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Array/regress-130451.js b/JavaScriptCore/tests/mozilla/ecma_3/Array/regress-130451.js
deleted file mode 100644
index 7cc5051..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Array/regress-130451.js
+++ /dev/null
@@ -1,214 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Date/15.9.5.3.js b/JavaScriptCore/tests/mozilla/ecma_3/Date/15.9.5.3.js
deleted file mode 100644
index a68cb89..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Date/15.9.5.3.js
+++ /dev/null
@@ -1,149 +0,0 @@
-/* The contents of this file are subject to the Netscape 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/NPL/
- *
- * 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 Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- *
- */
-/**
- 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 SECTION = "15.9.5.3";
- var VERSION = "ECMA_3";
- var TITLE = "Date.prototype.toDateString()";
-
- var status = '';
- var actual = '';
- var expect = '';
-
-
- startTest();
- writeHeaderToLog( SECTION + " "+ TITLE);
-
-
-//-----------------------------------------------------------------------------------------------------
- var testcases = new Array();
-//-----------------------------------------------------------------------------------------------------
-
-
- // 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()
-{
- testcases[tc++] = 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());
-}
-
-
-function test()
-{
- for ( tc=0; tc < testcases.length; tc++ )
- {
- testcases[tc].passed = writeTestCaseResult(
- testcases[tc].expect,
- testcases[tc].actual,
- testcases[tc].description + " = " + testcases[tc].actual );
-
- testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
- }
- stopTest();
- return (testcases);
-} \ No newline at end of file
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Date/15.9.5.4.js b/JavaScriptCore/tests/mozilla/ecma_3/Date/15.9.5.4.js
deleted file mode 100644
index abff98a..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Date/15.9.5.4.js
+++ /dev/null
@@ -1,194 +0,0 @@
-/* The contents of this file are subject to the Netscape 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/NPL/
- *
- * 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 Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- *
- */
-/**
- 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 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);
-
-
-//-----------------------------------------------------------------------------------------------------
- var testcases = new Array();
-//-----------------------------------------------------------------------------------------------------
-
-
- // 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()
-{
- testcases[tc++] = 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);
-}
-
-
-function test()
-{
- for ( tc=0; tc < testcases.length; tc++ )
- {
- testcases[tc].passed = writeTestCaseResult(
- testcases[tc].expect,
- testcases[tc].actual,
- testcases[tc].description + " = " + testcases[tc].actual );
-
- testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
- }
- stopTest();
- return (testcases);
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Date/15.9.5.5.js b/JavaScriptCore/tests/mozilla/ecma_3/Date/15.9.5.5.js
deleted file mode 100644
index c16002b..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Date/15.9.5.5.js
+++ /dev/null
@@ -1,94 +0,0 @@
-/* The contents of this file are subject to the Netscape 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/NPL/
- *
- * 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 Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- *
- */
-/**
- 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 object returned is a string.
-
- 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.
-
- 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);
-
-
-//-----------------------------------------------------------------------------------------------------
- var testcases = new Array();
-//-----------------------------------------------------------------------------------------------------
-
-
- // 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();
-
-//-----------------------------------------------------------------------------------------------------
- test();
-//-----------------------------------------------------------------------------------------------------
-
-
-function addTestCase()
-{
- testcases[tc++] = new TestCase( SECTION, status, expect, actual);
-}
-
-
-function test()
-{
- for ( tc=0; tc < testcases.length; tc++ )
- {
- testcases[tc].passed = writeTestCaseResult(
- testcases[tc].expect,
- testcases[tc].actual,
- testcases[tc].description + " = " + testcases[tc].actual );
-
- testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
- }
- stopTest();
- return (testcases);
-} \ No newline at end of file
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Date/15.9.5.6.js b/JavaScriptCore/tests/mozilla/ecma_3/Date/15.9.5.6.js
deleted file mode 100644
index 073d828..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Date/15.9.5.6.js
+++ /dev/null
@@ -1,149 +0,0 @@
-/* The contents of this file are subject to the Netscape 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/NPL/
- *
- * 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 Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- *
- */
-/**
- 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.
-
- 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);
-
-
-//-----------------------------------------------------------------------------------------------------
- var testcases = new Array();
-//-----------------------------------------------------------------------------------------------------
-
-
- // 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()
-{
- testcases[tc++] = new TestCase( SECTION, 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());
-}
-
-
-function test()
-{
- for ( tc=0; tc < testcases.length; tc++ )
- {
- testcases[tc].passed = writeTestCaseResult(
- testcases[tc].expect,
- testcases[tc].actual,
- testcases[tc].description + " = " + testcases[tc].actual );
-
- testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
- }
- stopTest();
- return (testcases);
-} \ No newline at end of file
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Date/15.9.5.7.js b/JavaScriptCore/tests/mozilla/ecma_3/Date/15.9.5.7.js
deleted file mode 100644
index 14b2574..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Date/15.9.5.7.js
+++ /dev/null
@@ -1,211 +0,0 @@
-/* The contents of this file are subject to the Netscape 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/NPL/
- *
- * 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 Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- *
- */
-/**
- 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 d.toDateString() + d.toLocaleTimeString() == d.toString()
-
- The only headache is that as of this writing the "GMT ..." portion of
- d.toString() is NOT included in d.toLocaleTimeString() as it is in
- d.toTimeString(). So we have to take that into account.
-
- 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 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);
-
-
-//-----------------------------------------------------------------------------------------------------
- var testcases = new Array();
-//-----------------------------------------------------------------------------------------------------
-
-
- // 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()
-{
- testcases[tc++] = new TestCase( SECTION, status, expect, actual);
-}
-
-
-function addDateTestCase(date_given_in_milliseconds)
-{
- givenDate = new Date(date_given_in_milliseconds);
-
- status = '(' + givenDate + ').toLocaleTimeString()';
- actual = givenDate.toLocaleTimeString();
- expect = extractLocaleTimeString(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)
- *
- * So first, use a regexp of the form /date.toDateString()(.*)$/
- * to capture the TimeString into the first backreference.
- *
- * Then remove the GMT string from TimeString (see introduction above)
- */
-function extractLocaleTimeString(date)
-{
- regexp = new RegExp(date.toDateString() + '(.*)' + '$');
- try
- {
- TimeString = date.toString().match(regexp)[1];
- }
- catch(e)
- {
- return cnERR;
- }
-
- /*
- * Now remove the GMT part of the TimeString.
- * Guard against dates with two "GMT"s, like:
- * Jan 01 00:00:00 GMT+0000 (GMT Standard Time)
- */
- regexp= /([^G]*)GMT.*/;
- try
- {
- hopeThisIsLocaleTimeString = TimeString.match(regexp)[1];
- }
- catch(e)
- {
- return TimeString;
- }
-
- // trim any leading or trailing spaces -
- return trimL(trimR(hopeThisIsLocaleTimeString));
-}
-
-
-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)
-{
- for (var i = (s.length - 1); i!=-1; i--) {if (s[i] != ' ') {break;}}
- return s.substring(0, i+1);
-}
-
-
-function test()
-{
- for ( tc=0; tc < testcases.length; tc++ )
- {
- testcases[tc].passed = writeTestCaseResult(
- testcases[tc].expect,
- testcases[tc].actual,
- testcases[tc].description + " = " + testcases[tc].actual );
-
- testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
- }
- stopTest();
- return (testcases);
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Date/shell.js b/JavaScriptCore/tests/mozilla/ecma_3/Date/shell.js
deleted file mode 100644
index 43721a7..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Date/shell.js
+++ /dev/null
@@ -1,676 +0,0 @@
-/* The contents of this file are subject to the Netscape 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/NPL/
- *
- * 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 Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- *
- */
-/*
- * JavaScript shared functions file for running the tests in either
- * stand-alone JavaScript engine. To run a test, first load this file,
- * then load the test script.
- */
-
-var completed = false;
-var testcases;
-var tc = 0;
-
-SECTION = "";
-VERSION = "";
-BUGNUMBER = "";
-
-/*
- * constant strings
- */
-var GLOBAL = "[object global]";
-var PASSED = " PASSED!"
-var FAILED = " FAILED! expected: ";
-var DEBUG = false;
-
-
-/*
-* Wrapper for test case constructor that doesn't require the SECTION argument.
- */
-function AddTestCase( description, expect, actual )
-{
- testcases[tc++] = new TestCase( SECTION, description, expect, actual );
-}
-
-
-/*
- * TestCase constructor
-*/
-function TestCase( n, d, e, a )
-{
- this.name = n;
- this.description = d;
- this.expect = e;
- this.actual = a;
- this.passed = true;
- this.reason = "";
- this.bugnumber = BUGNUMBER;
- this.passed = getTestCaseResult( this.expect, this.actual );
- if ( DEBUG ) {writeLineToLog("added " + this.description);}
-}
-
-
-/*
- * Set up test environment.
-*/
-function startTest()
-{
- if ( version )
- {
- // JavaScript 1.3 is supposed to be compliant ECMA version 1.0
- if (VERSION == "ECMA_1" ) {version ("130");}
- if (VERSION == "JS_1.3" ) {version ( "130");}
- if (VERSION == "JS_1.2" ) {version ( "120");}
- if (VERSION == "JS_1.1" ) {version( "110");}
-
- // for ECMA version 2.0, we will leave the JavaScript version
- // to the default ( for now ).
- }
-
- // print out bugnumber
- if ( BUGNUMBER )
- {
- writeLineToLog ("BUGNUMBER: " + BUGNUMBER );
- }
-
- testcases = new Array();
- tc = 0;
-}
-
-
-function test()
-{
- for ( tc=0; tc < testcases.length; tc++ )
- {
- testcases[tc].passed = writeTestCaseResult(
- testcases[tc].expect,
- testcases[tc].actual,
- testcases[tc].description +" = "+ testcases[tc].actual );
-
- testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
- }
-
- stopTest();
- return ( testcases );
-}
-
-
-/*
- * Compare expected result to the actual result and figure out whether
- * the test case passed.
- */
-function getTestCaseResult(expect, actual )
-{
- //because ( NaN == NaN ) always returns false, need to do
- //a special compare to see if we got the right result.
- if ( actual != actual )
- {
- if ( typeof actual == "object" ) {actual = "NaN object";}
- else {actual = "NaN number";}
- }
-
- if ( expect != expect )
- {
- if ( typeof expect == "object" ) {expect = "NaN object";}
- else {expect = "NaN number";}
- }
-
- var passed = ( expect == actual ) ? true : false;
-
- // if both objects are numbers, need to replace w/ IEEE standard for rounding
- if ( !passed && typeof(actual) == "number" && typeof(expect) == "number" )
- {
- if ( Math.abs(actual-expect) < 0.0000001 ) {passed = true;}
- }
-
- //verify type is the same
- if ( typeof(expect) != typeof(actual) ) {passed = false;}
-
- return passed;
-}
-
-
-/*
- * Begin printing functions. These functions use the shell's print function.
-* When running tests in the browser, override these functions with functions
-* that use document.write.
- */
-function writeTestCaseResult( expect, actual, string )
-{
- var passed = getTestCaseResult(expect, actual );
- writeFormattedResult( expect, actual, string, passed );
- return passed;
-}
-
-
-function writeFormattedResult( expect, actual, string, passed )
-{
- var s = string ;
- s += ( passed ) ? PASSED : FAILED + expect;
- writeLineToLog( s);
- return passed;
-}
-
-
-function writeLineToLog( string )
-{
- print( string );
-}
-
-
-function writeHeaderToLog( string )
-{
- print( string );
-}
-/* End of printing functions */
-
-
-/*
- * When running in the shell, run the garbage collector after the test has completed.
- */
-function stopTest()
-{
- var gc;
- if ( gc != undefined )
- {
- gc();
- }
-}
-
-
-/*
- * Convenience function for displaying failed test cases.
- * Useful when running tests manually.
-*/
-function getFailedCases()
-{
- for (var i = 0; i < testcases.length; i++ )
- {
- if ( !testcases[i].passed )
- {
- print( testcases[i].description + " = " + testcases[i].actual + " expected: " + testcases[i].expect );
- }
- }
-}
-
-
- /*
- * Date constants and 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();
-var TZ_ADJUST = TZ_DIFF * msPerHour;
-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 to use a date not subject to Daylight Savings Time...
-*/
-function getTimeZoneDiff()
-{
- return -((new Date(2000, 1, 1)).getTimezoneOffset())/60;
-}
-
-
-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 )
-{
- if ( t < 0 ) {return ( (t%msPerDay) + msPerDay );}
- else {return ( t % msPerDay );}
-}
-
-
-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 )
-{
- var day = DayWithinYear( t );
- var leap = InLeapYear(t);
-
- // I know I could use switch but I'd rather not until it's part of ECMA
- 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 = GetSecondSundayInMarch(t) + 2*msPerHour;
- var dst_end = GetFirstSundayInNovember(t) + 2*msPerHour;
-
- if ( t >= dst_start && t < dst_end ) {return msPerHour;}
- else {return 0;}
-
- // Daylight Savings Time starts on the first Sunday in April at 2:00AM in PST.
- // Other time zones will need to override this function.
-
-print( new Date( UTC(dst_start + LocalTZA())) );
-return UTC(dst_start + LocalTZA());
-}
-
-function GetFirstSundayInApril( t ) {
- var year = YearFromTime(t);
- var leap = InLeapYear(t);
-
- var april = TimeFromYear(year) + TimeInMonth(0, leap) + TimeInMonth(1,leap) +
- TimeInMonth(2,leap);
-
- for ( var first_sunday = april; WeekDay(first_sunday) > 0;
- first_sunday += msPerDay )
- {
- ;
- }
-
- return first_sunday;
-}
-function GetLastSundayInOctober( t ) {
- var year = YearFromTime(t);
- var leap = InLeapYear(t);
-
- for ( var oct = TimeFromYear(year), m = 0; m < 9; m++ ) {
- oct += TimeInMonth(m, leap);
- }
- for ( var last_sunday = oct + 30*msPerDay; WeekDay(last_sunday) > 0;
- last_sunday -= msPerDay )
- {
- ;
- }
- return last_sunday;
-}
-
-// Added these two functions because DST rules changed for the US.
-function GetSecondSundayInMarch( t ) {
- var year = YearFromTime(t);
- var leap = InLeapYear(t);
-
- var march = TimeFromYear(year) + TimeInMonth(0, leap) + TimeInMonth(1,leap);
-
- var sundayCount = 0;
- var flag = true;
- for ( var second_sunday = march; flag; second_sunday += msPerDay )
- {
- if (WeekDay(second_sunday) == 0) {
- if(++sundayCount == 2)
- flag = false;
- }
- }
-
- return second_sunday;
-}
-function GetFirstSundayInNovember( t ) {
- var year = YearFromTime(t);
- var leap = InLeapYear(t);
-
- for ( var nov = TimeFromYear(year), m = 0; m < 10; m++ ) {
- nov += TimeInMonth(m, leap);
- }
- for ( var first_sunday = nov; WeekDay(first_sunday) > 0;
- first_sunday += msPerDay )
- {
- ;
- }
- return first_sunday;
-}
-
-
-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 )
-{
- // Jan 0 Feb 1 Mar 2 Apr 3 May 4 June 5 Jul 6 Aug 7 Sep 8 Oct 9 Nov 10 Dec11
-
- // April June September November
- 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 ||
- day == Number.NaN )
- {
- return Number.NaN;
- }
-
- if ( time == Number.POSITIVE_INFINITY ||
- time == Number.POSITIVE_INFINITY ||
- day == Number.NaN)
- {
- 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] );}
-}
-
-
-/* these functions are useful for running tests manually in Rhino */
-
-function GetContext()
-{
- return Packages.com.netscape.javascript.Context.getCurrentContext();
-}
-
-
-function OptLevel( i )
-{
- i = Number(i);
- var cx = GetContext();
- cx.setOptimizationLevel(i);
-}
-
-/* end of Rhino functions */
-
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/15.11.1.1.js b/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/15.11.1.1.js
deleted file mode 100644
index 3aab137..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/15.11.1.1.js
+++ /dev/null
@@ -1,132 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = '';
-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 (bug);
- printStatus (summary);
-
- for (var i = 0; i < UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/15.11.4.4-1.js b/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/15.11.4.4-1.js
deleted file mode 100644
index ca05e7e..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/15.11.4.4-1.js
+++ /dev/null
@@ -1,169 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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.
-*
-* Contributors: 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = '(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 (bug);
- printStatus (summary);
-
- for (var i = 0; i < UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/15.11.7.6-001.js b/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/15.11.7.6-001.js
deleted file mode 100644
index a8097f5..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/15.11.7.6-001.js
+++ /dev/null
@@ -1,125 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/15.11.7.6-002.js b/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/15.11.7.6-002.js
deleted file mode 100644
index f0fae24..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/15.11.7.6-002.js
+++ /dev/null
@@ -1,120 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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 orig = F.prototype;
- delete F.prototype;
- 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/15.11.7.6-003.js b/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/15.11.7.6-003.js
deleted file mode 100644
index 5840427..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/15.11.7.6-003.js
+++ /dev/null
@@ -1,120 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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 orig = F.prototype;
- F.prototype = new Object();
- 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/binding-001.js b/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/binding-001.js
deleted file mode 100644
index 72ff55e..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/binding-001.js
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an
-* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): brendan@mozilla.org, pschwartau@netscape.com
-* 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 UBound = 0;
-var bug = '(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 (bug);
- 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/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/regress-181654.js b/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/regress-181654.js
deleted file mode 100644
index d65efff..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/regress-181654.js
+++ /dev/null
@@ -1,150 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = '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(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 (bug);
- printStatus (summary);
-
- for (var i = 0; i < UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/regress-181914.js b/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/regress-181914.js
deleted file mode 100644
index adf0b46..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/regress-181914.js
+++ /dev/null
@@ -1,189 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = '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 (bug);
- printStatus (summary);
-
- for (var i = 0; i < UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/regress-58946.js b/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/regress-58946.js
deleted file mode 100644
index e2fc798..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/regress-58946.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-*
-*
-*This test arose from Bugzilla bug 58946.
-*The bug was filed when we got the following error (see code below):
-*
-* "ReferenceError: e is not defined"
-*
-*There was no error if we replaced "return e" in the code below with "print(e)".
-*There should be no error with "return e", either -
-*/
-//-------------------------------------------------------------------------------------------------
-var bug = '58946';
-var stat = 'Testing a return statement inside a catch statement inside a function';
-
-
-test();
-
-
-function test() {
- enterFunc ("test");
- printBugNumber (bug);
- printStatus (stat);
-
-
- try
- {
- throw 'PASS';
- }
-
- catch(e)
- {
- return e;
- }
-
-
- exitFunc ("test");
-} \ No newline at end of file
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/regress-95101.js b/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/regress-95101.js
deleted file mode 100644
index 59b5209..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/regress-95101.js
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* Date: 13 August 2001
-*
-* SUMMARY: Invoking an undefined function should produce a ReferenceError
-* See http://bugzilla.mozilla.org/show_bug.cgi?id=95101
-*/
-//-----------------------------------------------------------------------------
-var UBound = 0;
-var bug = 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 (bug);
- 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/JavaScriptCore/tests/mozilla/ecma_3/ExecutionContexts/10.1.3-1.js b/JavaScriptCore/tests/mozilla/ecma_3/ExecutionContexts/10.1.3-1.js
deleted file mode 100644
index a29d2a4..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/ExecutionContexts/10.1.3-1.js
+++ /dev/null
@@ -1,196 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/ExecutionContexts/10.1.3-2.js b/JavaScriptCore/tests/mozilla/ecma_3/ExecutionContexts/10.1.3-2.js
deleted file mode 100644
index f969ca0..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/ExecutionContexts/10.1.3-2.js
+++ /dev/null
@@ -1,157 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = '(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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/ExecutionContexts/10.1.3.js b/JavaScriptCore/tests/mozilla/ecma_3/ExecutionContexts/10.1.3.js
deleted file mode 100644
index 468589a..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/ExecutionContexts/10.1.3.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * The contents of this file are subject to the Netscape 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/NPL/
- *
- * 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 Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- * Rob Ginda rginda@netscape.com
- */
-
-/**
- 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/JavaScriptCore/tests/mozilla/ecma_3/ExecutionContexts/10.1.4-1.js b/JavaScriptCore/tests/mozilla/ecma_3/ExecutionContexts/10.1.4-1.js
deleted file mode 100644
index f4b6f5d..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/ExecutionContexts/10.1.4-1.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * The contents of this file are subject to the Netscape 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/NPL/
- *
- * 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 Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- * Rob Ginda rginda@netscape.com
- */
-
-/**
- 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.
-*/
-
-test();
-
-function test()
-{
- enterFunc ("test");
-
- var y;
- eval("var x = 1");
-
- if (delete y)
- reportFailure ("Expected *NOT* to be able to delete y");
-
- if (typeof x == "undefined")
- reportFailure ("x did not remain defined after eval()");
- else if (x != 1)
- reportFailure ("x did not retain it's value after eval()");
-
- if (!delete x)
- reportFailure ("Expected to be able to delete x");
-
- exitFunc("test");
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/ExecutionContexts/regress-23346.js b/JavaScriptCore/tests/mozilla/ecma_3/ExecutionContexts/regress-23346.js
deleted file mode 100644
index d831720..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/ExecutionContexts/regress-23346.js
+++ /dev/null
@@ -1,53 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * The contents of this file are subject to the Netscape 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/NPL/
- *
- * 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 Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- * Rob Ginda rginda@netscape.com
- */
-
-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/JavaScriptCore/tests/mozilla/ecma_3/Expressions/11.6.1-1.js b/JavaScriptCore/tests/mozilla/ecma_3/Expressions/11.6.1-1.js
deleted file mode 100644
index 0963ef7..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Expressions/11.6.1-1.js
+++ /dev/null
@@ -1,171 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Expressions/11.9.6-1.js b/JavaScriptCore/tests/mozilla/ecma_3/Expressions/11.9.6-1.js
deleted file mode 100644
index 8153585..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Expressions/11.9.6-1.js
+++ /dev/null
@@ -1,208 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/FunExpr/fe-001-n.js b/JavaScriptCore/tests/mozilla/ecma_3/FunExpr/fe-001-n.js
deleted file mode 100644
index 34c37e8..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/FunExpr/fe-001-n.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * The contents of this file are subject to the Netscape 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/NPL/
- *
- * 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 Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- * Rob Ginda rginda@netscape.com
- */
-
-test();
-
-function test()
-{
- enterFunc ("test");
- printStatus ("Function Expression test.");
-
- var x = function f(){return "inner";}();
- var y = f();
- reportFailure ("Previous statement should have thrown a ReferenceError");
-
- exitFunc ("test");
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/FunExpr/fe-001.js b/JavaScriptCore/tests/mozilla/ecma_3/FunExpr/fe-001.js
deleted file mode 100644
index 569a636..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/FunExpr/fe-001.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * The contents of this file are subject to the Netscape 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/NPL/
- *
- * 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 Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- * Rob Ginda rginda@netscape.com
- */
-
-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/JavaScriptCore/tests/mozilla/ecma_3/FunExpr/fe-002.js b/JavaScriptCore/tests/mozilla/ecma_3/FunExpr/fe-002.js
deleted file mode 100644
index 35a9925..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/FunExpr/fe-002.js
+++ /dev/null
@@ -1,43 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * The contents of this file are subject to the Netscape 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/NPL/
- *
- * 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 Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- * Rob Ginda rginda@netscape.com
- */
-
-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/JavaScriptCore/tests/mozilla/ecma_3/Function/15.3.4.3-1.js b/JavaScriptCore/tests/mozilla/ecma_3/Function/15.3.4.3-1.js
deleted file mode 100644
index 123b944..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Function/15.3.4.3-1.js
+++ /dev/null
@@ -1,205 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Function/15.3.4.4-1.js b/JavaScriptCore/tests/mozilla/ecma_3/Function/15.3.4.4-1.js
deleted file mode 100644
index e9e2b64..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Function/15.3.4.4-1.js
+++ /dev/null
@@ -1,180 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Function/arguments-001.js b/JavaScriptCore/tests/mozilla/ecma_3/Function/arguments-001.js
deleted file mode 100644
index 98aca18..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Function/arguments-001.js
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): brendan@mozilla.org, pschwartau@netscape.com
-* Date: 07 May 2001
-*
-* SUMMARY: Testing the arguments object
-*
-* See http://bugzilla.mozilla.org/show_bug.cgi?id=72884
-*/
-//-------------------------------------------------------------------------------------------------
-var UBound = 0;
-var bug = 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 (bug);
- printStatus (summary);
-
- for (var i = 0; i < UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Function/call-001.js b/JavaScriptCore/tests/mozilla/ecma_3/Function/call-001.js
deleted file mode 100644
index f9bdf62..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Function/call-001.js
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an
-* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 UBound = 0;
-var bug = '(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 (bug);
- printStatus (summary);
-
- for (var i = 0; i < UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-104584.js b/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-104584.js
deleted file mode 100644
index db984a2..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-104584.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): jband@netscape.com, pschwartau@netscape.com
-* Date: 14 October 2001
-*
-* SUMMARY: Regression test for Bugzilla bug 104584
-* See http://bugzilla.mozilla.org/show_bug.cgi?id=104584
-*
-* Testing that we don't crash on this code. The idea is to
-* call F,G WITHOUT providing an argument. This caused a crash
-* on the second call to obj.toString() or print(obj) below -
-*/
-//-----------------------------------------------------------------------------
-var bug = 104584;
-var summary = "Testing that we don't crash on this code -";
-
-printBugNumber (bug);
-printStatus (summary);
-
-F();
-G();
-
-function F(obj)
-{
- if(!obj)
- obj = {};
- obj.toString();
- gc();
- obj.toString();
-}
-
-
-function G(obj)
-{
- if(!obj)
- obj = {};
- print(obj);
- gc();
- print(obj);
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-131964.js b/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-131964.js
deleted file mode 100644
index d90aa17..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-131964.js
+++ /dev/null
@@ -1,191 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-137181.js b/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-137181.js
deleted file mode 100644
index 1417601..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-137181.js
+++ /dev/null
@@ -1,108 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-193555.js b/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-193555.js
deleted file mode 100644
index cc3c1eb..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-193555.js
+++ /dev/null
@@ -1,131 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-49286.js b/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-49286.js
deleted file mode 100644
index 5f7093a..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-49286.js
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an
-* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributors: jlaprise@delanotech.com,pschwartau@netscape.com
-* 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 UBound = 0;
-var bug = 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 (bug);
- 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/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-58274.js b/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-58274.js
deleted file mode 100644
index 8a5c2e6..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-58274.js
+++ /dev/null
@@ -1,221 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-85880.js b/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-85880.js
deleted file mode 100644
index fea243e..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-85880.js
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 UBound = 0;
-var bug = 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 (bug);
- 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/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-94506.js b/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-94506.js
deleted file mode 100644
index de4a3a3..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-94506.js
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): deneen@alum.bucknell.edu, shaver@mozilla.org
-* 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 UBound = 0;
-var bug = 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 (bug);
- printStatus (summary);
-
- for (var i = 0; i < UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-97921.js b/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-97921.js
deleted file mode 100644
index c982673..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Function/regress-97921.js
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): georg@bioshop.de, pschwartau@netscape.com
-* 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 UBound = 0;
-var bug = 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 (bug);
- 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/JavaScriptCore/tests/mozilla/ecma_3/Function/scope-001.js b/JavaScriptCore/tests/mozilla/ecma_3/Function/scope-001.js
deleted file mode 100644
index 9c4e8fa..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Function/scope-001.js
+++ /dev/null
@@ -1,249 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com, rogerl@netscape.com
-* 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 UBound = 0;
-var bug = '(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();
-}
-// Mozilla result, which contradicts IE and the ECMA spec: expect = 2;
-expect = 1;
-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();
-// Mozilla result, which contradicts IE and the ECMA spec: expect = 2;
-expect = 1;
-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();
-// Mozilla result, which contradicts IE and the ECMA spec: expect = 3;
-expect = 1;
-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();
-// Mozilla result, which contradicts IE and the ECMA spec: expect = 2;
-expect = 1;
-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();
-}
-// Mozilla result, which contradicts IE and the ECMA spec: expect = 2; // NOT 3 !!!
-expect = 1;
-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 (bug);
- printStatus (summary);
-
- for (var i = 0; i < UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Function/scope-002.js b/JavaScriptCore/tests/mozilla/ecma_3/Function/scope-002.js
deleted file mode 100644
index 8e4626e..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Function/scope-002.js
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com, rogerl@netscape.com
-* 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 UBound = 0;
-var bug = '(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 (bug);
- printStatus (summary);
-
- for (var i = 0; i < UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Number/15.7.4.5-1.js b/JavaScriptCore/tests/mozilla/ecma_3/Number/15.7.4.5-1.js
deleted file mode 100644
index 767ee6e..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Number/15.7.4.5-1.js
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an
-* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 UBound = 0;
-var bug = '(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 (bug);
- 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/JavaScriptCore/tests/mozilla/ecma_3/Number/15.7.4.6-1.js b/JavaScriptCore/tests/mozilla/ecma_3/Number/15.7.4.6-1.js
deleted file mode 100644
index 9a06f46..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Number/15.7.4.6-1.js
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an
-* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 UBound = 0;
-var bug = '(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 (bug);
- 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/JavaScriptCore/tests/mozilla/ecma_3/Number/15.7.4.7-1.js b/JavaScriptCore/tests/mozilla/ecma_3/Number/15.7.4.7-1.js
deleted file mode 100644
index c29c0af..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Number/15.7.4.7-1.js
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an
-* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 UBound = 0;
-var bug = '(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 (bug);
- 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/JavaScriptCore/tests/mozilla/ecma_3/NumberFormatting/tostring-001.js b/JavaScriptCore/tests/mozilla/ecma_3/NumberFormatting/tostring-001.js
deleted file mode 100644
index e99912d..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/NumberFormatting/tostring-001.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * The contents of this file are subject to the Netscape 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/NPL/
- *
- * 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 Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- * Rob Ginda rginda@netscape.com
- */
-
-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/JavaScriptCore/tests/mozilla/ecma_3/Object/8.6.2.6-001.js b/JavaScriptCore/tests/mozilla/ecma_3/Object/8.6.2.6-001.js
deleted file mode 100644
index 1c7ef47..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Object/8.6.2.6-001.js
+++ /dev/null
@@ -1,108 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Object/class-001.js b/JavaScriptCore/tests/mozilla/ecma_3/Object/class-001.js
deleted file mode 100644
index 6572995..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Object/class-001.js
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an "AS IS"
-* basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 i = 0;
-var UBound = 0;
-var bug = '(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';
-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 (bug);
- 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/JavaScriptCore/tests/mozilla/ecma_3/Object/class-002.js b/JavaScriptCore/tests/mozilla/ecma_3/Object/class-002.js
deleted file mode 100644
index bc5a7de..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Object/class-002.js
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an "AS IS"
-* basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 i = 0;
-var UBound = 0;
-var bug = '(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 (bug);
- 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/JavaScriptCore/tests/mozilla/ecma_3/Object/class-003.js b/JavaScriptCore/tests/mozilla/ecma_3/Object/class-003.js
deleted file mode 100644
index 012a179..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Object/class-003.js
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an "AS IS"
-* basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 i = 0;
-var UBound = 0;
-var bug = 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 (bug);
- 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/JavaScriptCore/tests/mozilla/ecma_3/Object/class-004.js b/JavaScriptCore/tests/mozilla/ecma_3/Object/class-004.js
deleted file mode 100644
index 6c248cb..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Object/class-004.js
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an "AS IS"
-* basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 i = 0;
-var UBound = 0;
-var bug = 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 (bug);
- 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/JavaScriptCore/tests/mozilla/ecma_3/Object/class-005.js b/JavaScriptCore/tests/mozilla/ecma_3/Object/class-005.js
deleted file mode 100644
index dd238f9..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Object/class-005.js
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an "AS IS"
-* basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 i = 0;
-var UBound = 0;
-var bug = '(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 (bug);
- 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/JavaScriptCore/tests/mozilla/ecma_3/Object/regress-72773.js b/JavaScriptCore/tests/mozilla/ecma_3/Object/regress-72773.js
deleted file mode 100644
index de3f2fc..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Object/regress-72773.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an "AS IS"
-* basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 bug = 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 (bug);
- printStatus (summary);
-
- reportCompare(expect, actual, status);
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Object/regress-79129-001.js b/JavaScriptCore/tests/mozilla/ecma_3/Object/regress-79129-001.js
deleted file mode 100644
index a5ff87c..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Object/regress-79129-001.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an "AS IS"
-* basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 bug = 79129;
-var summary = "Regression test: we shouldn't crash on this code";
-
-//-------------------------------------------------------------------------------------------------
-test();
-//-------------------------------------------------------------------------------------------------
-
-
-function test()
-{
- enterFunc ('test');
- printBugNumber (bug);
- printStatus (summary);
- tryThis();
- 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/JavaScriptCore/tests/mozilla/ecma_3/Object/shell.js b/JavaScriptCore/tests/mozilla/ecma_3/Object/shell.js
deleted file mode 100644
index b92ffd2..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Object/shell.js
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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
-*/
-//-------------------------------------------------------------------------------------------------
-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;
-
-
-// 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/JavaScriptCore/tests/mozilla/ecma_3/Operators/11.13.1-001.js b/JavaScriptCore/tests/mozilla/ecma_3/Operators/11.13.1-001.js
deleted file mode 100644
index 89b0c05..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Operators/11.13.1-001.js
+++ /dev/null
@@ -1,147 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Operators/11.4.1-001.js b/JavaScriptCore/tests/mozilla/ecma_3/Operators/11.4.1-001.js
deleted file mode 100644
index 7edffd2..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Operators/11.4.1-001.js
+++ /dev/null
@@ -1,115 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.2-1.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.2-1.js
deleted file mode 100644
index f35c487..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.2-1.js
+++ /dev/null
@@ -1,176 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, the GPL or the LGPL.
-*
-* ***** END LICENSE BLOCK *****
-*
-*
-* Date: 09 July 2002
-* SUMMARY: RegExp conformance test
-*
-* These testcases are derived from the examples in the ECMA-262 Ed.3 spec
-* scattered through section 15.10.2.
-*
-*/
-//-----------------------------------------------------------------------------
-var i = 0;
-var bug = '(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 (bug);
- printStatus (summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.3.1-1.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.3.1-1.js
deleted file mode 100644
index b12a14c..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.3.1-1.js
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 bug = '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 (bug);
- 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);
-} \ No newline at end of file
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.3.1-2.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.3.1-2.js
deleted file mode 100644
index ed309b0..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.3.1-2.js
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 bug = '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 (bug);
- 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);
-} \ No newline at end of file
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.4.1-1.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.4.1-1.js
deleted file mode 100644
index c122abb..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.4.1-1.js
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 bug = '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 (bug);
- printStatus (summary);
-
- for (i in patterns)
- {
- s = patterns[i];
- status =getStatus(s);
- obj1 = new RegExp(s);
- obj2 = new RegExp(obj1);
-
- for (prop in obj2)
- {
- msg = status + quote(prop);
- actual = obj2[prop];
- expect = obj1[prop];
- reportCompare (expect, actual, msg);
- }
- }
-
- exitFunc ('test');
-}
-
-
-function getStatus(regexp)
-{
- return (statprefix + quote(regexp) + statsuffix);
-}
-
-
-function quote(text)
-{
- return (singlequote + text + singlequote);
-} \ No newline at end of file
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.4.1-2.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.4.1-2.js
deleted file mode 100644
index e8613a4..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.4.1-2.js
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 bug = '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 (bug);
- 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
-
- for (prop in obj2)
- {
- msg = status + quote(prop);
- actual = obj2[prop];
- expect = obj1[prop];
- reportCompare (expect, actual, msg);
- }
- }
-
- exitFunc ('test');
-}
-
-
-function getStatus(regexp)
-{
- return (statprefix + quote(regexp) + statsuffix);
-}
-
-
-function quote(text)
-{
- return (singlequote + text + singlequote);
-} \ No newline at end of file
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.4.1-3.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.4.1-3.js
deleted file mode 100644
index 03c4498..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.4.1-3.js
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 bug = '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 (bug);
- 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);
-
- for (prop in obj2)
- {
- msg = status + quote(prop);
- actual = obj2[prop];
- expect = obj1[prop];
- reportCompare (expect, actual, msg);
- }
- }
- }
-
- exitFunc ('test');
-}
-
-
-function getStatus(regexp, flag)
-{
- return (statprefix + quote(regexp) + statmiddle + flag + statsuffix);
-}
-
-
-function quote(text)
-{
- return (singlequote + text + singlequote);
-} \ No newline at end of file
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.4.1-4.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.4.1-4.js
deleted file mode 100644
index e767a69..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.4.1-4.js
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 bug = '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 (bug);
- 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
-
- for (prop in obj2)
- {
- msg = status + quote(prop);
- actual = obj2[prop];
- expect = obj1[prop];
- reportCompare (expect, actual, msg);
- }
- }
- }
-
- exitFunc ('test');
-}
-
-
-function getStatus(regexp, flag)
-{
- return (statprefix + quote(regexp) + statmiddle + flag + statsuffix);
-}
-
-
-function quote(text)
-{
- return (singlequote + text + singlequote);
-} \ No newline at end of file
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.4.1-5-n.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.4.1-5-n.js
deleted file mode 100644
index 5868e77..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.4.1-5-n.js
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 bug = '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';
-
-
-
-//-------------------------------------------------------------------------------------------------
-test();
-//-------------------------------------------------------------------------------------------------
-
-
-function test()
-{
- enterFunc ('test');
- printBugNumber (bug);
- 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 -
- reportFailure(cnFAILURE);
- }
- }
-
- exitFunc ('test');
-}
-
-
-function getStatus(regexp, flag)
-{
- return (statprefix + quote(regexp) + statsuffix + flag);
-}
-
-
-function quote(text)
-{
- return (singlequote + text + singlequote);
-} \ No newline at end of file
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.6.2-1.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.6.2-1.js
deleted file mode 100644
index 365e32d..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.6.2-1.js
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an "AS IS"
-* basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 i = 0;
-var bug = '(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 (bug);
- printStatus (summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.6.2-2.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.6.2-2.js
deleted file mode 100644
index cce4c2c..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/15.10.6.2-2.js
+++ /dev/null
@@ -1,362 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 i = 0;
-var bug = 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 (bug);
- printStatus (summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/octal-001.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/octal-001.js
deleted file mode 100644
index 34b3e34..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/octal-001.js
+++ /dev/null
@@ -1,131 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 i = 0;
-var bug = 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(bug);
- printStatus(summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/octal-002.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/octal-002.js
deleted file mode 100644
index 6d75e48..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/octal-002.js
+++ /dev/null
@@ -1,213 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 i = 0;
-var bug = 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 (bug);
- printStatus (summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/perlstress-001.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/perlstress-001.js
deleted file mode 100644
index fd544c2..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/perlstress-001.js
+++ /dev/null
@@ -1,3225 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 i = 0;
-var bug = 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 (bug);
- printStatus (summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/perlstress-002.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/perlstress-002.js
deleted file mode 100644
index 44cfbb5..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/perlstress-002.js
+++ /dev/null
@@ -1,1837 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 i = 0;
-var bug = 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 (bug);
- printStatus (summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-100199.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-100199.js
deleted file mode 100644
index 8380499..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-100199.js
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an "AS IS"
-* basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 i = 0;
-var bug = 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 (bug);
- printStatus (summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-103087.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-103087.js
deleted file mode 100644
index 8cfc662..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-103087.js
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an "AS IS"
-* basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): bedney@technicalpursuit.com, pschwartau@netscape.com
-* 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 UBound = 0;
-var bug = 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 (bug);
- 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();
- }
-
- exitFunc ('test');
-}
-
-
-function getResults()
-{
- lm = RegExp.lastMatch;
- lc = RegExp.leftContext;
- rc = RegExp.rightContext;
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-105972.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-105972.js
deleted file mode 100644
index 9f0cdb5..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-105972.js
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an "AS IS"
-* basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): mozilla@pdavis.cx, pschwartau@netscape.com
-* 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 i = 0;
-var bug = 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 (bug);
- printStatus (summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-119909.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-119909.js
deleted file mode 100644
index 4bb2866..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-119909.js
+++ /dev/null
@@ -1,86 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 bug = 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(bug);
- printStatus(summary);
-
- // Changed the parameter from 500 to 200 for WebKit, because PCRE reports an error for more parentheses.
- testThis(200, NO_BACKREFS, 'hello', 'goodbye');
- testThis(200, DO_BACKREFS, 'hello', 'goodbye');
-
- 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/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-122076.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-122076.js
deleted file mode 100644
index ed2afc3..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-122076.js
+++ /dev/null
@@ -1,103 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 bug = 122076;
-var summary = "Don't crash on invalid regexp literals / \\/ /";
-var STRESS = 10;
-var sEval = '';
-
-printBugNumber(bug);
-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)
- {
- }
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-123437.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-123437.js
deleted file mode 100644
index 77194fe..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-123437.js
+++ /dev/null
@@ -1,107 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 i = 0;
-var bug = 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 (bug);
- printStatus (summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-165353.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-165353.js
deleted file mode 100644
index 10a235f..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-165353.js
+++ /dev/null
@@ -1,117 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 i = 0;
-var bug = 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 (bug);
- printStatus (summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-169497.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-169497.js
deleted file mode 100644
index 0069bfd..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-169497.js
+++ /dev/null
@@ -1,100 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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@t-online.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 NPL, 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 NPL, 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 i = 0;
-var bug = 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 (bug);
- printStatus (summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-169534.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-169534.js
deleted file mode 100644
index c29d11e..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-169534.js
+++ /dev/null
@@ -1,90 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-187133.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-187133.js
deleted file mode 100644
index bffcda8..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-187133.js
+++ /dev/null
@@ -1,137 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 i = 0;
-var bug = 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 (bug);
- printStatus (summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-188206.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-188206.js
deleted file mode 100644
index 6fae0e1..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-188206.js
+++ /dev/null
@@ -1,282 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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(7);
-testThis(' /*a/ ');
-
-status = inSection(8);
-testThis(' /**a/ ');
-
-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 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}}/ ');
-
-
-/*
- * 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-191479.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-191479.js
deleted file mode 100644
index a3d8b39..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-191479.js
+++ /dev/null
@@ -1,193 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 i = 0;
-var bug = 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 (bug);
- printStatus (summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-202564.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-202564.js
deleted file mode 100644
index 14722c3..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-202564.js
+++ /dev/null
@@ -1,96 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 i = 0;
-var bug = 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 (bug);
- printStatus (summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-209067.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-209067.js
deleted file mode 100644
index ba4c1e1..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-209067.js
+++ /dev/null
@@ -1,1101 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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,'&lt;').replace(/>/g,'&gt;');
- }
-
- h+='\n';
- h=h.replace(/&([^\s]+;)/g,'&lt;&amp;$1&gt;');
- 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>&lt;' + p + '&gt;</span>';
-
- p=p.replace(/\\'/g,'\\&#39;').replace(/\\"/g,'\\&#34;').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'&lt;<span class=' + (s.match(/<\s*\//)?'end-tag':'start-tag') + '>' + p + '</span>&gt;';
- }
- )
-
-
- h=h.replace(/&lt;(&[^\s]+;)&gt;/g,'<span class=entity>$1</span>');
- h=h.replace(/(&lt;!--[\s\S]*--&gt;)/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(bug);
- 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>&nbsp;&nbsp;</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>&nbsp;&nbsp;</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>&nbsp;&nbsp;</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>&nbsp;<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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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>&nbsp;<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">&nbsp;</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>&nbsp;<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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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 &amp; Space</a></div></td></tr>';
-s += ' <tr class="cnnNavRow"><td class="swath">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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>&nbsp;</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 += '&#8226; <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 += '&#8226; <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 += '&#8226; <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 += '&#8226; <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">&#8226; <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">&#8226; <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">&#8226; <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">&#8226; <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">&#8226; <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">&#8226; <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">&#8226; <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"]]&#8226;&nbsp;[[b]][[span style="color:#C00;"]]CNN[[/span]]Radio:[[/b]]&nbsp;[[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]]&nbsp;[[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">&nbsp;<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&amp;P 500">S&amp;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 += '&#8226;&nbsp;<a href="/2003/US/South/06/11/miami.rapist/index.html">Miami police link 4 rapes to serial rapist</a><br>';
-s += '';
-s += ' ';
-s += '&#8226;&nbsp;<a href="/2003/LAW/06/12/mistaken.identity.ap/index.html">Woman mistaken for fugitive jailed</a><br>';
-s += '';
-s += ' ';
-s += '&#8226;&nbsp;<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 += '&#8226;&nbsp;<a href="/2003/WORLD/europe/06/12/nato.bases/index.html">NATO reshapes for new era</a><br>';
-s += '';
-s += ' ';
-s += '&#8226;&nbsp;<a href="/2003/WORLD/africa/06/12/congo.democratic/index.html">U.N. reviews Bunia peace force</a><br>';
-s += '';
-s += '';
-s += '';
-s += '&#8226;&nbsp;<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 += '&#8226;&nbsp;<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 += '&#8226;&nbsp;<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 += '&#8226;&nbsp;<a href="/2003/SHOWBIZ/TV/06/12/cnn.obrien/index.html">CNN hires Soledad OBrien for "AM"</a><br>';
-s += '';
-s += ' ';
-s += '&#8226;&nbsp;<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 += '&#8226;&nbsp;<a href="/2003/ALLPOLITICS/06/11/schwarzenegger.ap/index.html">Schwarzenegger on California politics</a><br>';
-s += '';
-s += ' ';
-s += '&#8226;&nbsp;<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 += '&#8226;&nbsp;<a href="/2003/LAW/06/12/plaintiff.advances.ap/index.html">Court bars cash advances to plaintiffs</a><br>';
-s += '';
-s += ' ';
-s += '&#8226;&nbsp;<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 += '&#8226;&nbsp;<a href="/2003/HEALTH/06/12/monkeypox.ap/index.html">Monkeypox spreading person-to-person?</a><br>';
-s += '';
-s += ' ';
-s += '&#8226;&nbsp;<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 += '&#8226;&nbsp;<a href="/2003/TECH/science/06/12/hydrogen.ozone.ap/index.html">Hydrogen fuel may disturb ozone layer</a><br>';
-s += '';
-s += ' ';
-s += '&#8226;&nbsp;<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 += '&#8226;&nbsp;<a href="/2003/TRAVEL/DESTINATIONS/06/12/walk.across.america.ap/index.html">Walking America from coast to coast</a><br>';
-s += '';
-s += ' ';
-s += '&#8226;&nbsp;<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 += '&#8226;&nbsp;<a href="/2003/EDUCATION/06/12/arabs.prom.ap/index.html">Arab students seek prom balance</a><br>';
-s += '';
-s += ' ';
-s += '&#8226;&nbsp;<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 += '&#8226;&nbsp;<a href="/cnnsi/golfonline/2003/us_open/news/2003/06/12/open_thursday_ap">Woods eyes third U.S. Open title</a><br>';
-s += '&#8226;&nbsp;<a href="/cnnsi/basketball/news/2003/06/12/jordan_ruling_ap">Judge denies Jordan&#039;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 += '&#8226;&nbsp;<a href="/money/2003/06/12/pf/saving/duppies/index.htm">Here come the "Duppies"</a><br>';
-s += '&#8226;&nbsp;<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">&nbsp;<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"> &#8226;&nbsp;<a target="new" href="/time/magazine/article/0,9171,1101030616-457387,00.html?CNN=yes">Where the Jobs Are</a><br> &#8226;&nbsp;<a target="new" href="/time/magazine/article/0,9171,1101030616-457373,00.html?CNN=yes">Of Dogs and Men</a><br> &#8226;&nbsp;<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>&nbsp;&nbsp;<a target="new" href="/linkto/time.main.html">Subscribe to TIME</a>&nbsp;&nbsp;</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 += '&#8226;&nbsp;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 += '&#8226;&nbsp;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 += '&#8226;&nbsp;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>&nbsp;&nbsp;<a href="http://subs.timeinc.net/CampaignHandler/si_cnnsi?source_id=19">Subscribe to Sports Illustrated</a>&nbsp;&nbsp;</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"> &#8226;&nbsp;<a target="new" href="/linkto/nyt/story/1.0612.html">U.S. Widens Checks at Foreign Ports</a><br> &#8226;&nbsp;<a target="new" href="/linkto/nyt/story/2.0612.html">Rumsfeld: Iran Developing Nuclear Arms</a><br> &#8226;&nbsp;<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>&nbsp;&nbsp;<a target="new" href="/linkto/nyt.main.html">Get 50% OFF the NY Times</a>&nbsp;&nbsp;</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>&copy; 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/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-209919.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-209919.js
deleted file mode 100644
index e1bb76c..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-209919.js
+++ /dev/null
@@ -1,169 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 i = 0;
-var bug = 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 (bug);
- printStatus (summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-216591.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-216591.js
deleted file mode 100644
index cc86d73..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-216591.js
+++ /dev/null
@@ -1,112 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 i = 0;
-var bug = 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 (bug);
- printStatus (summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-220367-001.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-220367-001.js
deleted file mode 100644
index e6a767e..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-220367-001.js
+++ /dev/null
@@ -1,99 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 i = 0;
-var bug = 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 (bug);
- printStatus (summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-220367-002.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-220367-002.js
deleted file mode 100644
index 62eec23..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-220367-002.js
+++ /dev/null
@@ -1,107 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-24712.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-24712.js
deleted file mode 100644
index 41c17f6..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-24712.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * The contents of this file are subject to the Netscape 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/NPL/
- *
- * 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 Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- * Rob Ginda rginda@netscape.com
- */
-
-test();
-
-function test()
-{
- enterFunc ("test");
-
- printBugNumber (24712);
-
- var re = /([\S]+([ \t]+[\S]+)*)[ \t]*=[ \t]*[\S]+/;
- var result = re.exec("Course_Creator = Test");
-
- if (!result)
- reportFailure ("exec() returned null.");
-
- exitFunc ("test");
-
-}
-
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-28686.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-28686.js
deleted file mode 100644
index 599f613..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-28686.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * The contents of this file are subject to the Netscape 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/NPL/
- *
- * 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 Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- * Rob Ginda rginda@netscape.com
- */
-
-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/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-31316.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-31316.js
deleted file mode 100644
index b68e42a..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-31316.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an "AS IS"
-* basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 i = 0;
-var bug = 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 (bug);
- printStatus (summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-57572.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-57572.js
deleted file mode 100644
index de9834a..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-57572.js
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an "AS IS"
-* basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 i = 0;
-var bug = 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 (bug);
- printStatus (summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-57631.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-57631.js
deleted file mode 100644
index 1917ed4..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-57631.js
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 bug = '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{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 (bug);
- 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);
-
- 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:
- actual = (e instanceof SyntaxError)? cnSUCCESS : cnFAILURE;
- expect = cnSUCCESS;
- reportCompare(expect, actual, status);
- }
- }
- }
-}
-
-
-function getStatus(regexp, flag)
-{
- return (statprefix + quote(regexp) + statsuffix + quote(flag));
-}
-
-
-function quote(text)
-{
- return (singlequote + text + singlequote);
-} \ No newline at end of file
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-67773.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-67773.js
deleted file mode 100644
index e399050..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-67773.js
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an "AS IS"
-* basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 i = 0;
-var bug = 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 (bug);
- printStatus (summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-72964.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-72964.js
deleted file mode 100644
index 5965313..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-72964.js
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an "AS IS"
-* basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 i = 0;
-var bug = 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 (bug);
- printStatus (summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-76683.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-76683.js
deleted file mode 100644
index 59b95b9..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-76683.js
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an "AS IS"
-* basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 i = 0;
-var bug = 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 (bug);
- printStatus (summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-78156.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-78156.js
deleted file mode 100644
index 08947ce..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-78156.js
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an "AS IS"
-* basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 i = 0;
-var bug = 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 (bug);
- printStatus (summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-85721.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-85721.js
deleted file mode 100644
index 41f5bc0..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-85721.js
+++ /dev/null
@@ -1,271 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 bug = 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 (bug);
-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/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-87231.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-87231.js
deleted file mode 100644
index 7fde4ff..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-87231.js
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an "AS IS"
-* basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 i = 0;
-var bug = 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 (bug);
- printStatus (summary);
- testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-98306.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-98306.js
deleted file mode 100644
index e812ebf..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/regress-98306.js
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an "AS IS"
-* basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): jrgm@netscape.com, pschwartau@netscape.com
-* 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 bug = 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 (bug);
- printStatus (summary);
-
- s = '"Hello".match(/[/]/)';
- tryThis(s);
-
- s = 're = /[/';
- tryThis(s);
-
- s = 're = /[/]/';
- tryThis(s);
-
- s = 're = /[//]/';
- tryThis(s);
-
- 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/JavaScriptCore/tests/mozilla/ecma_3/RegExp/shell.js b/JavaScriptCore/tests/mozilla/ecma_3/RegExp/shell.js
deleted file mode 100644
index 8dec83c..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/RegExp/shell.js
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an "AS IS"
-* basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* Date: 07 February 2001
-*
-* Functionality common to RegExp testing -
-*/
-//-------------------------------------------------------------------------------------------------
-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);
-
-
- if(actualmatch)
- {
- if(expectedmatch)
- {
- // expectedmatch and actualmatch are arrays -
- lExpect = expectedmatch.length;
- lActual = actualmatch.length;
-
- if (lActual != lExpect)
- {
- reportFailure(
- state + ERR_LENGTH +
- MSG_EXPECT + formatArray(expectedmatch) +
- MSG_ACTUAL + formatArray(actualmatch) +
- CHAR_NL
- );
- continue;
- }
-
- // OK, the arrays have same length -
- if (formatArray(expectedmatch) != formatArray(actualmatch))
- {
- reportFailure(
- state + ERR_MATCH +
- MSG_EXPECT + formatArray(expectedmatch) +
- MSG_ACTUAL + formatArray(actualmatch) +
- CHAR_NL
- );
- }
-
- }
- else //expectedmatch is null - that is, we did not expect a match -
- {
- reportFailure(
- state + ERR_UNEXP_MATCH +
- MSG_EXPECT + expectedmatch +
- MSG_ACTUAL + formatArray(actualmatch) +
- CHAR_NL
- );
- }
-
- }
- else // actualmatch is null
- {
- if (expectedmatch)
- {
- reportFailure(
- state + ERR_NO_MATCH +
- MSG_EXPECT + formatArray(expectedmatch) +
- MSG_ACTUAL + actualmatch +
- CHAR_NL
- );
- }
- else // we did not expect a match
- {
- // Being ultra-cautious. Presumably expectedmatch===actualmatch===null
- 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/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-121744.js b/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-121744.js
deleted file mode 100644
index ca4653a..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-121744.js
+++ /dev/null
@@ -1,212 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-131348.js b/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-131348.js
deleted file mode 100644
index 7315373..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-131348.js
+++ /dev/null
@@ -1,179 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-157509.js b/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-157509.js
deleted file mode 100644
index ad6bd77..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-157509.js
+++ /dev/null
@@ -1,106 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-194364.js b/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-194364.js
deleted file mode 100644
index 830a6c6..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-194364.js
+++ /dev/null
@@ -1,134 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 194364;
-var summary = 'Testing eval statements with conditional function expressions';
-var status = '';
-var statusitems = [];
-var actual = '';
-var actualvalues = [];
-var expect= '';
-var expectedvalues = [];
-
-
-status = inSection(1);
-actual = eval('1; function() {}');
-expect = 1;
-addThis();
-
-status = inSection(2);
-actual = eval('2; function f() {}');
-expect = 2;
-addThis();
-
-status = inSection(3);
-actual = eval('3; if (true) function() {}');
-expect = 3;
-addThis();
-
-status = inSection(4);
-actual = eval('4; if (true) function f() {}');
-expect = 4;
-addThis();
-
-status = inSection(5);
-actual = eval('5; if (false) function() {}');
-expect = 5;
-addThis();
-
-status = inSection(6);
-actual = eval('6; if (false) function f() {}');
-expect = 6;
-addThis();
-
-status = inSection(7);
-actual = eval('7; switch(true) { case true: function() {} }');
-expect = 7;
-addThis();
-
-status = inSection(8);
-actual = eval('8; switch(true) { case true: function f() {} }');
-expect = 8;
-addThis();
-
-status = inSection(9);
-actual = eval('9; switch(false) { case false: function() {} }');
-expect = 9;
-addThis();
-
-status = inSection(10);
-actual = eval('10; switch(false) { case false: function f() {} }');
-expect = 10;
-addThis();
-
-
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-
-
-function addThis()
-{
- statusitems[UBound] = status;
- actualvalues[UBound] = actual;
- expectedvalues[UBound] = expect;
- UBound++;
-}
-
-
-function test()
-{
- enterFunc('test');
- printBugNumber(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-74474-001.js b/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-74474-001.js
deleted file mode 100644
index d592264..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-74474-001.js
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an "AS IS"
-* basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 UBound = 0;
-var bug = 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 (bug);
- 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/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-74474-002.js b/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-74474-002.js
deleted file mode 100644
index 52f8787..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-74474-002.js
+++ /dev/null
@@ -1,9076 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an "AS IS"
-* basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): brendan@mozilla.org, pschwartau@netscape.com
-* 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 UBound = 0;
-var bug = 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 (bug);
- printStatus (summary);
-
- for (var i = 0; i < UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-74474-003.js b/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-74474-003.js
deleted file mode 100644
index 681fb3f..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-74474-003.js
+++ /dev/null
@@ -1,9078 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an "AS IS"
-* basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): brendan@mozilla.org, pschwartau@netscape.com
-* 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 UBound = 0;
-var bug = 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 (bug);
- printStatus (summary);
-
- for (var i = 0; i < UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-83532-001.js b/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-83532-001.js
deleted file mode 100644
index 8bde123..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-83532-001.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 bug = 83532;
-var summary = "Testing that we don't crash on switch case -1";
-
-//-------------------------------------------------------------------------------------------------
-test();
-//-------------------------------------------------------------------------------------------------
-
-function test()
-{
- enterFunc ('test');
- printBugNumber (bug);
- 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();
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-83532-002.js b/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-83532-002.js
deleted file mode 100644
index 085eebf..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Statements/regress-83532-002.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* 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 bug = 83532;
-var summary = "Testing that we don't crash on switch case -1";
-var sToEval = '';
-
-//-------------------------------------------------------------------------------------------------
-test();
-//-------------------------------------------------------------------------------------------------
-
-function test()
-{
- enterFunc ('test');
- printBugNumber (bug);
- 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);
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Statements/switch-001.js b/JavaScriptCore/tests/mozilla/ecma_3/Statements/switch-001.js
deleted file mode 100644
index 5dd8b47..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Statements/switch-001.js
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* Software distributed under the License is distributed on an "AS IS"
-* basis, WITHOUT WARRANTY OF ANY KIND, either expressed
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com
-* Date: 07 May 2001
-*
-* SUMMARY: Testing the switch statement
-*
-* See ECMA3 Section 12.11, "The switch Statement"
-*/
-//-------------------------------------------------------------------------------------------------
-var UBound = 0;
-var bug = '(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 (bug);
- 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/JavaScriptCore/tests/mozilla/ecma_3/String/regress-104375.js b/JavaScriptCore/tests/mozilla/ecma_3/String/regress-104375.js
deleted file mode 100644
index 42b5ce2..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/String/regress-104375.js
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation.
-* All Rights Reserved.
-*
-* Contributor(s): k.mike@gmx.net, pschwartau@netscape.com
-* Date: 12 October 2001
-*
-* SUMMARY: Regression test for string.replace bug 104375
-* See http://bugzilla.mozilla.org/show_bug.cgi?id=104375
-*/
-//-----------------------------------------------------------------------------
-var UBound = 0;
-var bug = 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 (bug);
- printStatus (summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
-
-
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/String/regress-189898.js b/JavaScriptCore/tests/mozilla/ecma_3/String/regress-189898.js
deleted file mode 100644
index e237152..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/String/regress-189898.js
+++ /dev/null
@@ -1,152 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/String/regress-83293.js b/JavaScriptCore/tests/mozilla/ecma_3/String/regress-83293.js
deleted file mode 100644
index 02a7834..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/String/regress-83293.js
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 Netscape are
-* Copyright (C) 1998 Netscape Communications Corporation. All
-* Rights Reserved.
-*
-* Contributor(s): pschwartau@netscape.com, jim@jibbering.com
-* 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 bug = 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 (bug);
- 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/JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-001-n.js b/JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-001-n.js
deleted file mode 100644
index 6527c16..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-001-n.js
+++ /dev/null
@@ -1,44 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * The contents of this file are subject to the Netscape 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/NPL/
- *
- * 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 Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- * Rob Ginda rginda@netscape.com
- */
-
-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/JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-001.js b/JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-001.js
deleted file mode 100644
index 470e8bc..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-001.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * The contents of this file are subject to the Netscape 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/NPL/
- *
- * 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 Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- * Rob Ginda rginda@netscape.com
- */
-
-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/JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-002-n.js b/JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-002-n.js
deleted file mode 100644
index 9c54a26..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-002-n.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * The contents of this file are subject to the Netscape 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/NPL/
- *
- * 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 Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- * Rob Ginda rginda@netscape.com
- */
-
-test();
-
-function test()
-{
- enterFunc ("test");
-
- printStatus ("Non-character escapes in identifiers negative test.");
- printBugNumber (23607);
-
- reportCompare ("error", eval("\u0020 = 5"),
- "Non-character escapes in identifiers negative test.");
-
- exitFunc ("test");
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-002.js b/JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-002.js
deleted file mode 100644
index 3b05d83..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-002.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * The contents of this file are subject to the Netscape 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/NPL/
- *
- * 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 Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- * Rob Ginda rginda@netscape.com
- */
-
-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/JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-003.js b/JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-003.js
deleted file mode 100644
index 7004cf4..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-003.js
+++ /dev/null
@@ -1,53 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * The contents of this file are subject to the Netscape 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/NPL/
- *
- * 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 Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- * Rob Ginda rginda@netscape.com
- */
-
-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/JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-004.js b/JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-004.js
deleted file mode 100644
index 2518124..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-004.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * The contents of this file are subject to the Netscape 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/NPL/
- *
- * 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 Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- * Rob Ginda rginda@netscape.com
- */
-
-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/JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-005.js b/JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-005.js
deleted file mode 100644
index 5b1be03..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/Unicode/uc-005.js
+++ /dev/null
@@ -1,271 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-* Version: NPL 1.1/GPL 2.0/LGPL 2.1
-*
-* The contents of this file are subject to the Netscape 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/NPL/
-*
-* 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 NPL, 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 NPL, 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 UBound = 0;
-var bug = 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(bug);
- printStatus(summary);
-
- for (var i=0; i<UBound; i++)
- {
- reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
- }
-
- exitFunc ('test');
-}
diff --git a/JavaScriptCore/tests/mozilla/ecma_3/shell.js b/JavaScriptCore/tests/mozilla/ecma_3/shell.js
deleted file mode 100644
index 4fde9bc..0000000
--- a/JavaScriptCore/tests/mozilla/ecma_3/shell.js
+++ /dev/null
@@ -1,180 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * The contents of this file are subject to the Netscape 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/NPL/
- *
- * 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 Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- * Rob Ginda rginda@netscape.com
- */
-
-var FAILED = "FAILED!: ";
-var STATUS = "STATUS: ";
-var BUGNUMBER = "BUGNUMBER: ";
-var SECT_PREFIX = 'Section ';
-var SECT_SUFFIX = ' of test -';
-var VERBOSE = false;
-var callStack = new Array();
-
-/*
- * The test driver searches for such a phrase in the test output.
- * If such phrase exists, it will set n as the expected exit code.
- */
-function expectExitCode(n)
-{
-
- print('--- NOTE: IN THIS TESTCASE, WE EXPECT EXIT CODE ' + n + ' ---');
-
-}
-
-/*
- * Statuses current section of a test
- */
-function inSection(x)
-{
-
- return SECT_PREFIX + x + SECT_SUFFIX;
-
-}
-
-/*
- * Some tests need to know if we are in Rhino as opposed to SpiderMonkey
- */
-function inRhino()
-{
- return (typeof defineClass == "function");
-}
-
-/*
- * Report a failure in the 'accepted' manner
- */
-function reportFailure (msg)
-{
- var lines = msg.split ("\n");
- var l;
- var funcName = currentFunc();
- var prefix = (funcName) ? "[reported from " + funcName + "] ": "";
-
- for (var i=0; i<lines.length; i++)
- print (FAILED + prefix + lines[i]);
-
-}
-
-/*
- * Print a non-failure message.
- */
-function printStatus (msg)
-{
- var lines = msg.split ("\n");
- var l;
-
- for (var i=0; i<lines.length; i++)
- print (STATUS + lines[i]);
-
-}
-
-/*
- * Print a bugnumber message.
- */
-function printBugNumber (num)
-{
-
- print (BUGNUMBER + num);
-
-}
-
-/*
- * Compare expected result to actual result, if they differ (in value and/or
- * type) report a failure. If description is provided, include it in the
- * failure report.
- */
-function reportCompare (expected, actual, description)
-{
- var expected_t = typeof expected;
- var actual_t = typeof actual;
- var output = "";
-
- if ((VERBOSE) && (typeof description != "undefined"))
- printStatus ("Comparing '" + description + "'");
-
- if (expected_t != actual_t)
- output += "Type mismatch, expected type " + expected_t +
- ", actual type " + actual_t + "\n";
- else if (VERBOSE)
- printStatus ("Expected type '" + actual_t + "' matched actual " +
- "type '" + expected_t + "'");
-
- if (expected != actual)
- output += "Expected value '" + expected + "', Actual value '" + actual +
- "'\n";
- else if (VERBOSE)
- printStatus ("Expected value '" + actual + "' matched actual " +
- "value '" + expected + "'");
-
- if (output != "")
- {
- if (typeof description != "undefined")
- reportFailure (description);
- reportFailure (output);
- }
-
-}
-
-/*
- * Puts funcName at the top of the call stack. This stack is used to show
- * a function-reported-from field when reporting failures.
- */
-function enterFunc (funcName)
-{
-
- if (!funcName.match(/\(\)$/))
- funcName += "()";
-
- callStack.push(funcName);
-
-}
-
-/*
- * Pops the top funcName off the call stack. funcName is optional, and can be
- * used to check push-pop balance.
- */
-function exitFunc (funcName)
-{
- var lastFunc = callStack.pop();
-
- if (funcName)
- {
- if (!funcName.match(/\(\)$/))
- funcName += "()";
-
- if (lastFunc != funcName)
- reportFailure ("Test driver failure, expected to exit function '" +
- funcName + "' but '" + lastFunc + "' came off " +
- "the stack");
- }
-
-}
-
-/*
- * Peeks at the top of the call stack.
- */
-function currentFunc()
-{
-
- return callStack[callStack.length - 1];
-
-}