1425bb815Sopenharmony_ci// Copyright JS Foundation and other contributors, http://js.foundation
2425bb815Sopenharmony_ci//
3425bb815Sopenharmony_ci// Licensed under the Apache License, Version 2.0 (the "License");
4425bb815Sopenharmony_ci// you may not use this file except in compliance with the License.
5425bb815Sopenharmony_ci// You may obtain a copy of the License at
6425bb815Sopenharmony_ci//
7425bb815Sopenharmony_ci//     http://www.apache.org/licenses/LICENSE-2.0
8425bb815Sopenharmony_ci//
9425bb815Sopenharmony_ci// Unless required by applicable law or agreed to in writing, software
10425bb815Sopenharmony_ci// distributed under the License is distributed on an "AS IS" BASIS
11425bb815Sopenharmony_ci// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12425bb815Sopenharmony_ci// See the License for the specific language governing permissions and
13425bb815Sopenharmony_ci// limitations under the License.
14425bb815Sopenharmony_ci
15425bb815Sopenharmony_civar idx = 0;
16425bb815Sopenharmony_cifor (var [a,b] of [[1,2], [3,4]])
17425bb815Sopenharmony_ci{
18425bb815Sopenharmony_ci  if (idx == 0)
19425bb815Sopenharmony_ci  {
20425bb815Sopenharmony_ci    assert(a === 1);
21425bb815Sopenharmony_ci    assert(b === 2);
22425bb815Sopenharmony_ci    idx = 1;
23425bb815Sopenharmony_ci  }
24425bb815Sopenharmony_ci  else
25425bb815Sopenharmony_ci  {
26425bb815Sopenharmony_ci    assert(a === 3);
27425bb815Sopenharmony_ci    assert(b === 4);
28425bb815Sopenharmony_ci  }
29425bb815Sopenharmony_ci}
30425bb815Sopenharmony_ci
31425bb815Sopenharmony_ciassert(a === 3);
32425bb815Sopenharmony_ciassert(b === 4);
33425bb815Sopenharmony_ci
34425bb815Sopenharmony_ciidx = 0;
35425bb815Sopenharmony_cifor (let [a,b] of [[5,6], [7,8]])
36425bb815Sopenharmony_ci{
37425bb815Sopenharmony_ci  if (idx == 0)
38425bb815Sopenharmony_ci  {
39425bb815Sopenharmony_ci    assert(a === 5);
40425bb815Sopenharmony_ci    assert(b === 6);
41425bb815Sopenharmony_ci    idx = 1;
42425bb815Sopenharmony_ci  }
43425bb815Sopenharmony_ci  else
44425bb815Sopenharmony_ci  {
45425bb815Sopenharmony_ci    assert(a === 7);
46425bb815Sopenharmony_ci    assert(b === 8);
47425bb815Sopenharmony_ci  }
48425bb815Sopenharmony_ci}
49425bb815Sopenharmony_ci
50425bb815Sopenharmony_ciassert(a === 3);
51425bb815Sopenharmony_ciassert(b === 4);
52425bb815Sopenharmony_ci
53425bb815Sopenharmony_ciidx = 0;
54425bb815Sopenharmony_cifor (let [a,b] of [[11,12], [13,14]])
55425bb815Sopenharmony_ci{
56425bb815Sopenharmony_ci  if (idx == 0)
57425bb815Sopenharmony_ci  {
58425bb815Sopenharmony_ci    eval("assert(a === 11)");
59425bb815Sopenharmony_ci    eval("assert(b === 12)");
60425bb815Sopenharmony_ci    idx = 1;
61425bb815Sopenharmony_ci  }
62425bb815Sopenharmony_ci  else
63425bb815Sopenharmony_ci  {
64425bb815Sopenharmony_ci    eval("assert(a === 13)");
65425bb815Sopenharmony_ci    eval("assert(b === 14)");
66425bb815Sopenharmony_ci  }
67425bb815Sopenharmony_ci}
68425bb815Sopenharmony_ci
69425bb815Sopenharmony_ciassert(a === 3);
70425bb815Sopenharmony_ciassert(b === 4);
71425bb815Sopenharmony_ci
72425bb815Sopenharmony_citry {
73425bb815Sopenharmony_ci  eval("for (let [a,b] = [1,2] of [[3,4]]) {}");
74425bb815Sopenharmony_ci  assert(false);
75425bb815Sopenharmony_ci} catch (e) {
76425bb815Sopenharmony_ci  assert(e instanceof SyntaxError);
77425bb815Sopenharmony_ci}
78