js/src/tests/js1_5/Regress/regress-168347.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this
     4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     6 /*
     7  *
     8  * Date:    13 Sep 2002
     9  * SUMMARY: Testing F.toString()
    10  * See http://bugzilla.mozilla.org/show_bug.cgi?id=168347
    11  *
    12  */
    13 //-----------------------------------------------------------------------------
    14 var UBound = 0;
    15 var BUGNUMBER = 168347;
    16 var summary = "Testing F.toString()";
    17 var status = '';
    18 var statusitems = [];
    19 var actual = '';
    20 var actualvalues = [];
    21 var expect= '';
    22 var expectedvalues = [];
    23 var FtoString = '';
    24 var sFunc = '';
    26 sFunc += 'function F()';
    27 sFunc += '{';
    28 sFunc += '  var f = arguments.callee;';
    29 sFunc += '  f.i = 0;';
    30 sFunc += '';
    31 sFunc += '  try';
    32 sFunc += '  {';
    33 sFunc += '    f.i = f.i + 1;';
    34 sFunc += '    print("i = i+1 succeeded \ti = " + f.i);';
    35 sFunc += '  }';
    36 sFunc += '  catch(e)';
    37 sFunc += '  {';
    38 sFunc += '    print("i = i+1 failed with " + e + "\ti = " + f.i);';
    39 sFunc += '  }';
    40 sFunc += '';
    41 sFunc += '  try';
    42 sFunc += '  {';
    43 sFunc += '    ++f.i;';
    44 sFunc += '    print("++i succeeded \t\ti = " + f.i);';
    45 sFunc += '  }';
    46 sFunc += '  catch(e)';
    47 sFunc += '  {';
    48 sFunc += '    print("++i failed with " + e + "\ti = " + f.i);';
    49 sFunc += '  }';
    50 sFunc += '';
    51 sFunc += '  try';
    52 sFunc += '  {';
    53 sFunc += '    f.i++;';
    54 sFunc += '    print("i++ succeeded \t\ti = " + f.i);';
    55 sFunc += '  }';
    56 sFunc += '  catch(e)';
    57 sFunc += '  {';
    58 sFunc += '    print("i++ failed with " + e + "\ti = " + f.i);';
    59 sFunc += '  }';
    60 sFunc += '';
    61 sFunc += '  try';
    62 sFunc += '  {';
    63 sFunc += '    --f.i;';
    64 sFunc += '    print("--i succeeded \t\ti = " + f.i);';
    65 sFunc += '  }';
    66 sFunc += '  catch(e)';
    67 sFunc += '  {';
    68 sFunc += '    print("--i failed with " + e + "\ti = " + f.i);';
    69 sFunc += '  }';
    70 sFunc += '';
    71 sFunc += '  try';
    72 sFunc += '  {';
    73 sFunc += '    f.i--;';
    74 sFunc += '    print("i-- succeeded \t\ti = " + f.i);';
    75 sFunc += '  }';
    76 sFunc += '  catch(e)';
    77 sFunc += '  {';
    78 sFunc += '    print("i-- failed with " + e + "\ti = " + f.i);';
    79 sFunc += '  }';
    80 sFunc += '}';
    83 /*
    84  * Use sFunc to define the function F. The test
    85  * then rests on comparing F.toString() to sFunc.
    86  */
    87 eval(sFunc);
    90 /*
    91  * There are trivial whitespace differences between F.toString()
    92  * and sFunc. So strip out whitespace before comparing them -
    93  */
    94 sFunc = stripWhite(sFunc);
    95 FtoString = stripWhite(F.toString());
    98 /*
    99  * Break comparison into sections to make any failures
   100  * easier for the developer to track down -
   101  */
   102 status = inSection(1);
   103 actual = FtoString.substring(0,100);
   104 expect = sFunc.substring(0,100);
   105 addThis();
   107 status = inSection(2);
   108 actual = FtoString.substring(100,200);
   109 expect = sFunc.substring(100,200);
   110 addThis();
   112 status = inSection(3);
   113 actual = FtoString.substring(200,300);
   114 expect = sFunc.substring(200,300);
   115 addThis();
   117 status = inSection(4);
   118 actual = FtoString.substring(300,400);
   119 expect = sFunc.substring(300,400);
   120 addThis();
   122 status = inSection(5);
   123 actual = FtoString.substring(400,500);
   124 expect = sFunc.substring(400,500);
   125 addThis();
   127 status = inSection(6);
   128 actual = FtoString.substring(500,600);
   129 expect = sFunc.substring(500,600);
   130 addThis();
   132 status = inSection(7);
   133 actual = FtoString.substring(600,700);
   134 expect = sFunc.substring(600,700);
   135 addThis();
   137 status = inSection(8);
   138 actual = FtoString.substring(700,800);
   139 expect = sFunc.substring(700,800);
   140 addThis();
   142 status = inSection(9);
   143 actual = FtoString.substring(800,900);
   144 expect = sFunc.substring(800,900);
   145 addThis();
   149 //-----------------------------------------------------------------------------
   150 test();
   151 //-----------------------------------------------------------------------------
   155 function addThis()
   156 {
   157   statusitems[UBound] = status;
   158   actualvalues[UBound] = actual;
   159   expectedvalues[UBound] = expect;
   160   UBound++;
   161 }
   163 /*
   164  * Remove any whitespace characters; also
   165  * any escaped tabs or escaped newlines.
   166  */
   167 function stripWhite(str)
   168 {
   169   var re = /\s|\\t|\\n/g;
   170   return str.replace(re, '');
   171 }
   174 function test()
   175 {
   176   enterFunc('test');
   177   printBugNumber(BUGNUMBER);
   178   printStatus(summary);
   180   for (var i=0; i<UBound; i++)
   181   {
   182     reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
   183   }
   185   exitFunc ('test');
   186 }

mercurial