// Copyright 2009 the Sputnik authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /** * The production TryStatement: "try Block Catch Finally" * * @path ch12/12.14/S12.14_A6.js * @description Executing sequence of "try" statements, using counters with varying values within */ // CHECK#1 var c1=0; try { c1+=1; y; $ERROR('#1.1: "y" lead to throwing exception'); } catch (e) { c1*=2; } if (c1!==2){ $ERROR('#1.2: Sequence evaluation of commands try/catch is 1. try, 2. catch'); } // CHECK#2 var c2=0; try{ c2+=1; } finally{ c2*=2; } if (c2!==2){ $ERROR('#2: Sequence evaluation of commands try/finally is 1. try, 2. finally'); } // CHECK#3 var c3=0; try{ c3=1; z; } catch(err){ c3*=2; } finally{ c3+=1; } if (c3!==3){ $ERROR('#3: Sequence evaluation of commands try/catch/finally(with exception) is 1. try, 2. catch, 3. finally'); } // CHECK#4 var c4=0; try{ c4=1; } catch(err){ c4*=3; } finally{ c4+=1; } if (c4!==2){ $ERROR('#4: Sequence evaluation of commands try/catch/finally(without exception) is 1. try, 2. finally'); }