1/* 2* The contents of this file are subject to the Netscape Public 3* License Version 1.1 (the "License"); you may not use this file 4* except in compliance with the License. You may obtain a copy of 5* the License at http://www.mozilla.org/NPL/ 6* 7* Software distributed under the License is distributed on an "AS IS" 8* basis, WITHOUT WARRANTY OF ANY KIND, either expressed 9* or implied. See the License for the specific language governing 10* rights and limitations under the License. 11* 12* The Original Code is mozilla.org code. 13* 14* The Initial Developer of the Original Code is Netscape 15* Communications Corporation. Portions created by Netscape are 16* Copyright (C) 1998 Netscape Communications Corporation. All 17* Rights Reserved. 18* 19* Contributor(s): pschwartau@netscape.com 20* Date: 14 Mar 2001 21* 22* SUMMARY: Testing the [[Class]] property of native constructors. 23* See ECMA-262 Edition 3 13-Oct-1999, Section 8.6.2 re [[Class]] property. 24* 25* Same as class-001.js - but testing the constructors here, not object instances. 26* Therefore we expect the [[Class]] property to equal 'Function' in each case. 27* 28* The getJSClass() function we use is in a utility file, e.g. "shell.js" 29*/ 30//------------------------------------------------------------------------------------------------- 31var i = 0; 32var UBound = 0; 33var bug = '(none)'; 34var summary = 'Testing the internal [[Class]] property of native constructors'; 35var statprefix = 'Current constructor is: '; 36var status = ''; var statusList = [ ]; 37var actual = ''; var actualvalue = [ ]; 38var expect= ''; var expectedvalue = [ ]; 39 40/* 41 * We set the expect variable each time only for readability. 42 * We expect 'Function' every time; see discussion above - 43 */ 44status = 'Object'; 45actual = getJSClass(Object); 46expect = 'Function'; 47addThis(); 48 49status = 'Function'; 50actual = getJSClass(Function); 51expect = 'Function'; 52addThis(); 53 54status = 'Array'; 55actual = getJSClass(Array); 56expect = 'Function'; 57addThis(); 58 59status = 'String'; 60actual = getJSClass(String); 61expect = 'Function'; 62addThis(); 63 64status = 'Boolean'; 65actual = getJSClass(Boolean); 66expect = 'Function'; 67addThis(); 68 69status = 'Number'; 70actual = getJSClass(Number); 71expect = 'Function'; 72addThis(); 73 74status = 'Date'; 75actual = getJSClass(Date); 76expect = 'Function'; 77addThis(); 78 79status = 'RegExp'; 80actual = getJSClass(RegExp); 81expect = 'Function'; 82addThis(); 83 84status = 'Error'; 85actual = getJSClass(Error); 86expect = 'Function'; 87addThis(); 88 89 90 91//--------------------------------------------------------------------------------- 92test(); 93//--------------------------------------------------------------------------------- 94 95 96 97function addThis() 98{ 99 statusList[UBound] = status; 100 actualvalue[UBound] = actual; 101 expectedvalue[UBound] = expect; 102 UBound++; 103} 104 105 106function test() 107{ 108 enterFunc ('test'); 109 printBugNumber (bug); 110 printStatus (summary); 111 112 for (i = 0; i < UBound; i++) 113 { 114 reportCompare(expectedvalue[i], actualvalue[i], getStatus(i)); 115 } 116 117 exitFunc ('test'); 118} 119 120 121function getStatus(i) 122{ 123 return statprefix + statusList[i]; 124} 125