tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

S12.14_A12_T2.js (2211B)


      1 // Copyright 2009 the Sputnik authors.  All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 
      4 /*---
      5 info: |
      6    Using "try" with "catch" or "finally" statement within/without a "for-in"
      7    statement
      8 es5id: 12.14_A12_T2
      9 description: Try statement inside loop, where use continue loop
     10 ---*/
     11 
     12 var x;
     13 var mycars = new Array();
     14 mycars[0] = "Saab";
     15 mycars[1] = "Volvo";
     16 mycars[2] = "BMW";
     17 
     18 // CHECK#1
     19 var fin=0;
     20 var i=0;
     21 for (x in mycars){
     22  try{
     23    i+=1;
     24    continue;
     25  }
     26  catch(er1){}
     27  finally{
     28    fin=1;
     29  }
     30  fin=-1;
     31 }
     32 if(fin!==1){
     33  throw new Test262Error('#1.1: "finally" block must be evaluated');
     34 }
     35 if(i!==3){
     36  throw new Test262Error('#1.2:  "try{continue} catch finally" must work correctly');
     37 }
     38 
     39 // CHECK#2
     40 var c2=0,fin2=0;
     41 for (x in mycars){
     42  try{
     43    throw "ex1";
     44  }
     45  catch(er1){
     46    c2+=1;
     47    continue;
     48  }
     49  finally{
     50    fin2=1;
     51  }
     52  fin2=-1;
     53 }
     54 if(fin2!==1){
     55  throw new Test262Error('#2.1: "finally" block must be evaluated');
     56 }
     57 if(c2!==3){
     58  throw new Test262Error('#2.1: "try catch{continue} finally" must work correctly');
     59 }
     60 
     61 // CHECK#3
     62 var c3=0,fin3=0;
     63 for (x in mycars){
     64  try{
     65    throw "ex1";
     66  }
     67  catch(er1){
     68    c3+=1;
     69  }
     70  finally{
     71    fin3=1;
     72    continue;
     73  }
     74  fin3=0;
     75 }
     76 if(c3!==3){
     77  throw new Test262Error('#3.1: "finally" block must be evaluated');
     78 }
     79 if(fin3!==1){
     80  throw new Test262Error('#3.2: "try catch finally{continue}" must work correctly');
     81 }
     82 
     83 // CHECK#4
     84 var fin=0;
     85 for (x in mycars){
     86  try{
     87    continue;
     88  }
     89  finally{
     90    fin=1;
     91  }
     92  fin=-1;
     93 }
     94 if(fin!==1){
     95  throw new Test262Error('#4: "finally" block must be evaluated at "try{continue} finally" construction');
     96 }
     97 
     98 // CHECK#5
     99 var c5=0;
    100 for (x in mycars){
    101  try{
    102    throw "ex1";
    103  }
    104  catch(er1){
    105    c5+=1;
    106    continue;
    107  }
    108  c5+=12;
    109 }
    110 if(c5!==3){
    111  throw new Test262Error('#5: "try catch{continue}" must work correctly');
    112 }
    113 
    114 // CHECK#6
    115 var c6=0,fin6=0;
    116 for (x in mycars){
    117  try{
    118    c6+=1;
    119    throw "ex1";
    120  }
    121  finally{
    122    fin6=1;
    123    continue;
    124  }
    125  fin6=-1;
    126 }
    127 if(fin6!==1){
    128  throw new Test262Error('#6.1: "finally" block must be evaluated');
    129 }
    130 if(c6!==3){
    131  throw new Test262Error('#6.2: "try finally{continue}" must work correctly');
    132 }
    133 
    134 reportCompare(0, 0);