1 /* The contents of this file are subject to the Netscape Public 2 * License Version 1.1 (the "License"); you may not use this file 3 * except in compliance with the License. You may obtain a copy of 4 * the License at http://www.mozilla.org/NPL/ 5 * 6 * Software distributed under the License is distributed on an "AS 7 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 8 * implied. See the License for the specific language governing 9 * rights and limitations under the License. 10 * 11 * The Original Code is Mozilla Communicator client code, released March 12 * 31, 1998. 13 * 14 * The Initial Developer of the Original Code is Netscape Communications 15 * Corporation. Portions created by Netscape are 16 * Copyright (C) 1998 Netscape Communications Corporation. All 17 * Rights Reserved. 18 * 19 * Contributor(s): 20 * 21 */ 22 /** 23 File Name: 10.1.3-1.js 24 ECMA Section: 10.1.3 25 Description: 26 27 For each formal parameter, as defined in the FormalParameterList, create 28 a property of the variable object whose name is the Identifier and whose 29 attributes are determined by the type of code. The values of the 30 parameters are supplied by the caller. If the caller supplies fewer 31 parameter values than there are formal parameters, the extra formal 32 parameters have value undefined. If two or more formal parameters share 33 the same name, hence the same property, the corresponding property is 34 given the value that was supplied for the last parameter with this name. 35 If the value of this last parameter was not supplied by the caller, 36 the value of the corresponding property is undefined. 37 38 39 http://scopus.mcom.com/bugsplat/show_bug.cgi?id=104191 40 41 Author: christine (at) netscape.com 42 Date: 12 november 1997 43 */ 44 45 var SECTION = "10.1.3-1"; 46 var VERSION = "ECMA_1"; 47 startTest(); 48 var TITLE = "Variable Instantiation: Formal Parameters"; 49 var BUGNUMBER="104191"; 50 51 writeHeaderToLog( SECTION + " "+ TITLE); 52 53 var testcases = new Array(); 54 55 var myfun1 = new Function( "a", "a", "return a" ); 56 var myfun2 = new Function( "a", "b", "a", "return a" ); 57 58 function myfun3(a, b, a) { 59 return a; 60 } 61 62 // myfun1, myfun2, myfun3 tostring 63 64 65 testcases[tc++] = new TestCase( 66 SECTION, 67 String(myfun2) +"; myfun2(2,4,8)", 68 8, 69 myfun2(2,4,8) ); 70 71 testcases[tc++] = new TestCase( 72 SECTION, 73 "myfun2(2,4)", 74 void 0, 75 myfun2(2,4)); 76 77 testcases[tc++] = new TestCase( 78 SECTION, 79 String(myfun3) +"; myfun3(2,4,8)", 80 8, 81 myfun3(2,4,8) ); 82 83 testcases[tc++] = new TestCase( 84 SECTION, 85 "myfun3(2,4)", 86 void 0, 87 myfun3(2,4) ); 88 89 90 91 92 93 test(); 94 95 function test() { 96 for ( tc=0; tc < testcases.length; tc++ ) { 97 testcases[tc].passed = writeTestCaseResult( 98 testcases[tc].expect, 99 testcases[tc].actual, 100 testcases[tc].description +" = "+ 101 testcases[tc].actual ); 102 103 testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value "; 104 } 105 stopTest(); 106 return ( testcases ); 107 } 108