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-002.js michael@0: * ECMA Section: michael@0: * Description: The switch Statement michael@0: * michael@0: * A simple switch test with no abrupt completions. michael@0: * michael@0: * Author: christine@netscape.com michael@0: * Date: 11 August 1998 michael@0: * michael@0: */ michael@0: var SECTION = "switch-002"; 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( 0, 6 ); michael@0: SwitchTest( 1, 4 ); michael@0: SwitchTest( 2, 56 ); michael@0: SwitchTest( 3, 48 ); michael@0: SwitchTest( 4, 64 ); michael@0: SwitchTest( true, 32 ); michael@0: SwitchTest( false, 32 ); michael@0: SwitchTest( null, 32 ); michael@0: SwitchTest( void 0, 32 ); michael@0: SwitchTest( "0", 32 ); michael@0: michael@0: test(); michael@0: michael@0: function SwitchTest( input, expect ) { michael@0: var result = 0; michael@0: michael@0: switch ( input ) { michael@0: case 0: michael@0: result += 2; michael@0: case 1: michael@0: result += 4; michael@0: break; michael@0: case 2: michael@0: result += 8; michael@0: case 3: michael@0: result += 16; michael@0: default: michael@0: result += 32; michael@0: break; michael@0: case 4: michael@0: result += 64; 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: }