1/* The contents of this file are subject to the Netscape Public 2 * License Version 1.1 (the "License"); you may not use this file 3 * except in compliance with the License. You may obtain a copy of 4 * the License at http://www.mozilla.org/NPL/ 5 * 6 * Software distributed under the License is distributed on an "AS 7 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 8 * implied. See the License for the specific language governing 9 * rights and limitations under the License. 10 * 11 * The Original Code is Mozilla Communicator client code, released March 12 * 31, 1998. 13 * 14 * The Initial Developer of the Original Code is Netscape Communications 15 * Corporation. Portions created by Netscape are 16 * Copyright (C) 1998 Netscape Communications Corporation. All 17 * Rights Reserved. 18 * 19 * Contributor(s): 20 * 21 */ 22/** 23 Filename: continue.js 24 Description: 'Tests the continue statement' 25 26 Author: Nick Lerissa 27 Date: March 18, 1998 28*/ 29 30 var SECTION = 'As described in Netscape doc "Whats new in JavaScript 1.2"'; 31 var VERSION = 'no version'; 32 startTest(); 33 var TITLE = 'statements: continue'; 34 35 writeHeaderToLog("Executing script: continue.js"); 36 writeHeaderToLog( SECTION + " "+ TITLE); 37 38 var count = 0; 39 var testcases = new Array(); 40 41 var i,j; 42 43 j = 0; 44 for (i = 0; i < 200; i++) 45 { 46 if (i == 100) 47 continue; 48 j++; 49 } 50 51 // '"continue" in a "for" loop' 52 testcases[count++] = new TestCase ( SECTION, '"continue" in "for" loop', 53 199, j); 54 55 56 j = 0; 57 out1: 58 for (i = 0; i < 1000; i++) 59 { 60 if (i == 100) 61 { 62 out2: 63 for (var k = 0; k < 1000; k++) 64 { 65 if (k == 500) continue out1; 66 } 67 j = 3000; 68 } 69 j++; 70 } 71 72 // '"continue" in a "for" loop with a "label"' 73 testcases[count++] = new TestCase ( SECTION, '"continue" in "for" loop with a "label"', 74 999, j); 75 76 i = 0; 77 j = 1; 78 79 while (i != j) 80 { 81 i++; 82 if (i == 100) continue; 83 j++; 84 } 85 86 // '"continue" in a "while" loop' 87 testcases[count++] = new TestCase ( SECTION, '"continue" in a "while" loop', 88 100, j ); 89 90 j = 0; 91 i = 0; 92 out3: 93 while (i < 1000) 94 { 95 if (i == 100) 96 { 97 var k = 0; 98 out4: 99 while (k < 1000) 100 { 101 if (k == 500) 102 { 103 i++; 104 continue out3; 105 } 106 k++; 107 } 108 j = 3000; 109 } 110 j++; 111 i++; 112 } 113 114 // '"continue" in a "while" loop with a "label"' 115 testcases[count++] = new TestCase ( SECTION, '"continue" in a "while" loop with a "label"', 116 999, j); 117 118 i = 0; 119 j = 1; 120 121 do 122 { 123 i++; 124 if (i == 100) continue; 125 j++; 126 } while (i != j); 127 128 129 // '"continue" in a "do" loop' 130 testcases[count++] = new TestCase ( SECTION, '"continue" in a "do" loop', 131 100, j ); 132 133 j = 0; 134 i = 0; 135 out5: 136 do 137 { 138 if (i == 100) 139 { 140 var k = 0; 141 out6: 142 do 143 { 144 if (k == 500) 145 { 146 i++; 147 continue out5; 148 } 149 k++; 150 }while (k < 1000); 151 j = 3000; 152 } 153 j++; 154 i++; 155 }while (i < 1000); 156 157 // '"continue" in a "do" loop with a "label"' 158 testcases[count++] = new TestCase ( SECTION, '"continue" in a "do" loop with a "label"', 159 999, j); 160 161 function test() 162 { 163 for ( tc=0; tc < testcases.length; tc++ ) { 164 testcases[tc].passed = writeTestCaseResult( 165 testcases[tc].expect, 166 testcases[tc].actual, 167 testcases[tc].description +" = "+ 168 testcases[tc].actual ); 169 testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value "; 170 } 171 stopTest(); 172 return ( testcases ); 173 } 174 175 test(); 176