Home | History | Annotate | Download | only in Statements
      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 (at) 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