js/src/tests/test262/ch12/12.14/S12.14_A12_T3.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 // Copyright 2009 the Sputnik authors.  All rights reserved.
     2 // This code is governed by the BSD license found in the LICENSE file.
     4 /**
     5  * Using "try" with "catch" or "finally" statement within/without a "for-in" statement
     6  *
     7  * @path ch12/12.14/S12.14_A12_T3.js
     8  * @description Try statement inside loop, where use break
     9  */
    11 var x;
    12 var mycars = new Array();
    13 mycars[0] = "Saab";
    14 mycars[1] = "Volvo";
    15 mycars[2] = "BMW";
    17 // CHECK#1
    18 var c1=0,fin=0;
    19 for (x in mycars){
    20   try{
    21     c1+=1;
    22     break;
    23   }
    24   catch(er1){
    25     c1+=1;
    26   }
    27   finally{
    28     fin=1;
    29   }
    30   fin=-1;
    31   c1+=2;
    32 };
    33 if(fin!==1){
    34   $ERROR('#1.1: "finally" block must be evaluated');
    35 }
    36 if(c1!==1){
    37   $ERROR('#1.2: "try{break}catch finally" must work correctly');
    38 }
    40 // CHECK#2
    41 var c2=0,fin2=0;
    42 for (x in mycars){
    43   try{
    44     throw "ex1";
    45   }
    46   catch(er1){
    47     c2+=1;
    48     break;
    49   }
    50   finally{
    51     fin2=1;
    52   }
    53   c2+=2;
    54   fin2=-1;
    55 }
    56 if(fin2!==1){
    57   $ERROR('#2.1: "finally" block must be evaluated');
    58 }
    59 if(c2!==1){
    60   $ERROR('#2.2: "try catch{break} finally" must work correctly');
    61 }
    63 // CHECK#3
    64 var c3=0,fin3=0;
    65 for (x in mycars){
    66   try{
    67     throw "ex1";
    68   }
    69   catch(er1){
    70     c3+=1;
    71   }
    72   finally{
    73     fin3=1;
    74     break;
    75   }
    76   c3+=2;
    77   fin3=0;
    78 }
    79 if(fin3!==1){
    80   $ERROR('#3.1: "finally" block must be evaluated');
    81 }
    82 if(c3!==1){
    83   $ERROR('#3.2: "try catch finally{break}" must work correctly');
    84 }
    86 // CHECK#4
    87 var c4=0,fin4=0;
    88 for (x in mycars){
    89   try{
    90     c4+=1;
    91     break;
    92   }
    93   finally{
    94     fin4=1;
    95   }
    96   fin4=-1;
    97   c4+=2;
    98 }
    99 if(fin4!==1){
   100   $ERROR('#4.1: "finally" block must be evaluated');
   101 }
   102 if(c4!==1){
   103   $ERROR('#4.2: "try{break} finally" must work correctly');
   104 }
   106 // CHECK#5
   107 var c5=0;
   108 for (x in mycars){
   109   try{
   110     throw "ex1";
   111     c5++;
   112   }
   113   catch(er1){
   114     break;
   115     c5++;
   116   }
   117   c5++;
   118 }
   119 if(c5!==0){
   120   $ERROR('#5: "try catch{break}" must work correctly');
   121 }
   123 // CHECK#6
   124 var c6=0;
   125 for (x in mycars){
   126   try{
   127     c6+=1;
   128     break;
   129   }
   130   catch(er1){}
   131   c6+=2;
   132 }
   133 if(c6!==1){
   134   $ERROR('#6: "try{break} catch" must work correctly');
   135 }
   137 // CHECK#7
   138 var c7=0,fin7=0;
   139 try{
   140   for (x in mycars){
   141     try{
   142       c7+=1;
   143       throw "ex1";
   144     }
   145     finally{
   146       fin7=1;
   147       break;
   148     }
   149     fin7=-1;
   150     c7+=2;
   151   }
   152 }
   153 catch(ex1){
   154   c7=10;
   155 }
   156 if(fin7!==1){
   157   $ERROR('#7.1: "finally" block must be evaluated');
   158 }
   159 if(c7!==1){
   160   $ERROR('#7.2: "try finally{break}" must work correctly');
   161 }

mercurial