/** * File Name: label-002.js * ECMA Section: * Description: Labeled statements * * Labeled break and continue within a for-in loop. * * * Author: christine@netscape.com * Date: 11 August 1998 */ var SECTION = "label-002"; var VERSION = "ECMA_2"; var TITLE = "Labeled statements"; startTest(); writeHeaderToLog( SECTION + " "+ TITLE); var tc = 0; var testcases = new Array(); LabelTest( { p1:"hi,", p2:" norris" }, "hi, norris", " norrishi," ); LabelTest( { 0:"zero", 1:"one" }, "zeroone", "onezero" ); LabelTest2( { p1:"hi,", p2:" norris" }, "hi,", " norris" ); LabelTest2( { 0:"zero", 1:"one" }, "zero", "one" ); test(); function LabelTest( object, expect1, expect2 ) { result = ""; yoohoo: { for ( property in object ) { result += object[property]; }; break yoohoo }; testcases[tc++] = new TestCase( SECTION, "yoohoo: for ( property in object ) { result += object[property]; } break yoohoo }", true, result == expect1 || result == expect2 ); } function LabelTest2( object, expect1, expect2 ) { result = ""; yoohoo: { for ( property in object ) { result += object[property]; break yoohoo } }; ; testcases[tc++] = new TestCase( SECTION, "yoohoo: for ( property in object ) { result += object[property]; break yoohoo }}", true, result == expect1 || result == expect2 ); }