michael@0: /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: michael@0: /** michael@0: * File Name: switch-003.js michael@0: * ECMA Section: michael@0: * Description: The switch Statement michael@0: * michael@0: * Attempt to verify that case statements are evaluated in source order michael@0: * michael@0: * Author: christine@netscape.com michael@0: * Date: 11 August 1998 michael@0: * michael@0: */ michael@0: var SECTION = "switch-003"; michael@0: var VERSION = "ECMA_2"; michael@0: var TITLE = "The switch statement"; michael@0: michael@0: startTest(); michael@0: writeHeaderToLog( SECTION + " "+ TITLE); michael@0: michael@0: SwitchTest( "a", "abc" ); michael@0: SwitchTest( "b", "bc" ); michael@0: SwitchTest( "c", "c" ); michael@0: SwitchTest( "d", "*abc" ); michael@0: SwitchTest( "v", "*abc" ); michael@0: SwitchTest( "w", "w*abc" ); michael@0: SwitchTest( "x", "xw*abc" ); michael@0: SwitchTest( "y", "yxw*abc" ); michael@0: SwitchTest( "z", "zyxw*abc" ); michael@0: // SwitchTest( new java.lang.String("z"), "*abc" ); michael@0: michael@0: test(); michael@0: michael@0: function SwitchTest( input, expect ) { michael@0: var result = ""; michael@0: michael@0: switch ( input ) { michael@0: case "z": result += "z"; michael@0: case "y": result += "y"; michael@0: case "x": result += "x"; michael@0: case "w": result += "w"; michael@0: default: result += "*"; michael@0: case "a": result += "a"; michael@0: case "b": result += "b"; michael@0: case "c": result += "c"; michael@0: } michael@0: michael@0: new TestCase( michael@0: SECTION, michael@0: "switch with no breaks: input is " + input, michael@0: expect, michael@0: result ); michael@0: }