js/src/tests/js1_5/Regress/regress-321874.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 var BUGNUMBER = 321874;
     8 var summary = 'lhs must be a reference in (for lhs in rhs) ...';
     9 var actual = '';
    10 var expect = '';
    11 var section;
    13 printBugNumber(BUGNUMBER);
    14 printStatus (summary);
    16 function a() {}
    17 var b = {foo: 'bar'};
    19 printStatus('for-in tests');
    21 var v;
    22 section = summary + ': for((v) in b);';
    23 expect = 'foo';
    24 printStatus(section);
    25 try
    26 {
    27   eval('for ((v) in b);');
    28   actual = v;
    29 }
    30 catch(ex)
    31 {
    32   printStatus(ex+'');
    33   actual = 'error';
    34 } 
    35 reportCompare(expect, actual, section);
    37 section = summary + ': function foo(){for((v) in b);};foo();';
    38 expect = 'foo';
    39 printStatus(section);
    40 try
    41 {
    42   eval('function foo(){ for ((v) in b);}; foo();');
    43   actual = v;
    44 }
    45 catch(ex)
    46 {
    47   printStatus(ex+'');
    48   actual = 'error';
    49 } 
    50 reportCompare(expect, actual, section);
    52 section = summary + ': for(a() in b);';
    53 expect = 'error';
    54 printStatus(section);
    55 try
    56 {
    57   eval('for (a() in b);');
    58   actual = 'no error';
    59 }
    60 catch(ex)
    61 {
    62   printStatus(ex+'');
    63   actual = 'error';
    64 } 
    65 reportCompare(expect, actual, section);
    67 section = summary + ': function foo(){for(a() in b);};foo();';
    68 expect = 'error';
    69 printStatus(section);
    70 try
    71 {
    72   eval('function foo(){ for (a() in b);};foo();');
    73   actual = 'no error';
    74 }
    75 catch(ex)
    76 {
    77   printStatus(ex+'');
    78   actual = 'error';
    79 } 
    80 reportCompare(expect, actual, section);
    82 section = ': for(new a() in b);';
    83 expect = 'error';
    84 printStatus(section);
    85 try
    86 {
    87   eval('for (new a() in b);');
    88   actual = 'no error';
    89 }
    90 catch(ex)
    91 {
    92   printStatus(ex+'');
    93   actual = 'error';
    94 } 
    95 reportCompare(expect, actual, summary + section);
    97 section = ': function foo(){for(new a() in b);};foo();';
    98 expect = 'error';
    99 printStatus(section);
   100 try
   101 {
   102   eval('function foo(){ for (new a() in b);};foo();');
   103   actual = 'no error';
   104 }
   105 catch(ex)
   106 {
   107   printStatus(ex+'');
   108   actual = 'error';
   109 } 
   110 reportCompare(expect, actual, summary + section);
   112 section = ': for(void in b);';
   113 expect = 'error';
   114 printStatus(section);
   115 try
   116 {
   117   eval('for (void in b);');
   118   actual = 'no error';
   119 }
   120 catch(ex)
   121 {
   122   printStatus(ex+'');
   123   actual = 'error';
   124 } 
   125 reportCompare(expect, actual, summary + section);
   127 section = ': function foo(){for(void in b);};foo();';
   128 expect = 'error';
   129 printStatus(section);
   130 try
   131 {
   132   eval('function foo(){ for (void in b);};foo();');
   133   actual = 'no error';
   134 }
   135 catch(ex)
   136 {
   137   printStatus(ex+'');
   138   actual = 'error';
   139 } 
   140 reportCompare(expect, actual, summary + section);
   142 var d = 1;
   143 var e = 2;
   144 expect = 'error';
   145 section = ': for((d*e) in b);';
   146 printStatus(section);
   147 try
   148 {
   149   eval('for ((d*e) in b);');
   150   actual = 'no error';
   151 }
   152 catch(ex)
   153 {
   154   printStatus(ex+'');
   155   actual = 'error';
   156 } 
   157 reportCompare(expect, actual, summary + section);
   159 var d = 1;
   160 var e = 2;
   161 expect = 'error';
   162 section = ': function foo(){for((d*e) in b);};foo();';
   163 printStatus(section);
   164 try
   165 {
   166   eval('function foo(){ for ((d*e) in b);};foo();');
   167   actual = 'no error';
   168 }
   169 catch(ex)
   170 {
   171   printStatus(ex+'');
   172   actual = 'error';
   173 } 
   174 reportCompare(expect, actual, summary + section);
   176 const c = 0;
   177 expect = 0;
   178 section = ': for(c in b);';
   179 printStatus(section);
   180 try
   181 {
   182   eval('for (c in b);');
   183   actual = c;
   184   printStatus('typeof c: ' + (typeof c) + ', c: ' + c);
   185 }
   186 catch(ex)
   187 {
   188   printStatus(ex+'');
   189   actual = 'error';
   190 } 
   191 reportCompare(expect, actual, summary + section);
   193 expect = 0;
   194 section = ': function foo(){for(c in b);};foo();';
   195 printStatus(section);
   196 try
   197 {
   198   eval('function foo(){ for (c in b);};foo();');
   199   actual = c;
   200   printStatus('typeof c: ' + (typeof c) + ', c: ' + c);
   201 }
   202 catch(ex)
   203 {
   204   printStatus(ex+'');
   205   actual = 'error';
   206 } 
   207 reportCompare(expect, actual, summary + section);

mercurial