1/** 2 * File Name: label-002.js 3 * ECMA Section: 4 * Description: Labeled statements 5 * 6 * Labeled break and continue within a for-in loop. 7 * 8 * 9 * Author: christine@netscape.com 10 * Date: 11 August 1998 11 */ 12 var SECTION = "label-002"; 13 var VERSION = "ECMA_2"; 14 var TITLE = "Labeled statements"; 15 16 startTest(); 17 writeHeaderToLog( SECTION + " "+ TITLE); 18 19 var tc = 0; 20 var testcases = new Array(); 21 22 LabelTest( { p1:"hi,", p2:" norris" }, "hi, norris", " norrishi," ); 23 LabelTest( { 0:"zero", 1:"one" }, "zeroone", "onezero" ); 24 25 LabelTest2( { p1:"hi,", p2:" norris" }, "hi,", " norris" ); 26 LabelTest2( { 0:"zero", 1:"one" }, "zero", "one" ); 27 28 test(); 29 30 function LabelTest( object, expect1, expect2 ) { 31 result = ""; 32 33 yoohoo: { for ( property in object ) { result += object[property]; }; break yoohoo }; 34 35 testcases[tc++] = new TestCase( 36 SECTION, 37 "yoohoo: for ( property in object ) { result += object[property]; } break yoohoo }", 38 true, 39 result == expect1 || result == expect2 ); 40 } 41 42 function LabelTest2( object, expect1, expect2 ) { 43 result = ""; 44 45 yoohoo: { for ( property in object ) { result += object[property]; break yoohoo } }; ; 46 47 testcases[tc++] = new TestCase( 48 SECTION, 49 "yoohoo: for ( property in object ) { result += object[property]; break yoohoo }}", 50 true, 51 result == expect1 || result == expect2 ); 52 } 53 54