diff options
Diffstat (limited to 'tests/auto/declarative/parserstress/tests/ecma_3/Function')
18 files changed, 0 insertions, 2660 deletions
diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/15.3.4.3-1.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/15.3.4.3-1.js deleted file mode 100644 index ef51379e4f..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/15.3.4.3-1.js +++ /dev/null @@ -1,210 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * igor3@apochta.com, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 21 May 2002 - * SUMMARY: ECMA conformance of Function.prototype.apply - * - * Function.prototype.apply(thisArg, argArray) - * - * See ECMA-262 Edition 3 Final, Section 15.3.4.3 - */ -//----------------------------------------------------------------------------- -var gTestfile = '15.3.4.3-1.js'; -var UBound = 0; -var BUGNUMBER = 145791; -var summary = 'Testing ECMA conformance of Function.prototype.apply'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -function F0(a) -{ - return "" + this + arguments.length; -} - -function F1(a) -{ - return "" + this + a; -} - -function F2() -{ - return "" + this; -} - - - -/* - * Function.prototype.apply.length should return 2 - */ -status = inSection(1); -actual = Function.prototype.apply.length; -expect = 2; -addThis(); - - -/* - * When |thisArg| is not provided to the apply() method, the - * called function must be passed the global object as |this| - */ -status = inSection(2); -actual = F0.apply(); -expect = "" + this + 0; -addThis(); - - -/* - * If |argArray| is not provided to the apply() method, the - * called function should be invoked with an empty argument list - */ -status = inSection(3); -actual = F0.apply(""); -expect = "" + "" + 0; -addThis(); - -status = inSection(4); -actual = F0.apply(true); -expect = "" + true + 0; -addThis(); - - -/* - * Function.prototype.apply(x) and - * Function.prototype.apply(x, undefined) should return the same result - */ -status = inSection(5); -actual = F1.apply(0, undefined); -expect = F1.apply(0); -addThis(); - -status = inSection(6); -actual = F1.apply("", undefined); -expect = F1.apply(""); -addThis(); - -status = inSection(7); -actual = F1.apply(null, undefined); -expect = F1.apply(null); -addThis(); - -status = inSection(8); -actual = F1.apply(undefined, undefined); -expect = F1.apply(undefined); -addThis(); - - -/* - * Function.prototype.apply(x) and - * Function.prototype.apply(x, null) should return the same result - */ -status = inSection(9); -actual = F1.apply(0, null); -expect = F1.apply(0); -addThis(); - -status = inSection(10); -actual = F1.apply("", null); -expect = F1.apply(""); -addThis(); - -status = inSection(11); -actual = F1.apply(null, null); -expect = F1.apply(null); -addThis(); - -status = inSection(12); -actual = F1.apply(undefined, null); -expect = F1.apply(undefined); -addThis(); - - -/* - * Function.prototype.apply() and - * Function.prototype.apply(undefined) should return the same result - */ -status = inSection(13); -actual = F2.apply(undefined); -expect = F2.apply(); -addThis(); - - -/* - * Function.prototype.apply() and - * Function.prototype.apply(null) should return the same result - */ -status = inSection(14); -actual = F2.apply(null); -expect = F2.apply(); -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/15.3.4.4-1.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/15.3.4.4-1.js deleted file mode 100644 index d27b8487b7..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/15.3.4.4-1.js +++ /dev/null @@ -1,185 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * igor3@apochta.com, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 21 May 2002 - * SUMMARY: ECMA conformance of Function.prototype.call - * - * Function.prototype.call(thisArg [,arg1 [,arg2, ...]]) - * - * See ECMA-262 Edition 3 Final, Section 15.3.4.4 - */ -//----------------------------------------------------------------------------- -var gTestfile = '15.3.4.4-1.js'; -var UBound = 0; -var BUGNUMBER = 145791; -var summary = 'Testing ECMA conformance of Function.prototype.call'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -function F0(a) -{ - return "" + this + arguments.length; -} - -function F1(a) -{ - return "" + this + a; -} - -function F2() -{ - return "" + this; -} - - - -/* - * Function.prototype.call.length should return 1 - */ -status = inSection(1); -actual = Function.prototype.call.length; -expect = 1; -addThis(); - - -/* - * When |thisArg| is not provided to the call() method, the - * called function must be passed the global object as |this| - */ -status = inSection(2); -actual = F0.call(); -expect = "" + this + 0; -addThis(); - - -/* - * If [,arg1 [,arg2, ...]] are not provided to the call() method, - * the called function should be invoked with an empty argument list - */ -status = inSection(3); -actual = F0.call(""); -expect = "" + "" + 0; -addThis(); - -status = inSection(4); -actual = F0.call(true); -expect = "" + true + 0; -addThis(); - - -/* - * Function.prototype.call(x) and - * Function.prototype.call(x, undefined) should return the same result - */ -status = inSection(5); -actual = F1.call(0, undefined); -expect = F1.call(0); -addThis(); - -status = inSection(6); -actual = F1.call("", undefined); -expect = F1.call(""); -addThis(); - -status = inSection(7); -actual = F1.call(null, undefined); -expect = F1.call(null); -addThis(); - -status = inSection(8); -actual = F1.call(undefined, undefined); -expect = F1.call(undefined); -addThis(); - - -/* - * Function.prototype.call() and - * Function.prototype.call(undefined) should return the same result - */ -status = inSection(9); -actual = F2.call(undefined); -expect = F2.call(); -addThis(); - - -/* - * Function.prototype.call() and - * Function.prototype.call(null) should return the same result - */ -status = inSection(10); -actual = F2.call(null); -expect = F2.call(); -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/arguments-001.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/arguments-001.js deleted file mode 100644 index 2dbd603e02..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/arguments-001.js +++ /dev/null @@ -1,169 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * brendan@mozilla.org, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 07 May 2001 - * - * SUMMARY: Testing the arguments object - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=72884 - */ -//----------------------------------------------------------------------------- -var gTestfile = 'arguments-001.js'; -var UBound = 0; -var BUGNUMBER = 72884; -var summary = 'Testing the arguments object'; -var status = ''; -var statusitems = [ ]; -var actual = ''; -var actualvalues = [ ]; -var expect= ''; -var expectedvalues = [ ]; -var a = ''; - - -status = inSection(1); -function f() -{ - delete arguments.length; - return arguments; -} - -a = f(); -actual = a instanceof Object; -expect = true; -addThis(); - -actual = a instanceof Array; -expect = false; -addThis(); - -actual = a.length; -expect = undefined; -addThis(); - - - -status = inSection(2); -a = f(1,2,3); -actual = a instanceof Object; -expect = true; -addThis(); - -actual = a instanceof Array; -expect = false; -addThis(); - -actual = a.length; -expect = undefined; -addThis(); - -actual = a[0]; -expect = 1; -addThis(); - -actual = a[1]; -expect = 2; -addThis(); - -actual = a[2]; -expect = 3; -addThis(); - - - -status = inSection(3); -/* - * Brendan: - * - * Note that only callee and length can be overridden, so deleting an indexed - * property and asking for it again causes it to be recreated by args_resolve: - * - * function g(){delete arguments[0]; return arguments[0]} - * g(42) // should this print 42? - * - * I'm not positive this violates ECMA, which allows in chapter 16 for extensions - * including properties (does it allow for magically reappearing properties?). The - * delete operator successfully deletes arguments[0] and results in true, but that - * is not distinguishable from the case where arguments[0] was delegated to - * Arguments.prototype[0], which was how the bad old code worked. - * - * I'll ponder this last detail... - * - * UPDATE: Per ECMA-262, delete on an arguments[i] should succeed - * and remove that property from the arguments object, leaving any get - * of it after the delete to evaluate to undefined. - */ -function g() -{ - delete arguments[0]; - return arguments[0]; -} -actual = g(42); -expect = undefined; // not 42... -addThis(); - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/arguments-002.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/arguments-002.js deleted file mode 100755 index 78005560a7..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/arguments-002.js +++ /dev/null @@ -1,73 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Brendan Eich - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'arguments-002.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 383269; -var summary = 'Allow override of arguments'; -var actual = ''; -var expect = ''; - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - var expect1 = '33,42'; - var expect2 = 33; - var actual1 = ''; - var actual2 = ''; - - function f(){ - var a=arguments; actual1 = a[0]; arguments=42; actual1 += ',' + arguments; return a; - } - - actual2 = f(33)[0]; - - expect = expect1 + ':' + expect2; - actual = actual1 + ':' + actual2; - - reportCompare(expect, actual, summary); - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/browser.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/browser.js deleted file mode 100644 index e69de29bb2..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/browser.js +++ /dev/null diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/call-001.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/call-001.js deleted file mode 100644 index 61ab3b930b..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/call-001.js +++ /dev/null @@ -1,153 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 2001-07-13 - * - * SUMMARY: Applying Function.prototype.call to the Function object itself - * - * - * ECMA-262 15.3.4.4 Function.prototype.call (thisArg [,arg1 [,arg2,…] ] ) - * - * When applied to the Function object itself, thisArg should be ignored. - * As explained by Waldemar (waldemar@netscape.com): - * - * Function.call(obj, "print(this)") is equivalent to invoking - * Function("print(this)") with this set to obj. Now, Function("print(this)") - * is equivalent to new Function("print(this)") (see 15.3.1.1), and the latter - * ignores the this value that you passed it and constructs a function - * (which we'll call F) which will print the value of the this that will be - * passed in when F will be invoked. - * - * With the last set of () you're invoking F(), which means you're calling it - * with no this value. When you don't provide a this value, it defaults to the - * global object. - * - */ - -//----------------------------------------------------------------------------- -var gTestfile = 'call-001.js'; -var UBound = 0; -var BUGNUMBER = '(none)'; -var summary = 'Applying Function.prototype.call to the Function object itself'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; -var self = this; // capture a reference to the global object -var cnOBJECT_GLOBAL = self.toString(); -var cnOBJECT_OBJECT = (new Object).toString(); -var cnHello = 'Hello'; -var cnRed = 'red'; -var objTEST = {color:cnRed}; -var f = new Function(); -var g = new Function(); - - -f = Function.call(self, 'return cnHello'); -g = Function.call(objTEST, 'return cnHello'); - -status = 'Section A of test'; -actual = f(); -expect = cnHello; -captureThis(); - -status = 'Section B of test'; -actual = g(); -expect = cnHello; -captureThis(); - - -f = Function.call(self, 'return this.toString()'); -g = Function.call(objTEST, 'return this.toString()'); - -status = 'Section C of test'; -actual = f(); -expect = cnOBJECT_GLOBAL; -captureThis(); - -status = 'Section D of test'; -actual = g(); -expect = cnOBJECT_GLOBAL; -captureThis(); - - -f = Function.call(self, 'return this.color'); -g = Function.call(objTEST, 'return this.color'); - -status = 'Section E of test'; -actual = f(); -expect = undefined; -captureThis(); - -status = 'Section F of test'; -actual = g(); -expect = undefined; -captureThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - -function captureThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-131964.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-131964.js deleted file mode 100644 index f3998db91c..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-131964.js +++ /dev/null @@ -1,196 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 19 Mar 2002 - * SUMMARY: Function declarations in global or function scope are {DontDelete}. - * Function declarations in eval scope are not {DontDelete}. - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=131964 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-131964.js'; -var UBound = 0; -var BUGNUMBER = 131964; -var summary = 'Functions defined in global or function scope are {DontDelete}'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -status = inSection(1); -function f() -{ - return 'f lives!'; -} -delete f; - -try -{ - actual = f(); -} -catch(e) -{ - actual = 'f was deleted'; -} - -expect = 'f lives!'; -addThis(); - - - -/* - * Try the same test in function scope - - */ -status = inSection(2); -function g() -{ - function f() - { - return 'f lives!'; - } - delete f; - - try - { - actual = f(); - } - catch(e) - { - actual = 'f was deleted'; - } - - expect = 'f lives!'; - addThis(); -} -g(); - - - -/* - * Try the same test in eval scope - here we EXPECT the function to be deleted (?) - */ -status = inSection(3); -var s = ''; -s += 'function h()'; -s += '{ '; -s += ' return "h lives!";'; -s += '}'; -s += 'delete h;'; - -s += 'try'; -s += '{'; -s += ' actual = h();'; -s += '}'; -s += 'catch(e)'; -s += '{'; -s += ' actual = "h was deleted";'; -s += '}'; - -s += 'expect = "h was deleted";'; -s += 'addThis();'; -eval(s); - - -/* - * Define the function in eval scope, but delete it in global scope - - */ -status = inSection(4); -s = ''; -s += 'function k()'; -s += '{ '; -s += ' return "k lives!";'; -s += '}'; -eval(s); - -delete k; - -try -{ - actual = k(); -} -catch(e) -{ - actual = 'k was deleted'; -} - -expect = 'k was deleted'; -addThis(); - - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function wasDeleted(functionName) -{ - return functionName + ' was deleted...'; -} - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-137181.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-137181.js deleted file mode 100644 index 1bf7c35f93..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-137181.js +++ /dev/null @@ -1,113 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * ibukanov8@yahoo.com, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 12 Apr 2002 - * SUMMARY: delete arguments[i] should break connection to local reference - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=137181 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-137181.js'; -var UBound = 0; -var BUGNUMBER = 137181; -var summary = 'delete arguments[i] should break connection to local reference'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -status = inSection(1); -function f1(x) -{ - x = 1; - delete arguments[0]; - return x; -} -actual = f1(0); // (bug: Rhino was returning |undefined|) -expect = 1; -addThis(); - - -status = inSection(2); -function f2(x) -{ - x = 1; - delete arguments[0]; - arguments[0] = -1; - return x; -} -actual = f2(0); // (bug: Rhino was returning -1) -expect = 1; -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-193555.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-193555.js deleted file mode 100644 index ed37b46c90..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-193555.js +++ /dev/null @@ -1,136 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2003 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * igor@icesoft.no, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 17 February 2003 - * SUMMARY: Testing access to function name from inside function - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=193555 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-193555.js'; -var UBound = 0; -var BUGNUMBER = 193555; -var summary = 'Testing access to function name from inside function'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -// test via function statement -status = inSection(1); -function f() {return f.toString();}; -actual = f(); -expect = f.toString(); -addThis(); - -// test via function expression -status = inSection(2); -var x = function g() {return g.toString();}; -actual = x(); -expect = x.toString(); -addThis(); - -// test via eval() outside function -status = inSection(3); -eval ('function a() {return a.toString();}'); -actual = a(); -expect = a.toString(); -addThis(); - -status = inSection(4); -eval ('var y = function b() {return b.toString();}'); -actual = y(); -expect = y.toString(); -addThis(); - -// test via eval() inside function -status = inSection(5); -function c() {return eval('c').toString();}; -actual = c(); -expect = c.toString(); -addThis(); - -status = inSection(6); -var z = function d() {return eval('d').toString();}; -actual = z(); -expect = z.toString(); -addThis(); - -// test via two evals! -status = inSection(7); -eval('var w = function e() {return eval("e").toString();}'); -actual = w(); -expect = w.toString(); -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-313570.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-313570.js deleted file mode 100755 index e159c4c87f..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-313570.js +++ /dev/null @@ -1,63 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Yuh-Ruey Chen - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -var gTestfile = 'regress-313570.js'; -//----------------------------------------------------------------------------- -var BUGNUMBER = 313570; -var summary = 'length of objects whose prototype chain includes a function'; -var actual = ''; -var expect = ''; - -printBugNumber(BUGNUMBER); -printStatus (summary); - -function tmp() {} -tmp.prototype = function(a, b, c) {}; -var obj = new tmp(); - -// arity -expect = 3; -actual = obj.length; -reportCompare(expect, actual, summary + ': arity'); - -// immutable -obj.length = 10; - -expect = 3; -actual = obj.length; -reportCompare(expect, actual, summary + ': immutable'); - diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-49286.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-49286.js deleted file mode 100644 index 50e203bed8..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-49286.js +++ /dev/null @@ -1,137 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * jlaprise@delanotech.com,pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 2001-07-10 - * - * SUMMARY: Invoking try...catch through Function.call - * See http://bugzilla.mozilla.org/show_bug.cgi?id=49286 - * - * 1) Define a function with a try...catch block in it - * 2) Invoke the function via the call method of Function - * 3) Pass bad syntax to the try...catch block - * 4) We should catch the error! - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-49286.js'; -var UBound = 0; -var BUGNUMBER = 49286; -var summary = 'Invoking try...catch through Function.call'; -var cnErrorCaught = 'Error caught'; -var cnErrorNotCaught = 'Error NOT caught'; -var cnGoodSyntax = '1==2'; -var cnBadSyntax = '1=2'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -var obj = new testObject(); - -status = 'Section A of test: direct call of f'; -actual = f.call(obj); -expect = cnErrorCaught; -addThis(); - -status = 'Section B of test: indirect call of f'; -actual = g.call(obj); -expect = cnErrorCaught; -addThis(); - - - -//----------------------------------------- -test(); -//----------------------------------------- - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} - - -// An object storing bad syntax as a property - -function testObject() -{ - this.badSyntax = cnBadSyntax; - this.goodSyntax = cnGoodSyntax; -} - - -// A function wrapping a try...catch block -function f() -{ - try - { - eval(this.badSyntax); - } - catch(e) - { - return cnErrorCaught; - } - return cnErrorNotCaught; -} - - -// A function wrapping a call to f - -function g() -{ - return f.call(this); -} - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-58274.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-58274.js deleted file mode 100644 index da5bde597f..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-58274.js +++ /dev/null @@ -1,226 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is JavaScript Engine testing utilities. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corp. - * Portions created by the Initial Developer are Copyright (C) 2002 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * rogerl@netscape.com, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * - * Date: 15 July 2002 - * SUMMARY: Testing functions with double-byte names - * See http://bugzilla.mozilla.org/show_bug.cgi?id=58274 - * - * Here is a sample of the problem: - * - * js> function f\u02B1 () {} - * - * js> f\u02B1.toSource(); - * function f¦() {} - * - * js> f\u02B1.toSource().toSource(); - * (new String("function f\xB1() {}")) - * - * - * See how the high-byte information (the 02) has been lost? - * The same thing was happening with the toString() method: - * - * js> f\u02B1.toString(); - * - * function f¦() { - * } - * - * js> f\u02B1.toString().toSource(); - * (new String("\nfunction f\xB1() {\n}\n")) - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-58274.js'; -var UBound = 0; -var BUGNUMBER = 58274; -var summary = 'Testing functions with double-byte names'; -var ERR = 'UNEXPECTED ERROR! \n'; -var ERR_MALFORMED_NAME = ERR + 'Could not find function name in: \n\n'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; -var sEval; -var sName; - - -sEval = "function f\u02B2() {return 42;}"; -eval(sEval); -sName = getFunctionName(f\u02B2); - -// Test function call - -status = inSection(1); -actual = f\u02B2(); -expect = 42; -addThis(); - -// Test both characters of function name - -status = inSection(2); -actual = sName[0]; -expect = sEval[9]; -addThis(); - -status = inSection(3); -actual = sName[1]; -expect = sEval[10]; -addThis(); - - - -sEval = "function f\u02B2\u0AAA () {return 84;}"; -eval(sEval); -sName = getFunctionName(f\u02B2\u0AAA); - -// Test function call - -status = inSection(4); -actual = f\u02B2\u0AAA(); -expect = 84; -addThis(); - -// Test all three characters of function name - -status = inSection(5); -actual = sName[0]; -expect = sEval[9]; -addThis(); - -status = inSection(6); -actual = sName[1]; -expect = sEval[10]; -addThis(); - -status = inSection(7); -actual = sName[2]; -expect = sEval[11]; -addThis(); - - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - - -/* - * Goal: test that f.toString() contains the proper function name. - * - * Note, however, f.toString() is implementation-independent. For example, - * it may begin with '\nfunction' instead of 'function'. Therefore we use - * a regexp to make sure we extract the name properly. - * - * Here we assume that f has been defined by means of a function statement, - * and not a function expression (where it wouldn't have to have a name). - * - * Rhino uses a Unicode representation for f.toString(); whereas - * SpiderMonkey uses an ASCII representation, putting escape sequences - * for non-ASCII characters. For example, if a function is called f\u02B1, - * then in Rhino the toString() method will present a 2-character Unicode - * string for its name, whereas SpiderMonkey will present a 7-character - * ASCII string for its name: the string literal 'f\u02B1'. - * - * So we force the lexer to condense the string before using it. - * This will give uniform results in Rhino and SpiderMonkey. - */ -function getFunctionName(f) -{ - var s = condenseStr(f.toString()); - var re = /\s*function\s+(\S+)\s*\(/; - var arr = s.match(re); - - if (!(arr && arr[1])) - return ERR_MALFORMED_NAME + s; - return arr[1]; -} - - -/* - * This function is the opposite of functions like escape(), which take - * Unicode characters and return escape sequences for them. Here, we force - * the lexer to turn escape sequences back into single characters. - * - * Note we can't simply do |eval(str)|, since in practice |str| will be an - * identifier somewhere in the program (e.g. a function name); thus |eval(str)| - * would return the object that the identifier represents: not what we want. - * - * So we surround |str| lexicographically with quotes to force the lexer to - * evaluate it as a string. Have to strip out any linefeeds first, however - - */ -function condenseStr(str) -{ - /* - * You won't be able to do the next step if |str| has - * any carriage returns or linefeeds in it. For example: - * - * js> eval("'" + '\nHello' + "'"); - * 1: SyntaxError: unterminated string literal: - * 1: ' - * 1: ^ - * - * So replace them with the empty string - - */ - str = str.replace(/[\r\n]/g, '') - return eval("'" + str + "'"); -} - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc('test'); - printBugNumber(BUGNUMBER); - printStatus(summary); - - for (var i=0; i<UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-85880.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-85880.js deleted file mode 100644 index 8ea4fb6c41..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-85880.js +++ /dev/null @@ -1,173 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 2001-06-14 - * - * SUMMARY: Regression test for Bugzilla bug 85880 - * - * Rhino interpreted mode was nulling out the arguments object of a - * function if it happened to call another function inside its body. - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=85880 - * - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-85880.js'; -var UBound = 0; -var BUGNUMBER = 85880; -var summary = 'Arguments object of g(){f()} should not be null'; -var cnNonNull = 'Arguments != null'; -var cnNull = 'Arguments == null'; -var cnRecurse = true; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; - - -function f1(x) -{ -} - - -function f2() -{ - return f2.arguments; -} -status = 'Section A of test'; -actual = (f2() == null); -expect = false; -addThis(); - -status = 'Section B of test'; -actual = (f2(0) == null); -expect = false; -addThis(); - - -function f3() -{ - f1(); - return f3.arguments; -} -status = 'Section C of test'; -actual = (f3() == null); -expect = false; -addThis(); - -status = 'Section D of test'; -actual = (f3(0) == null); -expect = false; -addThis(); - - -function f4() -{ - f1(); - f2(); - f3(); - return f4.arguments; -} -status = 'Section E of test'; -actual = (f4() == null); -expect = false; -addThis(); - -status = 'Section F of test'; -actual = (f4(0) == null); -expect = false; -addThis(); - - -function f5() -{ - if (cnRecurse) - { - cnRecurse = false; - f5(); - } - return f5.arguments; -} -status = 'Section G of test'; -actual = (f5() == null); -expect = false; -addThis(); - -status = 'Section H of test'; -actual = (f5(0) == null); -expect = false; -addThis(); - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = isThisNull(actual); - expectedvalues[UBound] = isThisNull(expect); - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} - - -function isThisNull(bool) -{ - return bool? cnNull : cnNonNull - } diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-94506.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-94506.js deleted file mode 100644 index b6ab5cc24c..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-94506.js +++ /dev/null @@ -1,163 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * deneen@alum.bucknell.edu, shaver@mozilla.org - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 08 August 2001 - * - * SUMMARY: When we invoke a function, the arguments object should take - * a back seat to any local identifier named "arguments". - * - * See http://bugzilla.mozilla.org/show_bug.cgi?id=94506 - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-94506.js'; -var UBound = 0; -var BUGNUMBER = 94506; -var summary = 'Testing functions employing identifiers named "arguments"'; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; -var TYPE_OBJECT = typeof new Object(); -var arguments = 5555; - - -// use a parameter named "arguments" -function F1(arguments) -{ - return arguments; -} - - -// use a local variable named "arguments" -function F2() -{ - var arguments = 55; - return arguments; -} - - -// same thing in a different order. CHANGES THE RESULT! -function F3() -{ - return arguments; - var arguments = 555; -} - - -// use the global variable above named "arguments" -function F4() -{ - return arguments; -} - - - -/* - * In Sections 1 and 2, expect the local identifier, not the arguments object. - * In Sections 3 and 4, expect the arguments object, not the the identifier. - */ - -status = 'Section 1 of test'; -actual = F1(5); -expect = 5; -addThis(); - - -status = 'Section 2 of test'; -actual = F2(); -expect = 55; -addThis(); - - -status = 'Section 3 of test'; -actual = typeof F3(); -expect = TYPE_OBJECT; -addThis(); - - -status = 'Section 4 of test'; -actual = typeof F4(); -expect = TYPE_OBJECT; -addThis(); - - -// Let's try calling F1 without providing a parameter - -status = 'Section 5 of test'; -actual = F1(); -expect = undefined; -addThis(); - - -// Let's try calling F1 with too many parameters - -status = 'Section 6 of test'; -actual = F1(3,33,333); -expect = 3; -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-97921.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-97921.js deleted file mode 100644 index 855f966dc4..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/regress-97921.js +++ /dev/null @@ -1,152 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * georg@bioshop.de, pschwartau@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 10 September 2001 - * - * SUMMARY: Testing with() statement with nested functions - * See http://bugzilla.mozilla.org/show_bug.cgi?id=97921 - * - * Brendan: "The bug is peculiar to functions that have formal parameters, - * but that are called with fewer actual arguments than the declared number - * of formal parameters." - */ -//----------------------------------------------------------------------------- -var gTestfile = 'regress-97921.js'; -var UBound = 0; -var BUGNUMBER = 97921; -var summary = 'Testing with() statement with nested functions'; -var cnYES = 'Inner value === outer value'; -var cnNO = "Inner value !== outer value!"; -var status = ''; -var statusitems = []; -var actual = ''; -var actualvalues = []; -var expect= ''; -var expectedvalues = []; -var outerValue = ''; -var innerValue = ''; -var useWith = ''; - - -function F(i) -{ - i = 0; - if(useWith) with(1){i;} - i++; - - outerValue = i; // capture value of i in outer function - F1 = function() {innerValue = i;}; // capture value of i in inner function - F1(); -} - - -status = inSection(1); -useWith=false; -F(); // call F without supplying the argument -actual = innerValue === outerValue; -expect = true; -addThis(); - -status = inSection(2); -useWith=true; -F(); // call F without supplying the argument -actual = innerValue === outerValue; -expect = true; -addThis(); - - -function G(i) -{ - i = 0; - with (new Object()) {i=100}; - i++; - - outerValue = i; // capture value of i in outer function - G1 = function() {innerValue = i;}; // capture value of i in inner function - G1(); -} - - -status = inSection(3); -G(); // call G without supplying the argument -actual = innerValue === 101; -expect = true; -addThis(); - -status = inSection(4); -G(); // call G without supplying the argument -actual = innerValue === outerValue; -expect = true; -addThis(); - - - -//----------------------------------------------------------------------------- -test(); -//----------------------------------------------------------------------------- - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = areTheseEqual(actual); - expectedvalues[UBound] = areTheseEqual(expect); - UBound++; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} - - -function areTheseEqual(yes) -{ - return yes? cnYES : cnNO - } diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/scope-001.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/scope-001.js deleted file mode 100644 index 3aa1d3bc03..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/scope-001.js +++ /dev/null @@ -1,265 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com, rogerl@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 28 May 2001 - * - * SUMMARY: Functions are scoped statically, not dynamically - * - * See ECMA Section 10.1.4 Scope Chain and Identifier Resolution - * (This section defines the scope chain of an execution context) - * - * See ECMA Section 12.10 The with Statement - * - * See ECMA Section 13 Function Definition - * (This section defines the scope chain of a function object as that - * of the running execution context when the function was declared) - */ -//----------------------------------------------------------------------------- -var gTestfile = 'scope-001.js'; -var UBound = 0; -var BUGNUMBER = '(none)'; -var summary = 'Testing that functions are scoped statically, not dynamically'; -var self = this; // capture a reference to the global object -var status = ''; -var statusitems = [ ]; -var actual = ''; -var actualvalues = [ ]; -var expect= ''; -var expectedvalues = [ ]; - -/* - * In this section the expected value is 1, not 2. - * - * Why? f captures its scope chain from when it's declared, and imposes that chain - * when it's executed. In other words, f's scope chain is from when it was compiled. - * Since f is a top-level function, this is the global object only. Hence 'a' resolves to 1. - */ -status = 'Section A of test'; -var a = 1; -function f() -{ - return a; -} -var obj = {a:2}; -with (obj) -{ - actual = f(); -} -expect = 1; -addThis(); - - -/* - * In this section the expected value is 2, not 1. That is because here - * f's associated scope chain now includes 'obj' before the global object. - */ -status = 'Section B of test'; -var a = 1; -var obj = {a:2}; -with (obj) -{ - function f() - { - return a; - } - actual = f(); -} -expect = 2; -addThis(); - - -/* - * Like Section B , except that we call f outside the with block. - * By the principles explained above, we still expect 2 - - */ -status = 'Section C of test'; -var a = 1; -var obj = {a:2}; -with (obj) -{ - function f() - { - return a; - } -} -actual = f(); -expect = 2; -addThis(); - - -/* - * Like Section C, but with one more level of indirection - - */ -status = 'Section D of test'; -var a = 1; -var obj = {a:2, obj:{a:3}}; -with (obj) -{ - with (obj) - { - function f() - { - return a; - } - } -} -actual = f(); -expect = 3; -addThis(); - - -/* - * Like Section C, but here we actually delete obj before calling f. - * We still expect 2 - - */ -status = 'Section E of test'; -var a = 1; -var obj = {a:2}; -with (obj) -{ - function f() - { - return a; - } -} -delete obj; -actual = f(); -expect = 2; -addThis(); - - -/* - * Like Section E. Here we redefine obj and call f under with (obj) - - * We still expect 2 - - */ -status = 'Section F of test'; -var a = 1; -var obj = {a:2}; -with (obj) -{ - function f() - { - return a; - } -} -delete obj; -var obj = {a:3}; -with (obj) -{ - actual = f(); -} -expect = 2; // NOT 3 !!! -addThis(); - - -/* - * Explicitly verify that f exists at global level, even though - * it was defined under the with(obj) block - - */ -status = 'Section G of test'; -var a = 1; -var obj = {a:2}; -with (obj) -{ - function f() - { - return a; - } -} -actual = String([obj.hasOwnProperty('f'), self.hasOwnProperty('f')]); -expect = String([false, true]); -addThis(); - - -/* - * Explicitly verify that f exists at global level, even though - * it was defined under the with(obj) block - - */ -status = 'Section H of test'; -var a = 1; -var obj = {a:2}; -with (obj) -{ - function f() - { - return a; - } -} -actual = String(['f' in obj, 'f' in self]); -expect = String([false, true]); -addThis(); - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; - resetTestVars(); -} - - -function resetTestVars() -{ - delete a; - delete obj; - delete f; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/scope-002.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/scope-002.js deleted file mode 100644 index 7a9b6f204b..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/scope-002.js +++ /dev/null @@ -1,245 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * pschwartau@netscape.com, rogerl@netscape.com - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Date: 28 May 2001 - * - * SUMMARY: Functions are scoped statically, not dynamically - * - * See ECMA Section 10.1.4 Scope Chain and Identifier Resolution - * (This section defines the scope chain of an execution context) - * - * See ECMA Section 12.10 The with Statement - * - * See ECMA Section 13 Function Definition - * (This section defines the scope chain of a function object as that - * of the running execution context when the function was declared) - * - * Like scope-001.js, but using assignment var f = function expression - * instead of a function declaration: function f() {} etc. - */ -//----------------------------------------------------------------------------- -var gTestfile = 'scope-002.js'; -var UBound = 0; -var BUGNUMBER = '(none)'; -var summary = 'Testing that functions are scoped statically, not dynamically'; -var self = this; // capture a reference to the global object -var status = ''; -var statusitems = [ ]; -var actual = ''; -var actualvalues = [ ]; -var expect= ''; -var expectedvalues = [ ]; - - -/* - * In this section the expected value is 1, not 2. - * - * Why? f captures its scope chain from when it's declared, and imposes that chain - * when it's executed. In other words, f's scope chain is from when it was compiled. - * Since f is a top-level function, this is the global object only. Hence 'a' resolves to 1. - */ -status = 'Section A of test'; -var a = 1; -var f = function () {return a;}; -var obj = {a:2}; -with (obj) -{ - actual = f(); -} -expect = 1; -addThis(); - - -/* - * In this section the expected value is 2, not 1. That is because here - * f's associated scope chain now includes 'obj' before the global object. - */ -status = 'Section B of test'; -var a = 1; -var obj = {a:2}; -with (obj) -{ - var f = function () {return a;}; - actual = f(); -} -expect = 2; -addThis(); - - -/* - * Like Section B , except that we call f outside the with block. - * By the principles explained above, we still expect 2 - - */ -status = 'Section C of test'; -var a = 1; -var obj = {a:2}; -with (obj) -{ - var f = function () {return a;}; -} -actual = f(); -expect = 2; -addThis(); - - -/* - * Like Section C, but with one more level of indirection - - */ -status = 'Section D of test'; -var a = 1; -var obj = {a:2, obj:{a:3}}; -with (obj) -{ - with (obj) - { - var f = function () {return a;}; - } -} -actual = f(); -expect = 3; -addThis(); - - -/* - * Like Section C, but here we actually delete obj before calling f. - * We still expect 2 - - */ -status = 'Section E of test'; -var a = 1; -var obj = {a:2}; -with (obj) -{ - var f = function () {return a;}; -} -delete obj; -actual = f(); -expect = 2; -addThis(); - - -/* - * Like Section E. Here we redefine obj and call f under with (obj) - - * We still expect 2 - - */ -status = 'Section F of test'; -var a = 1; -var obj = {a:2}; -with (obj) -{ - var f = function () {return a;}; -} -delete obj; -var obj = {a:3}; -with (obj) -{ - actual = f(); -} -expect = 2; // NOT 3 !!! -addThis(); - - -/* - * Explicitly verify that f exists at global level, even though - * it was defined under the with(obj) block - - */ -status = 'Section G of test'; -var a = 1; -var obj = {a:2}; -with (obj) -{ - var f = function () {return a;}; -} -actual = String([obj.hasOwnProperty('f'), self.hasOwnProperty('f')]); -expect = String([false, true]); -addThis(); - - -/* - * Explicitly verify that f exists at global level, even though - * it was defined under the with(obj) block - - */ -status = 'Section H of test'; -var a = 1; -var obj = {a:2}; -with (obj) -{ - var f = function () {return a;}; -} -actual = String(['f' in obj, 'f' in self]); -expect = String([false, true]); -addThis(); - - - -//------------------------------------------------------------------------------------------------- -test(); -//------------------------------------------------------------------------------------------------- - - -function addThis() -{ - statusitems[UBound] = status; - actualvalues[UBound] = actual; - expectedvalues[UBound] = expect; - UBound++; - resetTestVars(); -} - - -function resetTestVars() -{ - delete a; - delete obj; - delete f; -} - - -function test() -{ - enterFunc ('test'); - printBugNumber(BUGNUMBER); - printStatus (summary); - - for (var i = 0; i < UBound; i++) - { - reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); - } - - exitFunc ('test'); -} diff --git a/tests/auto/declarative/parserstress/tests/ecma_3/Function/shell.js b/tests/auto/declarative/parserstress/tests/ecma_3/Function/shell.js deleted file mode 100644 index eebf3d51f8..0000000000 --- a/tests/auto/declarative/parserstress/tests/ecma_3/Function/shell.js +++ /dev/null @@ -1 +0,0 @@ -gTestsubsuite = 'Function'; |