diff options
| author | Steve Block <steveblock@google.com> | 2011-05-06 11:45:16 +0100 |
|---|---|---|
| committer | Steve Block <steveblock@google.com> | 2011-05-12 13:44:10 +0100 |
| commit | cad810f21b803229eb11403f9209855525a25d57 (patch) | |
| tree | 29a6fd0279be608e0fe9ffe9841f722f0f4e4269 /JavaScriptCore/tests/mozilla/js1_5/Exceptions | |
| parent | 121b0cf4517156d0ac5111caf9830c51b69bae8f (diff) | |
| download | external_webkit-cad810f21b803229eb11403f9209855525a25d57.zip external_webkit-cad810f21b803229eb11403f9209855525a25d57.tar.gz external_webkit-cad810f21b803229eb11403f9209855525a25d57.tar.bz2 | |
Merge WebKit at r75315: Initial merge by git.
Change-Id: I570314b346ce101c935ed22a626b48c2af266b84
Diffstat (limited to 'JavaScriptCore/tests/mozilla/js1_5/Exceptions')
10 files changed, 0 insertions, 1050 deletions
diff --git a/JavaScriptCore/tests/mozilla/js1_5/Exceptions/catchguard-001-n.js b/JavaScriptCore/tests/mozilla/js1_5/Exceptions/catchguard-001-n.js deleted file mode 100644 index 37b10ae..0000000 --- a/JavaScriptCore/tests/mozilla/js1_5/Exceptions/catchguard-001-n.js +++ /dev/null @@ -1,57 +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 EXCEPTION_DATA = "String exception"; - var e; - - printStatus ("Catchguard syntax negative test."); - - try - { - throw EXCEPTION_DATA; - } - catch (e) /* the non-guarded catch should HAVE to appear last */ - { - - } - catch (e if true) - { - - } - catch (e if false) - { - - } - - reportFailure ("Illegally constructed catchguard should have thrown " + - "an exception."); - - exitFunc ("test"); -} diff --git a/JavaScriptCore/tests/mozilla/js1_5/Exceptions/catchguard-001.js b/JavaScriptCore/tests/mozilla/js1_5/Exceptions/catchguard-001.js deleted file mode 100644 index e65723e..0000000 --- a/JavaScriptCore/tests/mozilla/js1_5/Exceptions/catchguard-001.js +++ /dev/null @@ -1,64 +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 EXCEPTION_DATA = "String exception"; - var e = "foo"; - var caught = false; - - printStatus ("Basic catchguard test."); - - try - { - throw EXCEPTION_DATA; - } - catch (e if true) - { - caught = true; - e = "this change should not propagate outside of this scope"; - } - catch (e if false) - { - reportFailure ("Catch block (e if false) should not have executed."); - } - catch (e) - { - reportFailure ("Catch block (e) should not have executed."); - } - - if (!caught) - reportFailure ("Execption was never caught."); - - if (e != "foo") - reportFailure ("Exception data modified inside catch() scope should " + - "not be visible in the function scope (e = '" + - e + "'.)"); - - exitFunc ("test"); -} diff --git a/JavaScriptCore/tests/mozilla/js1_5/Exceptions/catchguard-002-n.js b/JavaScriptCore/tests/mozilla/js1_5/Exceptions/catchguard-002-n.js deleted file mode 100644 index 4446dd4..0000000 --- a/JavaScriptCore/tests/mozilla/js1_5/Exceptions/catchguard-002-n.js +++ /dev/null @@ -1,46 +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 test() -{ - enterFunc ("test"); - - var EXCEPTION_DATA = "String exception"; - var e; - - printStatus ("Catchguard var declaration negative test."); - - try - { - throw EXCEPTION_DATA; - } - catch (var e) - { - - } - - reportFailure ("var in catch clause should have caused an error."); - - exitFunc ("test"); -} diff --git a/JavaScriptCore/tests/mozilla/js1_5/Exceptions/catchguard-002.js b/JavaScriptCore/tests/mozilla/js1_5/Exceptions/catchguard-002.js deleted file mode 100644 index 4e89078..0000000 --- a/JavaScriptCore/tests/mozilla/js1_5/Exceptions/catchguard-002.js +++ /dev/null @@ -1,60 +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 EXCEPTION_DATA = "String exception"; - var e; - var caught = false; - - printStatus ("Basic catchguard test."); - - try - { - throw EXCEPTION_DATA; - } - catch (e if true) - { - caught = true; - } - catch (e if true) - { - reportFailure ("Second (e if true) catch block should not have " + - "executed."); - } - catch (e) - { - reportFailure ("Catch block (e) should not have executed."); - } - - if (!caught) - reportFailure ("Execption was never caught."); - - - exitFunc ("test"); -} diff --git a/JavaScriptCore/tests/mozilla/js1_5/Exceptions/catchguard-003-n.js b/JavaScriptCore/tests/mozilla/js1_5/Exceptions/catchguard-003-n.js deleted file mode 100644 index b5fca02..0000000 --- a/JavaScriptCore/tests/mozilla/js1_5/Exceptions/catchguard-003-n.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 EXCEPTION_DATA = "String exception"; - var e; - - printStatus ("Catchguard syntax negative test #2."); - - try - { - throw EXCEPTION_DATA; - } - catch (e) - { - - } - catch (e) /* two non-guarded catch statements shoud generate an error */ - { - - } - - reportFailure ("Illegally constructed catchguard should have thrown " + - "an exception."); - - exitFunc ("test"); -} diff --git a/JavaScriptCore/tests/mozilla/js1_5/Exceptions/catchguard-003.js b/JavaScriptCore/tests/mozilla/js1_5/Exceptions/catchguard-003.js deleted file mode 100644 index 2cb64a6..0000000 --- a/JavaScriptCore/tests/mozilla/js1_5/Exceptions/catchguard-003.js +++ /dev/null @@ -1,69 +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 EXCEPTION_DATA = "String exception"; - var e = "foo", x = "foo"; - var caught = false; - - printStatus ("Catchguard 'Common Scope' test."); - - try - { - throw EXCEPTION_DATA; - } - catch (e if ((x = 1) && false)) - { - reportFailure ("Catch block (e if ((x = 1) && false) should not " + - "have executed."); - } - catch (e if (x == 1)) - { - caught = true; - } - catch (e) - { - reportFailure ("Same scope should be used across all catchguards."); - } - - if (!caught) - reportFailure ("Execption was never caught."); - - if (e != "foo") - reportFailure ("Exception data modified inside catch() scope should " + - "not be visible in the function scope (e ='" + - e + "'.)"); - - if (x != 1) - reportFailure ("Data modified in 'catchguard expression' should " + - "be visible in the function scope (x = '" + - x + "'.)"); - - exitFunc ("test"); -} diff --git a/JavaScriptCore/tests/mozilla/js1_5/Exceptions/errstack-001.js b/JavaScriptCore/tests/mozilla/js1_5/Exceptions/errstack-001.js deleted file mode 100644 index 4850d20..0000000 --- a/JavaScriptCore/tests/mozilla/js1_5/Exceptions/errstack-001.js +++ /dev/null @@ -1,274 +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: 28 Feb 2002 -* SUMMARY: Testing that Error.stack distinguishes between: -* -* A) top-level calls: myFunc(); -* B) no-name function calls: function() { myFunc();} () -* -* The stack frame for A) should begin with '@' -* The stack frame for B) should begin with '()' -* -* This behavior was coded by Brendan during his fix for bug 127136. -* See http://bugzilla.mozilla.org/show_bug.cgi?id=127136#c13 -* -* Note: our function getStackFrames(err) orders the array of stack frames -* so that the 0th element will correspond to the highest frame, i.e. will -* correspond to a line in top-level code. The 1st element will correspond -* to the function that is called first, and so on... -* -* NOTE: At present Rhino does not have an Error.stack property. It is an -* ECMA extension, see http://bugzilla.mozilla.org/show_bug.cgi?id=123177 -*/ -//----------------------------------------------------------------------------- -var UBound = 0; -var bug = '(none)'; -var summary = 'Testing Error.stack'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; -var myErr = ''; -var stackFrames = ''; - - -function A(x,y) -{ - return B(x+1,y+1); -} - -function B(x,z) -{ - return C(x+1,z+1); -} - -function C(x,y) -{ - return D(x+1,y+1); -} - -function D(x,z) -{ - try - { - throw new Error('meep!'); - } - catch (e) - { - return e; - } -} - - -myErr = A(44,13); -stackFrames = getStackFrames(myErr); - status = inSection(1); - actual = stackFrames[0].substring(0,1); - expect = '@'; - addThis(); - - status = inSection(2); - actual = stackFrames[1].substring(0,9); - expect = 'A(44,13)@'; - addThis(); - - status = inSection(3); - actual = stackFrames[2].substring(0,9); - expect = 'B(45,14)@'; - addThis(); - - status = inSection(4); - actual = stackFrames[3].substring(0,9); - expect = 'C(46,15)@'; - addThis(); - - status = inSection(5); - actual = stackFrames[4].substring(0,9); - expect = 'D(47,16)@'; - addThis(); - - - -myErr = A('44:foo','13:bar'); -stackFrames = getStackFrames(myErr); - status = inSection(6); - actual = stackFrames[0].substring(0,1); - expect = '@'; - addThis(); - - status = inSection(7); - actual = stackFrames[1].substring(0,21); - expect = 'A("44:foo","13:bar")@'; - addThis(); - - status = inSection(8); - actual = stackFrames[2].substring(0,23); - expect = 'B("44:foo1","13:bar1")@'; - addThis(); - - status = inSection(9); - actual = stackFrames[3].substring(0,25); - expect = 'C("44:foo11","13:bar11")@'; - addThis(); - - status = inSection(10); - actual = stackFrames[4].substring(0,27); - expect = 'D("44:foo111","13:bar111")@';; - addThis(); - - - -/* - * Make the first frame occur in a function with an empty name - - */ -myErr = function() { return A(44,13); } (); -stackFrames = getStackFrames(myErr); - status = inSection(11); - actual = stackFrames[0].substring(0,1); - expect = '@'; - addThis(); - - status = inSection(12); - actual = stackFrames[1].substring(0,3); - expect = '()@'; - addThis(); - - status = inSection(13); - actual = stackFrames[2].substring(0,9); - expect = 'A(44,13)@'; - addThis(); - -// etc. for the rest of the frames as above - - - -/* - * Make the first frame occur in a function with name 'anonymous' - - */ -var f = Function('return A(44,13);'); -myErr = f(); -stackFrames = getStackFrames(myErr); - status = inSection(14); - actual = stackFrames[0].substring(0,1); - expect = '@'; - addThis(); - - status = inSection(15); - actual = stackFrames[1].substring(0,12); - expect = 'anonymous()@'; - addThis(); - - status = inSection(16); - actual = stackFrames[2].substring(0,9); - expect = 'A(44,13)@'; - addThis(); - -// etc. for the rest of the frames as above - - - -/* - * Make a user-defined error via the Error() function - - */ -var message = 'Hi there!'; var fileName = 'file name'; var lineNumber = 0; -myErr = Error(message, fileName, lineNumber); -stackFrames = getStackFrames(myErr); - status = inSection(17); - actual = stackFrames[0].substring(0,1); - expect = '@'; - addThis(); - - -/* - * Now use the |new| keyword. Re-use the same params - - */ -myErr = new Error(message, fileName, lineNumber); -stackFrames = getStackFrames(myErr); - status = inSection(18); - actual = stackFrames[0].substring(0,1); - expect = '@'; - addThis(); - - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -/* - * Split the string |err.stack| along its '\n' delimiter. - * As of 2002-02-28 |err.stack| ends with the delimiter, so - * the resulting array has an empty string as its last element. - * - * Pop that useless element off before doing anything. - * Then reverse the array, for convenience of indexing - - */ -function getStackFrames(err) -{ - var arr = err.stack.split('\n'); - arr.pop(); - return arr.reverse(); -} - - -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/js1_5/Exceptions/regress-121658.js b/JavaScriptCore/tests/mozilla/js1_5/Exceptions/regress-121658.js deleted file mode 100644 index 7328749..0000000 --- a/JavaScriptCore/tests/mozilla/js1_5/Exceptions/regress-121658.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) 2002 -* the Initial Developer. All Rights Reserved. -* -* Contributor(s): timeless@mac.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: 24 Jan 2002 -* SUMMARY: "Too much recursion" errors should be safely caught by try...catch -* See http://bugzilla.mozilla.org/show_bug.cgi?id=121658 -* -* In the cases below, we expect i>0. The bug was filed because we were getting -* i===0; i.e. |i| did not retain the value it had at the location of the error. -* -*/ -//----------------------------------------------------------------------------- -var UBound = 0; -var bug = 121658; -var msg = '"Too much recursion" errors should be safely caught by try...catch'; -var TEST_PASSED = 'i retained the value it had at location of error'; -var TEST_FAILED = 'i did NOT retain this value'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; -var i; - - -function f() -{ - ++i; - - // try...catch should catch the "too much recursion" error to ensue - try - { - f(); - } - catch(e) - { - } -} - -i=0; -f(); -status = inSection(1); -actual = (i>0); -expect = true; -addThis(); - - - -// Now try in function scope - -function g() -{ - f(); -} - -i=0; -g(); -status = inSection(2); -actual = (i>0); -expect = true; -addThis(); - - - -// Now try in eval scope - -var sEval = 'function h(){++i; try{h();} catch(e){}}; i=0; h();'; -eval(sEval); -status = inSection(3); -actual = (i>0); -expect = true; -addThis(); - - - -// Try in eval scope and mix functions up - -sEval = 'function a(){++i; try{h();} catch(e){}}; i=0; a();'; -eval(sEval); -status = inSection(4); -actual = (i>0); -expect = true; -addThis(); - - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = formatThis(actual); - expectedvalues[UBound] = formatThis(expect); - UBound++; -} - - -function formatThis(bool) -{ - return bool? TEST_PASSED : TEST_FAILED; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(bug); - printStatus(msg); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/JavaScriptCore/tests/mozilla/js1_5/Exceptions/regress-123002.js b/JavaScriptCore/tests/mozilla/js1_5/Exceptions/regress-123002.js deleted file mode 100644 index aee6893..0000000 --- a/JavaScriptCore/tests/mozilla/js1_5/Exceptions/regress-123002.js +++ /dev/null @@ -1,129 +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: 01 Feb 2002 -* SUMMARY: Testing Error.length -* See http://bugzilla.mozilla.org/show_bug.cgi?id=123002 -* -* NOTE: Error.length should equal the length of FormalParameterList of the -* Error constructor. This is currently 1 in Rhino, 3 in SpiderMonkey. -* -* The difference is due to http://bugzilla.mozilla.org/show_bug.cgi?id=50447. -* As a result of that bug, SpiderMonkey has extended ECMA to allow two new -* parameters to Error constructors: -* -* Rhino: new Error (message) -* SpiderMonkey: new Error (message, fileName, lineNumber) -* -* NOTE: since we have hard-coded the length expectations, this testcase will -* have to be changed if the Error FormalParameterList is ever changed again. -* -* To do this, just change the two LENGTH constants below - -*/ -//----------------------------------------------------------------------------- -var LENGTH_RHINO = 1; -var LENGTH_SPIDERMONKEY = 3; -var UBound = 0; -var bug = 123002; -var summary = 'Testing Error.length'; -var QUOTE = '"'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -/* - * Are we in Rhino or SpiderMonkey? - */ -// var LENGTH_EXPECTED = inRhino()? LENGTH_RHINO : LENGTH_SPIDERMONKEY; -// ECMA spec says length should be 1 -var LENGTH_EXPECTED = 1; - -/* - * The various NativeError objects; see ECMA-262 Edition 3, Section 15.11.6 - */ -var errObjects = [new Error(), new EvalError(), new RangeError(), -new ReferenceError(), new SyntaxError(), new TypeError(), new URIError()]; - - -for (var i in errObjects) -{ - var err = errObjects[i]; - status = inSection(quoteThis(err.name)); - actual = Error.length; - expect = LENGTH_EXPECTED; - 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'); -} - - -function quoteThis(text) -{ - return QUOTE + text + QUOTE; -} diff --git a/JavaScriptCore/tests/mozilla/js1_5/Exceptions/regress-50447.js b/JavaScriptCore/tests/mozilla/js1_5/Exceptions/regress-50447.js deleted file mode 100644 index 0133e88..0000000 --- a/JavaScriptCore/tests/mozilla/js1_5/Exceptions/regress-50447.js +++ /dev/null @@ -1,146 +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 -* -* SUMMARY: New properties fileName, lineNumber have been added to Error objects -* in SpiderMonkey. These are non-ECMA extensions and do not exist in Rhino. -* -* See http://bugzilla.mozilla.org/show_bug.cgi?id=50447 -*/ -//----------------------------------------------------------------------------- -var bug = 50447; -var summary = 'Test (non-ECMA) Error object properties fileName, lineNumber'; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - -function test() -{ - enterFunc ('test'); - printBugNumber (bug); - printStatus (summary); - - testRealError(); - test1(); - test2(); - test3(); - test4(); - - exitFunc('test'); -} - - -function testRealError() -{ - /* throw a real error, and see what it looks like */ - enterFunc ("testRealError"); - - try - { - blabla; - } - catch (e) - { - if (e.fileName.search (/-50447\.js$/i) == -1) - reportFailure ("expected fileName to end with '-50447.js'"); - - reportCompare (61, e.lineNumber, - "lineNumber property returned unexpected value."); - } - - exitFunc ("testRealError"); -} - - -function test1() -{ - /* generate an error with msg, file, and lineno properties */ - enterFunc ("test1"); - - var e = new InternalError ("msg", "file", 2); - reportCompare ("(new InternalError(\"msg\", \"file\", 2))", - e.toSource(), - "toSource() returned unexpected result."); - reportCompare ("file", e.fileName, - "fileName property returned unexpected value."); - reportCompare (2, e.lineNumber, - "lineNumber property returned unexpected value."); - - exitFunc ("test1"); -} - - -function test2() -{ - /* generate an error with only msg property */ - enterFunc ("test2"); - - var e = new InternalError ("msg"); - reportCompare ("(new InternalError(\"msg\", \"\"))", - e.toSource(), - "toSource() returned unexpected result."); - reportCompare ("", e.fileName, - "fileName property returned unexpected value."); - reportCompare (0, e.lineNumber, - "lineNumber property returned unexpected value."); - - exitFunc ("test2"); -} - - -function test3() -{ - /* generate an error with only msg and lineNo properties */ - enterFunc ("test3"); - - var e = new InternalError ("msg"); - e.lineNumber = 10; - reportCompare ("(new InternalError(\"msg\", \"\", 10))", - e.toSource(), - "toSource() returned unexpected result."); - reportCompare ("", e.fileName, - "fileName property returned unexpected value."); - reportCompare (10, e.lineNumber, - "lineNumber property returned unexpected value."); - - exitFunc ("test3"); -} - - -function test4() -{ - /* generate an error with only msg and filename properties */ - enterFunc ("test4"); - - var e = new InternalError ("msg", "file"); - reportCompare ("(new InternalError(\"msg\", \"file\"))", - e.toSource(), - "toSource() returned unexpected result."); - reportCompare ("file", e.fileName, - "fileName property returned unexpected value."); - reportCompare (0, e.lineNumber, - "lineNumber property returned unexpected value."); - - exitFunc ("test4"); -} |
