js/src/tests/js1_7/lexical/regress-346642-03.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 // |reftest| skip -- obsolete test
     2 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     3 /* This Source Code Form is subject to the terms of the Mozilla Public
     4  * License, v. 2.0. If a copy of the MPL was not distributed with this
     5  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     7 //-----------------------------------------------------------------------------
     8 var BUGNUMBER = 346642;
     9 var summary = 'decompilation of destructuring assignment';
    10 var actual = '';
    11 var expect = '';
    14 //-----------------------------------------------------------------------------
    15 test();
    16 //-----------------------------------------------------------------------------
    18 function test()
    19 {
    20   enterFunc ('test');
    21   printBugNumber(BUGNUMBER);
    22   printStatus (summary);
    24   expect = 'TypeError: NaN is not a constructor';
    25   actual = 'No Crash';
    26   try
    27   {
    28     try { throw 1; } catch(e1 if 0) { } catch(e2 if (new NaN)) { }
    29   }
    30   catch(ex)
    31   {
    32     actual = ex + '';
    33   }
    34   reportCompare(expect, actual, summary + ': 1');
    36   expect = /TypeError: x.t (has no properties|is undefined)/;
    37   actual = 'No Crash';
    38   try
    39   {
    40     z = [1];
    41     let (x = (undefined ? 3 : z)) { x.t.g }
    42   }
    43   catch(ex)
    44   {
    45     actual = ex + '';
    46   }
    47   reportMatch(expect, actual, summary + ': 2');
    49   expect = /TypeError: x.t (has no properties|is undefined)/;
    50   actual = 'No Crash';
    51   try
    52   {
    53     z = [1];
    54     new Function("let (x = (undefined ? 3 : z)) { x.t.g }")()
    55       }
    56   catch(ex)
    57   {
    58     actual = ex + '';
    59   }
    60   reportMatch(expect, actual, summary + ': 3');
    62   expect = 'TypeError: b is not a constructor';
    63   actual = 'No Crash';
    64   try
    65   {
    66     with({x: (new (b = 1))}) (2).x
    67       }
    68   catch(ex)
    69   {
    70     actual = ex + '';
    71   }
    72   reportCompare(expect, actual, summary + ': 4');
    74   expect = /TypeError: this.zzz (has no properties|is undefined)/;
    75   actual = 'No Crash';
    76   try
    77   {
    78     (function(){try { } catch(f) { return; } finally { this.zzz.zzz }})();
    79   }
    80   catch(ex)
    81   {
    82     actual = ex + '';
    83   }
    84   reportMatch(expect, actual, summary + ': 5');
    86   expect = 'TypeError: p.z = <x><y/></x> ? 3 : 4 is not a function';
    87   actual = 'No Crash';
    88   try
    89   {
    90     (new Function("if(\n({y:5, p: (print).r})) { p={}; (p.z = <x\n><y/></x> ? 3 : 4)(5) }"))();
    91   }
    92   catch(ex)
    93   {
    94     actual = ex + '';
    95   }
    96   reportCompare(expect, actual, summary + ': 6');
    98   expect = 'TypeError: xx is not a function';
    99   actual = 'No Crash';
   100   try
   101   {
   102     switch(xx) { case 3: case (new ([3].map)): } const xx;
   103   }
   104   catch(ex)
   105   {
   106     actual = ex + '';
   107   }
   108   reportCompare(expect, actual, summary + ': 7');
   110   expect = 'TypeError: ++x is not a function';
   111   actual = 'No Crash';
   112   try
   113   {
   114     let (x=3) ((++x)())
   115       }
   116   catch(ex)
   117   {
   118     actual = ex + '';
   119   }
   120   reportCompare(expect, actual, summary + ': 8');
   122   expect = 'ReferenceError: x.y is not defined';
   123   actual = 'No Crash';
   124   try
   125   {
   126     x = {};
   127     import x.y;
   128   }
   129   catch(ex)
   130   {
   131     actual = ex + '';
   132   }
   133   reportCompare(expect, actual, summary + ': 9');
   135   exitFunc ('test');
   136 }

mercurial