michael@0: // Copyright 2009 the Sputnik authors. All rights reserved. michael@0: // This code is governed by the BSD license found in the LICENSE file. michael@0: michael@0: /** michael@0: * When "break Identifier" is evaluated, (break, empty, Identifier) is returned michael@0: * michael@0: * @path ch12/12.8/S12.8_A4_T2.js michael@0: * @description Using embedded and labeled loops, breaking to nested loop michael@0: */ michael@0: michael@0: LABEL_OUT : var x=0, y=0, xx=0, yy=0; michael@0: (function(){ michael@0: LABEL_DO_LOOP : do { michael@0: LABEL_IN : x++; michael@0: if(x===10)return; michael@0: LABEL_NESTED_LOOP : do { michael@0: LABEL_IN_NESTED : xx++; michael@0: if(xx===10)return; michael@0: break LABEL_NESTED_LOOP; michael@0: LABEL_IN_NESTED_2 : yy++; michael@0: } while (0); michael@0: michael@0: LABEL_IN_2 : y++; michael@0: michael@0: function IN_DO_FUNC(){} michael@0: } while(0); michael@0: michael@0: LABEL_ANOTHER_LOOP : do { michael@0: ; michael@0: } while(0); michael@0: michael@0: function OUT_FUNC(){} michael@0: })(); michael@0: ////////////////////////////////////////////////////////////////////////////// michael@0: //CHECK#1 michael@0: if ((x!==1)&&(y!==1)&&(xx!==1)&(yy!==0)) { michael@0: $ERROR('#1: x === 1 and y === 1 and xx === 1 and yy === 0. Actual: x==='+x+' and y==='+y+' and xx==='+xx+' and yy==='+yy ); michael@0: } michael@0: // michael@0: ////////////////////////////////////////////////////////////////////////////// michael@0: