summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/language/asi/do-while-same-line.js
blob: 9c6c85d6540f5c43f4755543b3c0f748bda47eea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Copyright (C) 2019 Leo Balter. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-rules-of-automatic-semicolon-insertion
description: ASI at the end of a do-while statement without a new line terminator
info: |
  1. When, as the source text is parsed from left to right, a token (called the offending token) is
  encountered that is not allowed by any production of the grammar, then a semicolon is
  automatically inserted before the offending token if one or more of the following conditions is
  true:

  ...
  - The previous token is ) and the inserted semicolon would then be parsed as the terminating
    semicolon of a do-while statement (13.7.2).
---*/

var x;
do break ; while (0) x = 42;
assert.sameValue(x, 42);

x = 0;
do do do ; while (x) while (x) while (x) x = 39;
assert.sameValue(x, 39);

reportCompare(0, 0);