Source code
Revision control
Copy as Markdown
Other Tools
// 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);