From cad810f21b803229eb11403f9209855525a25d57 Mon Sep 17 00:00:00 2001 From: Steve Block Date: Fri, 6 May 2011 11:45:16 +0100 Subject: Merge WebKit at r75315: Initial merge by git. Change-Id: I570314b346ce101c935ed22a626b48c2af266b84 --- .../mozilla/js1_5/Exceptions/catchguard-001-n.js | 57 ----- .../mozilla/js1_5/Exceptions/catchguard-001.js | 64 ----- .../mozilla/js1_5/Exceptions/catchguard-002-n.js | 46 ---- .../mozilla/js1_5/Exceptions/catchguard-002.js | 60 ----- .../mozilla/js1_5/Exceptions/catchguard-003-n.js | 53 ---- .../mozilla/js1_5/Exceptions/catchguard-003.js | 69 ------ .../tests/mozilla/js1_5/Exceptions/errstack-001.js | 274 --------------------- .../mozilla/js1_5/Exceptions/regress-121658.js | 152 ------------ .../mozilla/js1_5/Exceptions/regress-123002.js | 129 ---------- .../mozilla/js1_5/Exceptions/regress-50447.js | 146 ----------- 10 files changed, 1050 deletions(-) delete mode 100644 JavaScriptCore/tests/mozilla/js1_5/Exceptions/catchguard-001-n.js delete mode 100644 JavaScriptCore/tests/mozilla/js1_5/Exceptions/catchguard-001.js delete mode 100644 JavaScriptCore/tests/mozilla/js1_5/Exceptions/catchguard-002-n.js delete mode 100644 JavaScriptCore/tests/mozilla/js1_5/Exceptions/catchguard-002.js delete mode 100644 JavaScriptCore/tests/mozilla/js1_5/Exceptions/catchguard-003-n.js delete mode 100644 JavaScriptCore/tests/mozilla/js1_5/Exceptions/catchguard-003.js delete mode 100644 JavaScriptCore/tests/mozilla/js1_5/Exceptions/errstack-001.js delete mode 100644 JavaScriptCore/tests/mozilla/js1_5/Exceptions/regress-121658.js delete mode 100644 JavaScriptCore/tests/mozilla/js1_5/Exceptions/regress-123002.js delete mode 100644 JavaScriptCore/tests/mozilla/js1_5/Exceptions/regress-50447.js (limited to 'JavaScriptCore/tests/mozilla/js1_5/Exceptions') 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; i0. 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