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: dowhile-003 michael@0: * ECMA Section: michael@0: * Description: do...while statements michael@0: * michael@0: * Test do while, when the while expression is a JavaScript Number object. michael@0: * michael@0: * michael@0: * Author: christine@netscape.com michael@0: * Date: 11 August 1998 michael@0: */ michael@0: var SECTION = "dowhile-003"; michael@0: var VERSION = "ECMA_2"; michael@0: var TITLE = "do...while with a labeled continue statement"; michael@0: michael@0: startTest(); michael@0: writeHeaderToLog( SECTION + " "+ TITLE); michael@0: michael@0: DoWhile( new DoWhileObject( 1, 1, 0 )); michael@0: DoWhile( new DoWhileObject( 1000, 1000, 0 )); michael@0: DoWhile( new DoWhileObject( 1001, 1001, 0 )); michael@0: DoWhile( new DoWhileObject( 1002, 1001, 1 )); michael@0: DoWhile( new DoWhileObject( -1, 1001, -1002 )); michael@0: michael@0: test(); michael@0: michael@0: function DoWhileObject( value, iterations, endvalue ) { michael@0: this.value = value; michael@0: this.iterations = iterations; michael@0: this.endvalue = endvalue; michael@0: } michael@0: michael@0: function DoWhile( object ) { michael@0: var i = 0; michael@0: michael@0: do { michael@0: object.value = --object.value; michael@0: i++; michael@0: if ( i > 1000 ) michael@0: break; michael@0: } while( object.value ); michael@0: michael@0: new TestCase( michael@0: SECTION, michael@0: "loop iterations", michael@0: object.iterations, michael@0: i michael@0: ); michael@0: michael@0: new TestCase( michael@0: SECTION, michael@0: "object.value", michael@0: object.endvalue, michael@0: Number( object.value ) michael@0: ); michael@0: michael@0: }