Imported Upstream version 1.0.0
[platform/upstream/js.git] / js / src / tests / js1_2 / statements / break.js
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* ***** BEGIN LICENSE BLOCK *****
3  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
4  *
5  * The contents of this file are subject to the Mozilla Public License Version
6  * 1.1 (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  * http://www.mozilla.org/MPL/
9  *
10  * Software distributed under the License is distributed on an "AS IS" basis,
11  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12  * for the specific language governing rights and limitations under the
13  * License.
14  *
15  * The Original Code is Mozilla Communicator client code, released
16  * March 31, 1998.
17  *
18  * The Initial Developer of the Original Code is
19  * Netscape Communications Corporation.
20  * Portions created by the Initial Developer are Copyright (C) 1998
21  * the Initial Developer. All Rights Reserved.
22  *
23  * Contributor(s):
24  *
25  * Alternatively, the contents of this file may be used under the terms of
26  * either the GNU General Public License Version 2 or later (the "GPL"), or
27  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
28  * in which case the provisions of the GPL or the LGPL are applicable instead
29  * of those above. If you wish to allow use of your version of this file only
30  * under the terms of either the GPL or the LGPL, and not to allow others to
31  * use your version of this file under the terms of the MPL, indicate your
32  * decision by deleting the provisions above and replace them with the notice
33  * and other provisions required by the GPL or the LGPL. If you do not delete
34  * the provisions above, a recipient may use your version of this file under
35  * the terms of any one of the MPL, the GPL or the LGPL.
36  *
37  * ***** END LICENSE BLOCK ***** */
38
39
40 /**
41    Filename:     break.js
42    Description:  'Tests the break statement'
43
44    Author:       Nick Lerissa
45    Date:         March 18, 1998
46 */
47
48 var SECTION = 'As described in Netscape doc "Whats new in JavaScript 1.2"';
49 var VERSION = 'no version';
50 startTest();
51 var TITLE   = 'statements: break';
52
53 writeHeaderToLog("Executing script: break.js");
54 writeHeaderToLog( SECTION + " "+ TITLE);
55
56 var i,j;
57
58 for (i = 0; i < 1000; i++)
59 {
60   if (i == 100) break;
61 }
62
63 // 'breaking out of "for" loop'
64 new TestCase ( SECTION, 'breaking out of "for" loop',
65                100, i);
66
67 j = 2000;
68
69 out1:
70 for (i = 0; i < 1000; i++)
71 {
72   if (i == 100)
73   {
74   out2:
75     for (j = 0; j < 1000; j++)
76     {
77       if (j == 500) break out1;
78     }
79     j = 2001;
80   }
81   j = 2002;
82 }
83
84 // 'breaking out of a "for" loop with a "label"'
85 new TestCase ( SECTION, 'breaking out of a "for" loop with a "label"',
86                500, j);
87
88 i = 0;
89
90 while (i < 1000)
91 {
92   if (i == 100) break;
93   i++;
94 }
95
96 // 'breaking out of a "while" loop'
97 new TestCase ( SECTION, 'breaking out of a "while" loop',
98                100, i );
99
100
101 j = 2000;
102 i = 0;
103
104 out3:
105 while (i < 1000)
106 {
107   if (i == 100)
108   {
109     j = 0;
110   out4:
111     while (j < 1000)
112     {
113       if (j == 500) break out3;
114       j++;
115     }
116     j = 2001;
117   }
118   j = 2002;
119   i++;
120 }
121
122 // 'breaking out of a "while" loop with a "label"'
123 new TestCase ( SECTION, 'breaking out of a "while" loop with a "label"',
124                500, j);
125
126 i = 0;
127
128 do
129 {
130   if (i == 100) break;
131   i++;
132 } while (i < 1000);
133
134 // 'breaking out of a "do" loop'
135 new TestCase ( SECTION, 'breaking out of a "do" loop',
136                100, i );
137
138 j = 2000;
139 i = 0;
140
141 out5:
142 do
143 {
144   if (i == 100)
145   {
146     j = 0;
147   out6:
148     do
149     {
150       if (j == 500) break out5;
151       j++;
152     }while (j < 1000);
153     j = 2001;
154   }
155   j = 2002;
156   i++;
157 }while (i < 1000);
158
159 // 'breaking out of a "do" loop with a "label"'
160 new TestCase ( SECTION, 'breaking out of a "do" loop with a "label"',
161                500, j);
162
163 test();