Wed, 31 Dec 2014 06:09:35 +0100
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 }