1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/tests/test262/ch12/12.14/S12.14_A11_T3.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,150 @@ 1.4 +// Copyright 2009 the Sputnik authors. All rights reserved. 1.5 +// This code is governed by the BSD license found in the LICENSE file. 1.6 + 1.7 +/** 1.8 + * Using "try" with "catch" or "finally" statement within/without a "for" statement 1.9 + * 1.10 + * @path ch12/12.14/S12.14_A11_T3.js 1.11 + * @description Try statement inside loop, where use break 1.12 + */ 1.13 + 1.14 +// CHECK#1 1.15 +var c1=0,fin=0; 1.16 +for(var i=0;i<5;i++){ 1.17 + try{ 1.18 + c1+=1; 1.19 + break; 1.20 + } 1.21 + catch(er1){} 1.22 + finally{ 1.23 + fin=1; 1.24 + } 1.25 + fin=-1; 1.26 + c1+=2; 1.27 +}; 1.28 +if(fin!==1){ 1.29 + $ERROR('#1.1: "finally" block must be evaluated'); 1.30 +} 1.31 +if(c1!==1){ 1.32 + $ERROR('#1.2: "try{break}catch finally" must work correctly'); 1.33 +} 1.34 + 1.35 +// CHECK#2 1.36 +var c2=0,fin2=0; 1.37 +for(var i=0;i<5;i++){ 1.38 + try{ 1.39 + throw "ex1"; 1.40 + } 1.41 + catch(er1){ 1.42 + c2+=1; 1.43 + break; 1.44 + } 1.45 + finally{ 1.46 + fin2=1; 1.47 + } 1.48 + c2+=2; 1.49 + fin2=-1; 1.50 +}; 1.51 +if(fin2!==1){ 1.52 + $ERROR('#2.1: "finally" block must be evaluated'); 1.53 +} 1.54 +if(c2!==1){ 1.55 + $ERROR('#2.2: "try catch{break} finally" must work correctly'); 1.56 +} 1.57 + 1.58 +// CHECK#3 1.59 +var c3=0,fin3=0; 1.60 +for(var i=0;i<5;i++){ 1.61 + try{ 1.62 + throw "ex1"; 1.63 + } 1.64 + catch(er1){ 1.65 + c3+=1; 1.66 + } 1.67 + finally{ 1.68 + fin3=1; 1.69 + break; 1.70 + } 1.71 + c3+=2; 1.72 + fin3=0; 1.73 +}; 1.74 +if(fin3!==1){ 1.75 + $ERROR('#3.1: "finally" block must be evaluated'); 1.76 +} 1.77 +if(c3!==1){ 1.78 + $ERROR('#3.2: "try catch finally{break}" must work correctly'); 1.79 +} 1.80 + 1.81 +// CHECK#4 1.82 +var c4=0,fin4=0; 1.83 +for(var i=0;i<5;i++){ 1.84 + try{ 1.85 + c4+=1; 1.86 + break; 1.87 + } 1.88 + finally{ 1.89 + fin4=1; 1.90 + } 1.91 + fin4=-1; 1.92 + c4+=2; 1.93 +}; 1.94 +if(fin4!==1){ 1.95 + $ERROR('#4.1: "finally" block must be evaluated'); 1.96 +} 1.97 +if(c4!==1){ 1.98 + $ERROR('#4.2: "try{break} finally" must work correctly'); 1.99 +} 1.100 + 1.101 +// CHECK#5 1.102 +for(var i=0;i<5;i++){ 1.103 + try{ 1.104 + throw "ex1"; 1.105 + } 1.106 + catch(er1){ 1.107 + break; 1.108 + } 1.109 +}; 1.110 +if(i!==0){ 1.111 + $ERROR('#5: "try catch{break}" must work correctly'); 1.112 +} 1.113 + 1.114 +// CHECK#6 1.115 +var c6=0; 1.116 +for(var c6=0;c6<5;){ 1.117 + try{ 1.118 + c6+=1; 1.119 + break; 1.120 + } 1.121 + catch(er1){} 1.122 + c6+=2; 1.123 +}; 1.124 +if(c6!==1){ 1.125 + $ERROR('#6: "try{break} catch" must work correctly'); 1.126 +} 1.127 + 1.128 +// CHECK#7 1.129 +var c7=0,fin7=0; 1.130 +try{ 1.131 + for(var c7=0;c7<5;){ 1.132 + try{ 1.133 + c7+=1; 1.134 + throw "ex1"; 1.135 + } 1.136 + finally{ 1.137 + fin7=1; 1.138 + break; 1.139 + } 1.140 + fin7=-1; 1.141 + c7+=2; 1.142 + } 1.143 +} 1.144 +catch(ex1){ 1.145 + c7=10; 1.146 +} 1.147 +if(fin7!==1){ 1.148 + $ERROR('#7.1: "finally" block must be evaluated'); 1.149 +} 1.150 +if(c7!==1){ 1.151 + $ERROR('#7.2: "try finally{break}" must work correctly'); 1.152 +} 1.153 +