]>
git.saurik.com Git - apple/javascriptcore.git/blob - tests/mozilla/js1_5/Regress/regress-159334.js
   1 /* ***** BEGIN LICENSE BLOCK ***** 
   2 * Version: NPL 1.1/GPL 2.0/LGPL 2.1 
   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/ 
   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 
  14 * The Original Code is JavaScript Engine testing utilities. 
  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. 
  20 * Contributor(s): igor@icesoft.no, pschwartau@netscape.com 
  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. 
  34 * ***** END LICENSE BLOCK ***** 
  38 * SUMMARY: Testing script with at least 64K of different string literals 
  39 * See http://bugzilla.mozilla.org/show_bug.cgi?id=159334 
  41 * Testing that script engine can handle scripts with at least 128K of different 
  42 * string literals. The following will evaluate, via eval(), a script like this: 
  52 //----------------------------------------------------------------------------- 
  55 var summary 
= 'Testing script with at least 128K of different string literals'; 
  59 var actualvalues 
= []; 
  61 var expectedvalues 
= []; 
  66 // Create big string for eval recursively to avoid N*N behavior 
  67 // on string concatenation 
  68 var long_eval 
= buildEval_r(0, N
); 
  72 function f(str
) { test_sum 
+= Number(str
); } 
  75 status 
= inSection(1); 
  76 actual 
= (test_sum 
== N 
* (N 
- 1) / 2); 
  82 //----------------------------------------------------------------------------- 
  84 //----------------------------------------------------------------------------- 
  88 function buildEval_r(beginLine
, endLine
) 
  90   var count 
= endLine 
- beginLine
; 
  96     return "f('" + beginLine 
+ "')\n"; 
  98   var middle 
= beginLine 
+ (count 
>>> 1); 
  99   return buildEval_r(beginLine
, middle
) + buildEval_r(middle
, endLine
); 
 105   statusitems
[UBound
] = status
; 
 106   actualvalues
[UBound
] = actual
; 
 107   expectedvalues
[UBound
] = expect
; 
 116   printStatus(summary
); 
 118   for (var i
=0; i
<UBound
; i
++) 
 120     reportCompare(expectedvalues
[i
], actualvalues
[i
], statusitems
[i
]);