1/* ***** BEGIN LICENSE BLOCK ***** 2* Version: NPL 1.1/GPL 2.0/LGPL 2.1 3* 4* The contents of this file are subject to the Netscape Public License 5* Version 1.1 (the "License"); you may not use this file except in 6* compliance with the License. You may obtain a copy of the License at 7* http://www.mozilla.org/NPL/ 8* 9* Software distributed under the License is distributed on an "AS IS" basis, 10* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 11* for the specific language governing rights and limitations under the 12* License. 13* 14* The Original Code is JavaScript Engine testing utilities. 15* 16* The Initial Developer of the Original Code is Netscape Communications Corp. 17* Portions created by the Initial Developer are Copyright (C) 2002 18* the Initial Developer. All Rights Reserved. 19* 20* Contributor(s): george@vanous.com, igor@icesoft.no, pschwartau@netscape.com 21* 22* Alternatively, the contents of this file may be used under the terms of 23* either the GNU General Public License Version 2 or later (the "GPL"), or 24* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 25* in which case the provisions of the GPL or the LGPL are applicable instead 26* of those above. If you wish to allow use of your version of this file only 27* under the terms of either the GPL or the LGPL, and not to allow others to 28* use your version of this file under the terms of the NPL, indicate your 29* decision by deleting the provisions above and replace them with the notice 30* and other provisions required by the GPL or the LGPL. If you do not delete 31* the provisions above, a recipient may use your version of this file under 32* the terms of any one of the NPL, the GPL or the LGPL. 33* 34* ***** END LICENSE BLOCK ***** 35* 36* 37* Date: 19 September 2002 38* SUMMARY: Testing Array.prototype.concat() 39* See http://bugzilla.mozilla.org/show_bug.cgi?id=169795 40* 41*/ 42//----------------------------------------------------------------------------- 43var UBound = 0; 44var bug = 169795; 45var summary = 'Testing Array.prototype.concat()'; 46var status = ''; 47var statusitems = []; 48var actual = ''; 49var actualvalues = []; 50var expect= ''; 51var expectedvalues = []; 52var x; 53 54 55status = inSection(1); 56x = "Hello"; 57actual = [].concat(x).toString(); 58expect = x.toString(); 59addThis(); 60 61status = inSection(2); 62x = 999; 63actual = [].concat(x).toString(); 64expect = x.toString(); 65addThis(); 66 67status = inSection(3); 68x = /Hello/g; 69actual = [].concat(x).toString(); 70expect = x.toString(); 71addThis(); 72 73status = inSection(4); 74x = new Error("Hello"); 75actual = [].concat(x).toString(); 76expect = x.toString(); 77addThis(); 78 79status = inSection(5); 80x = function() {return "Hello";}; 81actual = [].concat(x).toString(); 82expect = x.toString(); 83addThis(); 84 85status = inSection(6); 86x = [function() {return "Hello";}]; 87actual = [].concat(x).toString(); 88expect = x.toString(); 89addThis(); 90 91status = inSection(7); 92x = [1,2,3].concat([4,5,6]); 93actual = [].concat(x).toString(); 94expect = x.toString(); 95addThis(); 96 97status = inSection(8); 98x = eval('this'); 99actual = [].concat(x).toString(); 100expect = x.toString(); 101addThis(); 102 103/* 104 * The next two sections are by igor@icesoft.no; see 105 * http://bugzilla.mozilla.org/show_bug.cgi?id=169795#c3 106 */ 107status = inSection(9); 108x={length:0}; 109actual = [].concat(x).toString(); 110expect = x.toString(); 111addThis(); 112 113status = inSection(10); 114x={length:2, 0:0, 1:1}; 115actual = [].concat(x).toString(); 116expect = x.toString(); 117addThis(); 118 119 120 121//----------------------------------------------------------------------------- 122test(); 123//----------------------------------------------------------------------------- 124 125 126 127function addThis() 128{ 129 statusitems[UBound] = status; 130 actualvalues[UBound] = actual; 131 expectedvalues[UBound] = expect; 132 UBound++; 133} 134 135 136function test() 137{ 138 enterFunc('test'); 139 printBugNumber(bug); 140 printStatus(summary); 141 142 for (var i=0; i<UBound; i++) 143 { 144 reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]); 145 } 146 147 exitFunc ('test'); 148} 149