<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[206594] trunk/LayoutTests</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/206594">206594</a></dd>
<dt>Author</dt> <dd>sbarati@apple.com</dd>
<dt>Date</dt> <dd>2016-09-29 11:44:14 -0700 (Thu, 29 Sep 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>parser-syntax-check should display the output of syntax errors
https://bugs.webkit.org/show_bug.cgi?id=162738

Reviewed by Joseph Pecoraro.

It's good to have this test display the syntax error messages
when we're expecting a syntax error because it will both allow
us to track changes in error messages and verify that we get
the expected error message when writing new tests.

* js/parser-syntax-check-expected.txt:
* js/script-tests/parser-syntax-check.js:
(runTest):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsjsparsersyntaxcheckexpectedtxt">trunk/LayoutTests/js/parser-syntax-check-expected.txt</a></li>
<li><a href="#trunkLayoutTestsjsscripttestsparsersyntaxcheckjs">trunk/LayoutTests/js/script-tests/parser-syntax-check.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (206593 => 206594)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-09-29 18:19:31 UTC (rev 206593)
+++ trunk/LayoutTests/ChangeLog        2016-09-29 18:44:14 UTC (rev 206594)
</span><span class="lines">@@ -1,3 +1,19 @@
</span><ins>+2016-09-29  Saam Barati  &lt;sbarati@apple.com&gt;
+
+        parser-syntax-check should display the output of syntax errors
+        https://bugs.webkit.org/show_bug.cgi?id=162738
+
+        Reviewed by Joseph Pecoraro.
+
+        It's good to have this test display the syntax error messages
+        when we're expecting a syntax error because it will both allow
+        us to track changes in error messages and verify that we get
+        the expected error message when writing new tests.
+
+        * js/parser-syntax-check-expected.txt:
+        * js/script-tests/parser-syntax-check.js:
+        (runTest):
+
</ins><span class="cx"> 2016-09-29  Simon Fraser  &lt;simon.fraser@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Fix hit testing on display:block &lt;svg&gt; elements
</span></span></pre></div>
<a id="trunkLayoutTestsjsparsersyntaxcheckexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/js/parser-syntax-check-expected.txt (206593 => 206594)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/parser-syntax-check-expected.txt        2016-09-29 18:19:31 UTC (rev 206593)
+++ trunk/LayoutTests/js/parser-syntax-check-expected.txt        2016-09-29 18:44:14 UTC (rev 206594)
</span><span class="lines">@@ -6,22 +6,22 @@
</span><span class="cx"> Unary operators and member access
</span><span class="cx"> PASS Valid:   &quot;&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() {  }&quot;
</span><del>-PASS Invalid: &quot;(a&quot;
-PASS Invalid: &quot;function f() { (a }&quot;
-PASS Invalid: &quot;a[5&quot;
-PASS Invalid: &quot;function f() { a[5 }&quot;
-PASS Invalid: &quot;a[5 + 6&quot;
-PASS Invalid: &quot;function f() { a[5 + 6 }&quot;
-PASS Invalid: &quot;a.&quot;
-PASS Invalid: &quot;function f() { a. }&quot;
-PASS Invalid: &quot;()&quot;
-PASS Invalid: &quot;function f() { () }&quot;
-PASS Invalid: &quot;a.'l'&quot;
-PASS Invalid: &quot;function f() { a.'l' }&quot;
</del><ins>+PASS Invalid: &quot;(a&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { (a }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected ')' to end a compound expression.&quot;
+PASS Invalid: &quot;a[5&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { a[5 }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected ']' to end a subscript expression.&quot;
+PASS Invalid: &quot;a[5 + 6&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { a[5 + 6 }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected ']' to end a subscript expression.&quot;
+PASS Invalid: &quot;a.&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { a. }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected a property name after '.'.&quot;
+PASS Invalid: &quot;()&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;function f() { () }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;a.'l'&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected string literal 'l'. Expected a property name after '.'.&quot;
+PASS Invalid: &quot;function f() { a.'l' }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected string literal 'l'. Expected a property name after '.'.&quot;
</ins><span class="cx"> PASS Valid:   &quot;a: +~!new a&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { a: +~!new a }&quot;
</span><del>-PASS Invalid: &quot;new -a&quot;
-PASS Invalid: &quot;function f() { new -a }&quot;
</del><ins>+PASS Invalid: &quot;new -a&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '-'&quot;
+PASS Invalid: &quot;function f() { new -a }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '-'&quot;
</ins><span class="cx"> PASS Valid:   &quot;new (-1)&quot; with TypeError
</span><span class="cx"> PASS Valid:   &quot;function f() { new (-1) }&quot;
</span><span class="cx"> PASS Valid:   &quot;a: b: c: new f(x++)++&quot; with ReferenceError
</span><span class="lines">@@ -30,10 +30,10 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { (a)++ }&quot;
</span><span class="cx"> PASS Valid:   &quot;(1--).x&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { (1--).x }&quot;
</span><del>-PASS Invalid: &quot;a-- ++&quot;
-PASS Invalid: &quot;function f() { a-- ++ }&quot;
-PASS Invalid: &quot;(a:) --b&quot;
-PASS Invalid: &quot;function f() { (a:) --b }&quot;
</del><ins>+PASS Invalid: &quot;a-- ++&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '++'&quot;
+PASS Invalid: &quot;function f() { a-- ++ }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '++'&quot;
+PASS Invalid: &quot;(a:) --b&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ':'. Expected ')' to end a compound expression.&quot;
+PASS Invalid: &quot;function f() { (a:) --b }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ':'. Expected ')' to end a compound expression.&quot;
</ins><span class="cx"> PASS Valid:   &quot;++ -- ++ a&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { ++ -- ++ a }&quot;
</span><span class="cx"> PASS Valid:   &quot;++ new new a ++&quot; with ReferenceError
</span><span class="lines">@@ -40,10 +40,10 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { ++ new new a ++ }&quot;
</span><span class="cx"> PASS Valid:   &quot;delete void 0&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { delete void 0 }&quot;
</span><del>-PASS Invalid: &quot;delete the void&quot;
-PASS Invalid: &quot;function f() { delete the void }&quot;
-PASS Invalid: &quot;(a++&quot;
-PASS Invalid: &quot;function f() { (a++ }&quot;
</del><ins>+PASS Invalid: &quot;delete the void&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'void'. Parse error.&quot;
+PASS Invalid: &quot;function f() { delete the void }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'void'. Parse error.&quot;
+PASS Invalid: &quot;(a++&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { (a++ }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected ')' to end a compound expression.&quot;
</ins><span class="cx"> PASS Valid:   &quot;++a--&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { ++a-- }&quot;
</span><span class="cx"> PASS Valid:   &quot;++((a))--&quot; with ReferenceError
</span><span class="lines">@@ -50,20 +50,20 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { ++((a))-- }&quot;
</span><span class="cx"> PASS Valid:   &quot;(a.x++)++&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { (a.x++)++ }&quot;
</span><del>-PASS Invalid: &quot;1: null&quot;
-PASS Invalid: &quot;function f() { 1: null }&quot;
-PASS Invalid: &quot;+-!~&quot;
-PASS Invalid: &quot;function f() { +-!~ }&quot;
-PASS Invalid: &quot;+-!~((&quot;
-PASS Invalid: &quot;function f() { +-!~(( }&quot;
-PASS Invalid: &quot;a)&quot;
-PASS Invalid: &quot;function f() { a) }&quot;
-PASS Invalid: &quot;a]&quot;
-PASS Invalid: &quot;function f() { a] }&quot;
-PASS Invalid: &quot;.l&quot;
-PASS Invalid: &quot;function f() { .l }&quot;
-PASS Invalid: &quot;1.l&quot;
-PASS Invalid: &quot;function f() { 1.l }&quot;
</del><ins>+PASS Invalid: &quot;1: null&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ':'. Parse error.&quot;
+PASS Invalid: &quot;function f() { 1: null }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ':'. Parse error.&quot;
+PASS Invalid: &quot;+-!~&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { +-!~ }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'&quot;
+PASS Invalid: &quot;+-!~((&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { +-!~(( }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'&quot;
+PASS Invalid: &quot;a)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;function f() { a) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;a]&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ']'&quot;
+PASS Invalid: &quot;function f() { a] }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ']'&quot;
+PASS Invalid: &quot;.l&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '.'&quot;
+PASS Invalid: &quot;function f() { .l }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '.'&quot;
+PASS Invalid: &quot;1.l&quot;. Produced the following syntax error: &quot;SyntaxError: No identifiers allowed directly after numeric literal&quot;
+PASS Invalid: &quot;function f() { 1.l }&quot;. Produced the following syntax error: &quot;SyntaxError: No identifiers allowed directly after numeric literal&quot;
</ins><span class="cx"> PASS Valid:   &quot;1 .l&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { 1 .l }&quot;
</span><span class="cx"> Octal numbers
</span><span class="lines">@@ -71,31 +71,31 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { 'use strict'; 0 }&quot;
</span><span class="cx"> PASS Valid:   &quot;0&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { 0 }&quot;
</span><del>-PASS Invalid: &quot;'use strict'; 00&quot;
-PASS Invalid: &quot;function f() { 'use strict'; 00 }&quot;
</del><ins>+PASS Invalid: &quot;'use strict'; 00&quot;. Produced the following syntax error: &quot;SyntaxError: Decimal integer literals with a leading zero are forbidden in strict mode&quot;
+PASS Invalid: &quot;function f() { 'use strict'; 00 }&quot;. Produced the following syntax error: &quot;SyntaxError: Decimal integer literals with a leading zero are forbidden in strict mode&quot;
</ins><span class="cx"> PASS Valid:   &quot;00&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { 00 }&quot;
</span><del>-PASS Invalid: &quot;'use strict'; 08&quot;
-PASS Invalid: &quot;function f() { 'use strict'; 08 }&quot;
</del><ins>+PASS Invalid: &quot;'use strict'; 08&quot;. Produced the following syntax error: &quot;SyntaxError: Decimal integer literals with a leading zero are forbidden in strict mode&quot;
+PASS Invalid: &quot;function f() { 'use strict'; 08 }&quot;. Produced the following syntax error: &quot;SyntaxError: Decimal integer literals with a leading zero are forbidden in strict mode&quot;
</ins><span class="cx"> PASS Valid:   &quot;08&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { 08 }&quot;
</span><del>-PASS Invalid: &quot;'use strict'; 09&quot;
-PASS Invalid: &quot;function f() { 'use strict'; 09 }&quot;
</del><ins>+PASS Invalid: &quot;'use strict'; 09&quot;. Produced the following syntax error: &quot;SyntaxError: Decimal integer literals with a leading zero are forbidden in strict mode&quot;
+PASS Invalid: &quot;function f() { 'use strict'; 09 }&quot;. Produced the following syntax error: &quot;SyntaxError: Decimal integer literals with a leading zero are forbidden in strict mode&quot;
</ins><span class="cx"> PASS Valid:   &quot;09&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { 09 }&quot;
</span><span class="cx"> Binary and conditional operators
</span><span class="cx"> PASS Valid:   &quot;a + + typeof this&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { a + + typeof this }&quot;
</span><del>-PASS Invalid: &quot;a + * b&quot;
-PASS Invalid: &quot;function f() { a + * b }&quot;
-PASS Invalid: &quot;a ? b&quot;
-PASS Invalid: &quot;function f() { a ? b }&quot;
-PASS Invalid: &quot;a ? b :&quot;
-PASS Invalid: &quot;function f() { a ? b : }&quot;
-PASS Invalid: &quot;%a&quot;
-PASS Invalid: &quot;function f() { %a }&quot;
-PASS Invalid: &quot;a-&quot;
-PASS Invalid: &quot;function f() { a- }&quot;
</del><ins>+PASS Invalid: &quot;a + * b&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '*'&quot;
+PASS Invalid: &quot;function f() { a + * b }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '*'&quot;
+PASS Invalid: &quot;a ? b&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { a ? b }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected ':' in ternary operator.&quot;
+PASS Invalid: &quot;a ? b :&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { a ? b : }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'&quot;
+PASS Invalid: &quot;%a&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '%'&quot;
+PASS Invalid: &quot;function f() { %a }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '%'&quot;
+PASS Invalid: &quot;a-&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { a- }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'&quot;
</ins><span class="cx"> PASS Valid:   &quot;a = b ? b = c : d = e&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { a = b ? b = c : d = e }&quot;
</span><span class="cx"> PASS Valid:   &quot;s: a[1].l ? b.l['s'] ? c++ : d : true&quot; with ReferenceError
</span><span class="lines">@@ -104,20 +104,20 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { a ? b + 1 ? c + 3 * d.l : d[5][6] : e }&quot;
</span><span class="cx"> PASS Valid:   &quot;a in b instanceof delete -c&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { a in b instanceof delete -c }&quot;
</span><del>-PASS Invalid: &quot;a in instanceof b.l&quot;
-PASS Invalid: &quot;function f() { a in instanceof b.l }&quot;
</del><ins>+PASS Invalid: &quot;a in instanceof b.l&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'instanceof'&quot;
+PASS Invalid: &quot;function f() { a in instanceof b.l }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'instanceof'&quot;
</ins><span class="cx"> PASS Valid:   &quot;- - true % 5&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { - - true % 5 }&quot;
</span><del>-PASS Invalid: &quot;- false = 3&quot;
-PASS Invalid: &quot;function f() { - false = 3 }&quot;
</del><ins>+PASS Invalid: &quot;- false = 3&quot;. Produced the following syntax error: &quot;SyntaxError: Left hand side of operator '=' must be a reference.&quot;
+PASS Invalid: &quot;function f() { - false = 3 }&quot;. Produced the following syntax error: &quot;SyntaxError: Left hand side of operator '=' must be a reference.&quot;
</ins><span class="cx"> PASS Valid:   &quot;a: b: c: (1 + null) = 3&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { a: b: c: (1 + null) = 3 }&quot;
</span><span class="cx"> PASS Valid:   &quot;a[2] = b.l += c /= 4 * 7 ^ !6&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { a[2] = b.l += c /= 4 * 7 ^ !6 }&quot;
</span><del>-PASS Invalid: &quot;a + typeof b += c in d&quot;
-PASS Invalid: &quot;function f() { a + typeof b += c in d }&quot;
-PASS Invalid: &quot;typeof a &amp;= typeof b&quot;
-PASS Invalid: &quot;function f() { typeof a &amp;= typeof b }&quot;
</del><ins>+PASS Invalid: &quot;a + typeof b += c in d&quot;. Produced the following syntax error: &quot;SyntaxError: Left hand side of operator '+=' must be a reference.&quot;
+PASS Invalid: &quot;function f() { a + typeof b += c in d }&quot;. Produced the following syntax error: &quot;SyntaxError: Left hand side of operator '+=' must be a reference.&quot;
+PASS Invalid: &quot;typeof a &amp;= typeof b&quot;. Produced the following syntax error: &quot;SyntaxError: Left hand side of operator '&amp;=' must be a reference.&quot;
+PASS Invalid: &quot;function f() { typeof a &amp;= typeof b }&quot;. Produced the following syntax error: &quot;SyntaxError: Left hand side of operator '&amp;=' must be a reference.&quot;
</ins><span class="cx"> PASS Valid:   &quot;a: ((typeof (a))) &gt;&gt;&gt;= a || b.l &amp;&amp; c&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { a: ((typeof (a))) &gt;&gt;&gt;= a || b.l &amp;&amp; c }&quot;
</span><span class="cx"> PASS Valid:   &quot;a: b: c[a /= f[a %= b]].l[c[x] = 7] -= a ? b &lt;&lt;= f : g&quot; with ReferenceError
</span><span class="lines">@@ -131,26 +131,26 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { s: l: a[2](4 == 6, 5 = 6)(f[4], 6) }&quot;
</span><span class="cx"> PASS Valid:   &quot;s: eval(a.apply(), b.call(c[5] - f[7]))&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { s: eval(a.apply(), b.call(c[5] - f[7])) }&quot;
</span><del>-PASS Invalid: &quot;a(&quot;
-PASS Invalid: &quot;function f() { a( }&quot;
-PASS Invalid: &quot;a(5&quot;
-PASS Invalid: &quot;function f() { a(5 }&quot;
-PASS Invalid: &quot;a(5,&quot;
-PASS Invalid: &quot;function f() { a(5, }&quot;
</del><ins>+PASS Invalid: &quot;a(&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { a( }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'&quot;
+PASS Invalid: &quot;a(5&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { a(5 }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected ')' to end an argument list.&quot;
+PASS Invalid: &quot;a(5,&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { a(5, }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'&quot;
</ins><span class="cx"> PASS Valid:   &quot;a(5,)&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { a(5,) }&quot;
</span><del>-PASS Invalid: &quot;a(5,6&quot;
-PASS Invalid: &quot;function f() { a(5,6 }&quot;
</del><ins>+PASS Invalid: &quot;a(5,6&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { a(5,6 }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected ')' to end an argument list.&quot;
</ins><span class="cx"> PASS Valid:   &quot;a(b[7], c &lt;d&gt; e.l, new a() &gt; b)&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { a(b[7], c &lt;d&gt; e.l, new a() &gt; b) }&quot;
</span><del>-PASS Invalid: &quot;a(b[5)&quot;
-PASS Invalid: &quot;function f() { a(b[5) }&quot;
-PASS Invalid: &quot;a(b.)&quot;
-PASS Invalid: &quot;function f() { a(b.) }&quot;
</del><ins>+PASS Invalid: &quot;a(b[5)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'. Expected ']' to end a subscript expression.&quot;
+PASS Invalid: &quot;function f() { a(b[5) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'. Expected ']' to end a subscript expression.&quot;
+PASS Invalid: &quot;a(b.)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'. Expected a property name after '.'.&quot;
+PASS Invalid: &quot;function f() { a(b.) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'. Expected a property name after '.'.&quot;
</ins><span class="cx"> PASS Valid:   &quot;~new new a(1)(i++)(c[l])&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { ~new new a(1)(i++)(c[l]) }&quot;
</span><del>-PASS Invalid: &quot;a(*a)&quot;
-PASS Invalid: &quot;function f() { a(*a) }&quot;
</del><ins>+PASS Invalid: &quot;a(*a)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '*'&quot;
+PASS Invalid: &quot;function f() { a(*a) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '*'&quot;
</ins><span class="cx"> PASS Valid:   &quot;((((a))((b)()).l))()&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { ((((a))((b)()).l))() }&quot;
</span><span class="cx"> PASS Valid:   &quot;(a)[b + (c) / (d())].l--&quot; with ReferenceError
</span><span class="lines">@@ -157,81 +157,81 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { (a)[b + (c) / (d())].l-- }&quot;
</span><span class="cx"> PASS Valid:   &quot;new (5)&quot; with TypeError
</span><span class="cx"> PASS Valid:   &quot;function f() { new (5) }&quot;
</span><del>-PASS Invalid: &quot;new a(5&quot;
-PASS Invalid: &quot;function f() { new a(5 }&quot;
</del><ins>+PASS Invalid: &quot;new a(5&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { new a(5 }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected ')' to end an argument list.&quot;
</ins><span class="cx"> PASS Valid:   &quot;new (f + 5)(6, (g)() - 'l'() - true(false))&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { new (f + 5)(6, (g)() - 'l'() - true(false)) }&quot;
</span><del>-PASS Invalid: &quot;a(.length)&quot;
-PASS Invalid: &quot;function f() { a(.length) }&quot;
</del><ins>+PASS Invalid: &quot;a(.length)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '.'&quot;
+PASS Invalid: &quot;function f() { a(.length) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '.'&quot;
</ins><span class="cx"> function declaration and expression
</span><span class="cx"> PASS Valid:   &quot;function f() {}&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function f() {} }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f(a,b) {}&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function f(a,b) {} }&quot;
</span><del>-PASS Invalid: &quot;function () {}&quot;
-PASS Invalid: &quot;function f() { function () {} }&quot;
-PASS Invalid: &quot;function f(a b) {}&quot;
-PASS Invalid: &quot;function f() { function f(a b) {} }&quot;
</del><ins>+PASS Invalid: &quot;function () {}&quot;. Produced the following syntax error: &quot;SyntaxError: Function statements must have a name.&quot;
+PASS Invalid: &quot;function f() { function () {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Function statements must have a name.&quot;
+PASS Invalid: &quot;function f(a b) {}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'b'. Expected a ')' or a ',' after a parameter declaration.&quot;
+PASS Invalid: &quot;function f() { function f(a b) {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'b'. Expected a ')' or a ',' after a parameter declaration.&quot;
</ins><span class="cx"> PASS Valid:   &quot;function f(a,) {}&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function f(a,) {} }&quot;
</span><del>-PASS Invalid: &quot;function f(a,&quot;
-PASS Invalid: &quot;function f() { function f(a, }&quot;
-PASS Invalid: &quot;function f(a, 1) {}&quot;
-PASS Invalid: &quot;function f() { function f(a, 1) {} }&quot;
</del><ins>+PASS Invalid: &quot;function f(a,&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { function f(a, }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected a parameter pattern or a ')' in parameter list.&quot;
+PASS Invalid: &quot;function f(a, 1) {}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected number '1'. Expected a parameter pattern or a ')' in parameter list.&quot;
+PASS Invalid: &quot;function f() { function f(a, 1) {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected number '1'. Expected a parameter pattern or a ')' in parameter list.&quot;
</ins><span class="cx"> PASS Valid:   &quot;function g(arguments, eval) {}&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function g(arguments, eval) {} }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() {} + function g() {}&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function f() {} + function g() {} }&quot;
</span><del>-PASS Invalid: &quot;(function a{})&quot;
-PASS Invalid: &quot;function f() { (function a{}) }&quot;
-PASS Invalid: &quot;(function this(){})&quot;
-PASS Invalid: &quot;function f() { (function this(){}) }&quot;
</del><ins>+PASS Invalid: &quot;(function a{})&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '{'. Expected an opening '(' before a function's parameter list.&quot;
+PASS Invalid: &quot;function f() { (function a{}) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '{'. Expected an opening '(' before a function's parameter list.&quot;
+PASS Invalid: &quot;(function this(){})&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot use the keyword 'this' as a function name.&quot;
+PASS Invalid: &quot;function f() { (function this(){}) }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot use the keyword 'this' as a function name.&quot;
</ins><span class="cx"> PASS Valid:   &quot;(delete new function f(){} + function(a,b){}(5)(6))&quot; with TypeError
</span><span class="cx"> PASS Valid:   &quot;function f() { (delete new function f(){} + function(a,b){}(5)(6)) }&quot;
</span><span class="cx"> PASS Valid:   &quot;6 - function (m) { function g() {} }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { 6 - function (m) { function g() {} } }&quot;
</span><del>-PASS Invalid: &quot;function l() {&quot;
-PASS Invalid: &quot;function f() { function l() { }&quot;
-PASS Invalid: &quot;function l++(){}&quot;
-PASS Invalid: &quot;function f() { function l++(){} }&quot;
</del><ins>+PASS Invalid: &quot;function l() {&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { function l() { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function l++(){}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '++'. Expected an opening '(' before a function's parameter list.&quot;
+PASS Invalid: &quot;function f() { function l++(){} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '++'. Expected an opening '(' before a function's parameter list.&quot;
</ins><span class="cx"> Array and object literal, comma operator
</span><span class="cx"> PASS Valid:   &quot;[] in [5,6] * [,5,] / [,,5,,] || [a,] &amp;&amp; new [,b] % [,,]&quot; with TypeError
</span><span class="cx"> PASS Valid:   &quot;function f() { [] in [5,6] * [,5,] / [,,5,,] || [a,] &amp;&amp; new [,b] % [,,] }&quot;
</span><del>-PASS Invalid: &quot;[5,&quot;
-PASS Invalid: &quot;function f() { [5, }&quot;
-PASS Invalid: &quot;[,&quot;
-PASS Invalid: &quot;function f() { [, }&quot;
-PASS Invalid: &quot;(a,)&quot;
-PASS Invalid: &quot;function f() { (a,) }&quot;
</del><ins>+PASS Invalid: &quot;[5,&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { [5, }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'&quot;
+PASS Invalid: &quot;[,&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { [, }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'&quot;
+PASS Invalid: &quot;(a,)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;function f() { (a,) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
</ins><span class="cx"> PASS Valid:   &quot;1 + {get get(){}, set set(a){}, get1:4, set1:get-set, }&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { 1 + {get get(){}, set set(a){}, get1:4, set1:get-set, } }&quot;
</span><del>-PASS Invalid: &quot;1 + {a&quot;
-PASS Invalid: &quot;function f() { 1 + {a }&quot;
-PASS Invalid: &quot;1 + {a:&quot;
-PASS Invalid: &quot;function f() { 1 + {a: }&quot;
-PASS Invalid: &quot;1 + {get l(&quot;
-PASS Invalid: &quot;function f() { 1 + {get l( }&quot;
-PASS Invalid: &quot;,a&quot;
-PASS Invalid: &quot;function f() { ,a }&quot;
</del><ins>+PASS Invalid: &quot;1 + {a&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { 1 + {a }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;1 + {a:&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { 1 + {a: }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'&quot;
+PASS Invalid: &quot;1 + {get l(&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { 1 + {get l( }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. getter functions must have no parameters.&quot;
+PASS Invalid: &quot;,a&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','&quot;
+PASS Invalid: &quot;function f() { ,a }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','&quot;
</ins><span class="cx"> PASS Valid:   &quot;(4,(5,a(3,4))),f[4,a-6]&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { (4,(5,a(3,4))),f[4,a-6] }&quot;
</span><del>-PASS Invalid: &quot;(,f)&quot;
-PASS Invalid: &quot;function f() { (,f) }&quot;
-PASS Invalid: &quot;a,,b&quot;
-PASS Invalid: &quot;function f() { a,,b }&quot;
-PASS Invalid: &quot;a ? b, c : d&quot;
-PASS Invalid: &quot;function f() { a ? b, c : d }&quot;
</del><ins>+PASS Invalid: &quot;(,f)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','&quot;
+PASS Invalid: &quot;function f() { (,f) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','&quot;
+PASS Invalid: &quot;a,,b&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','&quot;
+PASS Invalid: &quot;function f() { a,,b }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','&quot;
+PASS Invalid: &quot;a ? b, c : d&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','. Expected ':' in ternary operator.&quot;
+PASS Invalid: &quot;function f() { a ? b, c : d }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','. Expected ':' in ternary operator.&quot;
</ins><span class="cx"> simple statements
</span><span class="cx"> PASS Valid:   &quot;{ }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { { } }&quot;
</span><del>-PASS Invalid: &quot;{ { }&quot;
-PASS Invalid: &quot;function f() { { { } }&quot;
</del><ins>+PASS Invalid: &quot;{ { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { { { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
</ins><span class="cx"> PASS Valid:   &quot;{ ; ; ; }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { { ; ; ; } }&quot;
</span><span class="cx"> PASS Valid:   &quot;a: { ; }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { a: { ; } }&quot;
</span><del>-PASS Invalid: &quot;{ a: }&quot;
-PASS Invalid: &quot;function f() { { a: } }&quot;
</del><ins>+PASS Invalid: &quot;{ a: }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Cannot parse statement.&quot;
+PASS Invalid: &quot;function f() { { a: } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Cannot parse statement.&quot;
</ins><span class="cx"> PASS Valid:   &quot;{} f; { 6 + f() }&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { {} f; { 6 + f() } }&quot;
</span><span class="cx"> PASS Valid:   &quot;{ a[5],6; {} ++b-new (-5)() } c().l++&quot; with ReferenceError
</span><span class="lines">@@ -240,42 +240,42 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { { l1: l2: l3: { this } a = 32 ; { i++ ; { { { } } ++i } } } }&quot;
</span><span class="cx"> PASS Valid:   &quot;if (a) ;&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { if (a) ; }&quot;
</span><del>-PASS Invalid: &quot;{ if (a) }&quot;
-PASS Invalid: &quot;function f() { { if (a) } }&quot;
-PASS Invalid: &quot;if a {}&quot;
-PASS Invalid: &quot;function f() { if a {} }&quot;
-PASS Invalid: &quot;if (a&quot;
-PASS Invalid: &quot;function f() { if (a }&quot;
-PASS Invalid: &quot;if (a { }&quot;
-PASS Invalid: &quot;function f() { if (a { } }&quot;
</del><ins>+PASS Invalid: &quot;{ if (a) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected a statement as the body of an if block.&quot;
+PASS Invalid: &quot;function f() { { if (a) } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected a statement as the body of an if block.&quot;
+PASS Invalid: &quot;if a {}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'a'. Expected '(' to start an 'if' condition.&quot;
+PASS Invalid: &quot;function f() { if a {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'a'. Expected '(' to start an 'if' condition.&quot;
+PASS Invalid: &quot;if (a&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { if (a }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected ')' to end an 'if' condition.&quot;
+PASS Invalid: &quot;if (a { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '{'. Expected ')' to end an 'if' condition.&quot;
+PASS Invalid: &quot;function f() { if (a { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '{'. Expected ')' to end an 'if' condition.&quot;
</ins><span class="cx"> PASS Valid:   &quot;x: s: if (a) ; else b&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { x: s: if (a) ; else b }&quot;
</span><del>-PASS Invalid: &quot;else {}&quot;
-PASS Invalid: &quot;function f() { else {} }&quot;
</del><ins>+PASS Invalid: &quot;else {}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'else'&quot;
+PASS Invalid: &quot;function f() { else {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'else'&quot;
</ins><span class="cx"> PASS Valid:   &quot;if (a) if (b) y; else {} else ;&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { if (a) if (b) y; else {} else ; }&quot;
</span><del>-PASS Invalid: &quot;if (a) {} else x; else&quot;
-PASS Invalid: &quot;function f() { if (a) {} else x; else }&quot;
-PASS Invalid: &quot;if (a) { else }&quot;
-PASS Invalid: &quot;function f() { if (a) { else } }&quot;
</del><ins>+PASS Invalid: &quot;if (a) {} else x; else&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'else'&quot;
+PASS Invalid: &quot;function f() { if (a) {} else x; else }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'else'&quot;
+PASS Invalid: &quot;if (a) { else }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'else'&quot;
+PASS Invalid: &quot;function f() { if (a) { else } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'else'&quot;
</ins><span class="cx"> PASS Valid:   &quot;if (a.l + new b()) 4 + 5 - f()&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { if (a.l + new b()) 4 + 5 - f() }&quot;
</span><span class="cx"> PASS Valid:   &quot;if (a) with (x) ; else with (y) ;&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { if (a) with (x) ; else with (y) ; }&quot;
</span><del>-PASS Invalid: &quot;with a.b { }&quot;
-PASS Invalid: &quot;function f() { with a.b { } }&quot;
</del><ins>+PASS Invalid: &quot;with a.b { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'a'. Expected '(' to start a subject of a 'with' statement.&quot;
+PASS Invalid: &quot;function f() { with a.b { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'a'. Expected '(' to start a subject of a 'with' statement.&quot;
</ins><span class="cx"> PASS Valid:   &quot;while (a() - new b) ;&quot; with TypeError
</span><span class="cx"> PASS Valid:   &quot;function f() { while (a() - new b) ; }&quot;
</span><del>-PASS Invalid: &quot;while a {}&quot;
-PASS Invalid: &quot;function f() { while a {} }&quot;
</del><ins>+PASS Invalid: &quot;while a {}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'a'. Expected '(' to start a while loop condition.&quot;
+PASS Invalid: &quot;function f() { while a {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'a'. Expected '(' to start a while loop condition.&quot;
</ins><span class="cx"> PASS Valid:   &quot;do ; while(0) i++&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { do ; while(0) i++ }&quot;
</span><span class="cx"> PASS Valid:   &quot;do if (a) x; else y; while(z)&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { do if (a) x; else y; while(z) }&quot;
</span><del>-PASS Invalid: &quot;do g; while 4&quot;
-PASS Invalid: &quot;function f() { do g; while 4 }&quot;
-PASS Invalid: &quot;do g; while ((4)&quot;
-PASS Invalid: &quot;function f() { do g; while ((4) }&quot;
</del><ins>+PASS Invalid: &quot;do g; while 4&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected number '4'. Expected '(' to start a do-while loop condition.&quot;
+PASS Invalid: &quot;function f() { do g; while 4 }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected number '4'. Expected '(' to start a do-while loop condition.&quot;
+PASS Invalid: &quot;do g; while ((4)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { do g; while ((4) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected ')' to end a do-while loop condition.&quot;
</ins><span class="cx"> PASS Valid:   &quot;{ { do do do ; while(0) while(0) while(0) } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { { { do do do ; while(0) while(0) while(0) } } }&quot;
</span><span class="cx"> PASS Valid:   &quot;do while (0) if (a) {} else y; while(0)&quot;
</span><span class="lines">@@ -282,95 +282,95 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { do while (0) if (a) {} else y; while(0) }&quot;
</span><span class="cx"> PASS Valid:   &quot;if (a) while (b) if (c) with(d) {} else e; else f&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { if (a) while (b) if (c) with(d) {} else e; else f }&quot;
</span><del>-PASS Invalid: &quot;break ; break your_limits ; continue ; continue living ; debugger&quot;
-PASS Invalid: &quot;function f() { break ; break your_limits ; continue ; continue living ; debugger }&quot;
-PASS Invalid: &quot;debugger X&quot;
-PASS Invalid: &quot;function f() { debugger X }&quot;
-PASS Invalid: &quot;break 0.2&quot;
-PASS Invalid: &quot;function f() { break 0.2 }&quot;
-PASS Invalid: &quot;continue a++&quot;
-PASS Invalid: &quot;function f() { continue a++ }&quot;
-PASS Invalid: &quot;continue (my_friend)&quot;
-PASS Invalid: &quot;function f() { continue (my_friend) }&quot;
</del><ins>+PASS Invalid: &quot;break ; break your_limits ; continue ; continue living ; debugger&quot;. Produced the following syntax error: &quot;SyntaxError: 'break' is only valid inside a switch or loop statement.&quot;
+PASS Invalid: &quot;function f() { break ; break your_limits ; continue ; continue living ; debugger }&quot;. Produced the following syntax error: &quot;SyntaxError: 'break' is only valid inside a switch or loop statement.&quot;
+PASS Invalid: &quot;debugger X&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'X'. Debugger keyword must be followed by a ';'.&quot;
+PASS Invalid: &quot;function f() { debugger X }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'X'. Debugger keyword must be followed by a ';'.&quot;
+PASS Invalid: &quot;break 0.2&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected number '0.2'. Expected an identifier as the target for a break statement.&quot;
+PASS Invalid: &quot;function f() { break 0.2 }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected number '0.2'. Expected an identifier as the target for a break statement.&quot;
+PASS Invalid: &quot;continue a++&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot use the undeclared label 'a'.&quot;
+PASS Invalid: &quot;function f() { continue a++ }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot use the undeclared label 'a'.&quot;
+PASS Invalid: &quot;continue (my_friend)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '('. Expected an identifier as the target for a continue statement.&quot;
+PASS Invalid: &quot;function f() { continue (my_friend) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '('. Expected an identifier as the target for a continue statement.&quot;
</ins><span class="cx"> PASS Valid:   &quot;while (1) break&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { while (1) break }&quot;
</span><span class="cx"> PASS Valid:   &quot;do if (a) with (b) continue; else debugger; while (false)&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { do if (a) with (b) continue; else debugger; while (false) }&quot;
</span><del>-PASS Invalid: &quot;do if (a) while (false) else debugger&quot;
-PASS Invalid: &quot;function f() { do if (a) while (false) else debugger }&quot;
-PASS Invalid: &quot;while if (a) ;&quot;
-PASS Invalid: &quot;function f() { while if (a) ; }&quot;
</del><ins>+PASS Invalid: &quot;do if (a) while (false) else debugger&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'else'&quot;
+PASS Invalid: &quot;function f() { do if (a) while (false) else debugger }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'else'&quot;
+PASS Invalid: &quot;while if (a) ;&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'if'. Expected '(' to start a while loop condition.&quot;
+PASS Invalid: &quot;function f() { while if (a) ; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'if'. Expected '(' to start a while loop condition.&quot;
</ins><span class="cx"> PASS Valid:   &quot;if (a) function f() {} else function g() {}&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { if (a) function f() {} else function g() {} }&quot;
</span><del>-PASS Invalid: &quot;if (a()) while(0) function f() {} else function g() {}&quot;
-PASS Invalid: &quot;function f() { if (a()) while(0) function f() {} else function g() {} }&quot;
-PASS Invalid: &quot;if (a()) function f() { else function g() }&quot;
-PASS Invalid: &quot;function f() { if (a()) function f() { else function g() } }&quot;
-PASS Invalid: &quot;if (a) if (b) ; else function f {}&quot;
-PASS Invalid: &quot;function f() { if (a) if (b) ; else function f {} }&quot;
-PASS Invalid: &quot;if (a) if (b) ; else function (){}&quot;
-PASS Invalid: &quot;function f() { if (a) if (b) ; else function (){} }&quot;
</del><ins>+PASS Invalid: &quot;if (a()) while(0) function f() {} else function g() {}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
+PASS Invalid: &quot;function f() { if (a()) while(0) function f() {} else function g() {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
+PASS Invalid: &quot;if (a()) function f() { else function g() }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'else'&quot;
+PASS Invalid: &quot;function f() { if (a()) function f() { else function g() } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'else'&quot;
+PASS Invalid: &quot;if (a) if (b) ; else function f {}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '{'. Expected an opening '(' before a function's parameter list.&quot;
+PASS Invalid: &quot;function f() { if (a) if (b) ; else function f {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '{'. Expected an opening '(' before a function's parameter list.&quot;
+PASS Invalid: &quot;if (a) if (b) ; else function (){}&quot;. Produced the following syntax error: &quot;SyntaxError: Function statements must have a name.&quot;
+PASS Invalid: &quot;function f() { if (a) if (b) ; else function (){} }&quot;. Produced the following syntax error: &quot;SyntaxError: Function statements must have a name.&quot;
</ins><span class="cx"> PASS Valid:   &quot;throw a&quot; with 32
</span><span class="cx"> PASS Valid:   &quot;function f() { throw a }&quot;
</span><span class="cx"> PASS Valid:   &quot;throw a + b in void c&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { throw a + b in void c }&quot;
</span><del>-PASS Invalid: &quot;throw&quot;
-PASS Invalid: &quot;function f() { throw }&quot;
</del><ins>+PASS Invalid: &quot;throw&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot have a newline after 'throw'.&quot;
+PASS Invalid: &quot;function f() { throw }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot have a newline after 'throw'.&quot;
</ins><span class="cx"> var and const statements
</span><span class="cx"> PASS Valid:   &quot;var a, b = null&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { var a, b = null }&quot;
</span><span class="cx"> PASS Valid:   &quot;const a = 5, b = 10, c = 20&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { const a = 5, b = 10, c = 20 }&quot;
</span><del>-PASS Invalid: &quot;var&quot;
-PASS Invalid: &quot;function f() { var }&quot;
-PASS Invalid: &quot;var = 7&quot;
-PASS Invalid: &quot;function f() { var = 7 }&quot;
-PASS Invalid: &quot;var c (6)&quot;
-PASS Invalid: &quot;function f() { var c (6) }&quot;
</del><ins>+PASS Invalid: &quot;var&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { var }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected a parameter pattern or a ')' in parameter list.&quot;
+PASS Invalid: &quot;var = 7&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '='. Expected a parameter pattern or a ')' in parameter list.&quot;
+PASS Invalid: &quot;function f() { var = 7 }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '='. Expected a parameter pattern or a ')' in parameter list.&quot;
+PASS Invalid: &quot;var c (6)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '('. Expected ';' after variable declaration.&quot;
+PASS Invalid: &quot;function f() { var c (6) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '('. Expected ';' after variable declaration.&quot;
</ins><span class="cx"> PASS Valid:   &quot;if (a) var a,b; else { const b = 1, c = 2; }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { if (a) var a,b; else { const b = 1, c = 2; } }&quot;
</span><del>-PASS Invalid: &quot;if (a) var a,b; else { const b, c }&quot;
-PASS Invalid: &quot;function f() { if (a) var a,b; else { const b, c } }&quot;
-PASS Invalid: &quot;var 5 = 6&quot;
-PASS Invalid: &quot;function f() { var 5 = 6 }&quot;
</del><ins>+PASS Invalid: &quot;if (a) var a,b; else { const b, c }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','. const declared variable 'b' must have an initializer.&quot;
+PASS Invalid: &quot;function f() { if (a) var a,b; else { const b, c } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','. const declared variable 'b' must have an initializer.&quot;
+PASS Invalid: &quot;var 5 = 6&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected number '5'. Expected a parameter pattern or a ')' in parameter list.&quot;
+PASS Invalid: &quot;function f() { var 5 = 6 }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected number '5'. Expected a parameter pattern or a ')' in parameter list.&quot;
</ins><span class="cx"> PASS Valid:   &quot;while (0) var a, b, c=6, d, e, f=5*6, g=f*h, h&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { while (0) var a, b, c=6, d, e, f=5*6, g=f*h, h }&quot;
</span><del>-PASS Invalid: &quot;var a = if (b) { c }&quot;
-PASS Invalid: &quot;function f() { var a = if (b) { c } }&quot;
-PASS Invalid: &quot;var a = var b&quot;
-PASS Invalid: &quot;function f() { var a = var b }&quot;
-PASS Invalid: &quot;const a = b += c, a, a, a = (b - f())&quot;
-PASS Invalid: &quot;function f() { const a = b += c, a, a, a = (b - f()) }&quot;
-PASS Invalid: &quot;var a %= b | 5&quot;
-PASS Invalid: &quot;function f() { var a %= b | 5 }&quot;
-PASS Invalid: &quot;var (a) = 5&quot;
-PASS Invalid: &quot;function f() { var (a) = 5 }&quot;
-PASS Invalid: &quot;var a = (4, b = 6&quot;
-PASS Invalid: &quot;function f() { var a = (4, b = 6 }&quot;
-PASS Invalid: &quot;const 'l' = 3&quot;
-PASS Invalid: &quot;function f() { const 'l' = 3 }&quot;
-PASS Invalid: &quot;var var = 3&quot;
-PASS Invalid: &quot;function f() { var var = 3 }&quot;
</del><ins>+PASS Invalid: &quot;var a = if (b) { c }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'if'&quot;
+PASS Invalid: &quot;function f() { var a = if (b) { c } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'if'&quot;
+PASS Invalid: &quot;var a = var b&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'var'&quot;
+PASS Invalid: &quot;function f() { var a = var b }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'var'&quot;
+PASS Invalid: &quot;const a = b += c, a, a, a = (b - f())&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a const variable twice: 'a'.&quot;
+PASS Invalid: &quot;function f() { const a = b += c, a, a, a = (b - f()) }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a const variable twice: 'a'.&quot;
+PASS Invalid: &quot;var a %= b | 5&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '%='. Expected ';' after variable declaration.&quot;
+PASS Invalid: &quot;function f() { var a %= b | 5 }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '%='. Expected ';' after variable declaration.&quot;
+PASS Invalid: &quot;var (a) = 5&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '('. Expected a parameter pattern or a ')' in parameter list.&quot;
+PASS Invalid: &quot;function f() { var (a) = 5 }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '('. Expected a parameter pattern or a ')' in parameter list.&quot;
+PASS Invalid: &quot;var a = (4, b = 6&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { var a = (4, b = 6 }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected ')' to end a compound expression.&quot;
+PASS Invalid: &quot;const 'l' = 3&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected string literal 'l'. Expected a parameter pattern or a ')' in parameter list.&quot;
+PASS Invalid: &quot;function f() { const 'l' = 3 }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected string literal 'l'. Expected a parameter pattern or a ')' in parameter list.&quot;
+PASS Invalid: &quot;var var = 3&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot use the keyword 'var' as a variable name.&quot;
+PASS Invalid: &quot;function f() { var var = 3 }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot use the keyword 'var' as a variable name.&quot;
</ins><span class="cx"> PASS Valid:   &quot;var varr = 3 in 1&quot; with TypeError
</span><span class="cx"> PASS Valid:   &quot;function f() { var varr = 3 in 1 }&quot;
</span><span class="cx"> PASS Valid:   &quot;const  a = void 7 - typeof 8, b = 8&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { const  a = void 7 - typeof 8, b = 8 }&quot;
</span><del>-PASS Invalid: &quot;const a, a, a = void 7 - typeof 8, a = 8&quot;
-PASS Invalid: &quot;function f() { const a, a, a = void 7 - typeof 8, a = 8 }&quot;
</del><ins>+PASS Invalid: &quot;const a, a, a = void 7 - typeof 8, a = 8&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','. const declared variable 'a' must have an initializer.&quot;
+PASS Invalid: &quot;function f() { const a, a, a = void 7 - typeof 8, a = 8 }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','. const declared variable 'a' must have an initializer.&quot;
</ins><span class="cx"> PASS Valid:   &quot;const x_x = 6 /= 7 ? e : f&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { const x_x = 6 /= 7 ? e : f }&quot;
</span><del>-PASS Invalid: &quot;var a = ?&quot;
-PASS Invalid: &quot;function f() { var a = ? }&quot;
-PASS Invalid: &quot;const a = *7&quot;
-PASS Invalid: &quot;function f() { const a = *7 }&quot;
-PASS Invalid: &quot;var a = :)&quot;
-PASS Invalid: &quot;function f() { var a = :) }&quot;
</del><ins>+PASS Invalid: &quot;var a = ?&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '?'&quot;
+PASS Invalid: &quot;function f() { var a = ? }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '?'&quot;
+PASS Invalid: &quot;const a = *7&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '*'&quot;
+PASS Invalid: &quot;function f() { const a = *7 }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '*'&quot;
+PASS Invalid: &quot;var a = :)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ':'&quot;
+PASS Invalid: &quot;function f() { var a = :) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ':'&quot;
</ins><span class="cx"> PASS Valid:   &quot;var a = a in b in c instanceof d&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { var a = a in b in c instanceof d }&quot;
</span><del>-PASS Invalid: &quot;var a = b ? c, b&quot;
-PASS Invalid: &quot;function f() { var a = b ? c, b }&quot;
-PASS Invalid: &quot;const a = b : c&quot;
-PASS Invalid: &quot;function f() { const a = b : c }&quot;
</del><ins>+PASS Invalid: &quot;var a = b ? c, b&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','. Expected ':' in ternary operator.&quot;
+PASS Invalid: &quot;function f() { var a = b ? c, b }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','. Expected ':' in ternary operator.&quot;
+PASS Invalid: &quot;const a = b : c&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ':'. Expected ';' after variable declaration.&quot;
+PASS Invalid: &quot;function f() { const a = b : c }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ':'. Expected ';' after variable declaration.&quot;
</ins><span class="cx"> PASS Valid:   &quot;const a = 7; eval(''); a++&quot; with TypeError
</span><span class="cx"> PASS Valid:   &quot;function f() { const a = 7; eval(''); a++ }&quot;
</span><span class="cx"> PASS Valid:   &quot;const a = 7; eval(''); a--&quot; with TypeError
</span><span class="lines">@@ -410,20 +410,20 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { for ( a ; ; a ) break }&quot;
</span><span class="cx"> PASS Valid:   &quot;for ( ; a ; a ) break&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { for ( ; a ; a ) break }&quot;
</span><del>-PASS Invalid: &quot;for () { }&quot;
-PASS Invalid: &quot;function f() { for () { } }&quot;
-PASS Invalid: &quot;for ( a ) { }&quot;
-PASS Invalid: &quot;function f() { for ( a ) { } }&quot;
-PASS Invalid: &quot;for ( ; ) ;&quot;
-PASS Invalid: &quot;function f() { for ( ; ) ; }&quot;
-PASS Invalid: &quot;for a ; b ; c { }&quot;
-PASS Invalid: &quot;function f() { for a ; b ; c { } }&quot;
-PASS Invalid: &quot;for (a ; { }&quot;
-PASS Invalid: &quot;function f() { for (a ; { } }&quot;
-PASS Invalid: &quot;for ( a ; ) ;&quot;
-PASS Invalid: &quot;function f() { for ( a ; ) ; }&quot;
-PASS Invalid: &quot;for ( ; a ) break&quot;
-PASS Invalid: &quot;function f() { for ( ; a ) break }&quot;
</del><ins>+PASS Invalid: &quot;for () { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;function f() { for () { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;for ( a ) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'. Expected either 'in' or 'of' in enumeration syntax.&quot;
+PASS Invalid: &quot;function f() { for ( a ) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'. Expected either 'in' or 'of' in enumeration syntax.&quot;
+PASS Invalid: &quot;for ( ; ) ;&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;function f() { for ( ; ) ; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;for a ; b ; c { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'a'. Expected '(' to start a for-loop header.&quot;
+PASS Invalid: &quot;function f() { for a ; b ; c { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'a'. Expected '(' to start a for-loop header.&quot;
+PASS Invalid: &quot;for (a ; { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { for (a ; { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected a ';' after the for loop condition expression.&quot;
+PASS Invalid: &quot;for ( a ; ) ;&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;function f() { for ( a ; ) ; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;for ( ; a ) break&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'. Expected a ';' after the for loop condition expression.&quot;
+PASS Invalid: &quot;function f() { for ( ; a ) break }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'. Expected a ';' after the for loop condition expression.&quot;
</ins><span class="cx"> PASS Valid:   &quot;for (var a, b ; ; ) { break } &quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { for (var a, b ; ; ) { break }  }&quot;
</span><span class="cx"> PASS Valid:   &quot;for (var a = b, b = a ; ; ) break&quot;
</span><span class="lines">@@ -432,12 +432,12 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { for (var a = b, c, d, b = a ; x in b ; ) { break } }&quot;
</span><span class="cx"> PASS Valid:   &quot;for (var a = b, c, d ; ; 1 in a()) break&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { for (var a = b, c, d ; ; 1 in a()) break }&quot;
</span><del>-PASS Invalid: &quot;for ( ; var a ; ) break&quot;
-PASS Invalid: &quot;function f() { for ( ; var a ; ) break }&quot;
-PASS Invalid: &quot;for (const x; ; ) break&quot;
-PASS Invalid: &quot;function f() { for (const x; ; ) break }&quot;
-PASS Invalid: &quot;for (const x = 20, y; ; ) break&quot;
-PASS Invalid: &quot;function f() { for (const x = 20, y; ; ) break }&quot;
</del><ins>+PASS Invalid: &quot;for ( ; var a ; ) break&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'var'&quot;
+PASS Invalid: &quot;function f() { for ( ; var a ; ) break }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'var'&quot;
+PASS Invalid: &quot;for (const x; ; ) break&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ';'. const variables in for loops must have initializers.&quot;
+PASS Invalid: &quot;function f() { for (const x; ; ) break }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ';'. const variables in for loops must have initializers.&quot;
+PASS Invalid: &quot;for (const x = 20, y; ; ) break&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ';'. const variables in for loops must have initializers.&quot;
+PASS Invalid: &quot;function f() { for (const x = 20, y; ; ) break }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ';'. const variables in for loops must have initializers.&quot;
</ins><span class="cx"> PASS Valid:   &quot;for (const x = 20; ; ) break&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { for (const x = 20; ; ) break }&quot;
</span><span class="cx"> PASS Valid:   &quot;for (const x of []) break&quot;
</span><span class="lines">@@ -444,8 +444,8 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { for (const x of []) break }&quot;
</span><span class="cx"> PASS Valid:   &quot;for (const x in {}) break&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { for (const x in {}) break }&quot;
</span><del>-PASS Invalid: &quot;for (const x = 20, x = 30; ; ) { const x = 20; break; }&quot;
-PASS Invalid: &quot;function f() { for (const x = 20, x = 30; ; ) { const x = 20; break; } }&quot;
</del><ins>+PASS Invalid: &quot;for (const x = 20, x = 30; ; ) { const x = 20; break; }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a const variable twice: 'x'.&quot;
+PASS Invalid: &quot;function f() { for (const x = 20, x = 30; ; ) { const x = 20; break; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a const variable twice: 'x'.&quot;
</ins><span class="cx"> PASS Valid:   &quot;for (const x = 20; ; ) { const x = 20; break; }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { for (const x = 20; ; ) { const x = 20; break; } }&quot;
</span><span class="cx"> PASS Valid:   &quot;for (const x of []) { const x = 20; break; }&quot;
</span><span class="lines">@@ -452,20 +452,20 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { for (const x of []) { const x = 20; break; } }&quot;
</span><span class="cx"> PASS Valid:   &quot;for (const x in {}) { const x = 20; break; }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { for (const x in {}) { const x = 20; break; } }&quot;
</span><del>-PASS Invalid: &quot;for (const let = 10; ; ) { break; }&quot;
-PASS Invalid: &quot;function f() { for (const let = 10; ; ) { break; } }&quot;
-PASS Invalid: &quot;for (const let in {}) { break; }&quot;
-PASS Invalid: &quot;function f() { for (const let in {}) { break; } }&quot;
-PASS Invalid: &quot;for (const let of []) { break; }&quot;
-PASS Invalid: &quot;function f() { for (const let of []) { break; } }&quot;
-PASS Invalid: &quot;for (let let = 10; ; ) { break; }&quot;
-PASS Invalid: &quot;function f() { for (let let = 10; ; ) { break; } }&quot;
-PASS Invalid: &quot;for (let let in {}) { break; }&quot;
-PASS Invalid: &quot;function f() { for (let let in {}) { break; } }&quot;
-PASS Invalid: &quot;for (let let of []) { break; }&quot;
-PASS Invalid: &quot;function f() { for (let let of []) { break; } }&quot;
-PASS Invalid: &quot;for ( %a ; ; ) { }&quot;
-PASS Invalid: &quot;function f() { for ( %a ; ; ) { } }&quot;
</del><ins>+PASS Invalid: &quot;for (const let = 10; ; ) { break; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'let'. Can't use 'let' as an identifier name for a LexicalDeclaration.&quot;
+PASS Invalid: &quot;function f() { for (const let = 10; ; ) { break; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'let'. Can't use 'let' as an identifier name for a LexicalDeclaration.&quot;
+PASS Invalid: &quot;for (const let in {}) { break; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'let'. Can't use 'let' as an identifier name for a LexicalDeclaration.&quot;
+PASS Invalid: &quot;function f() { for (const let in {}) { break; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'let'. Can't use 'let' as an identifier name for a LexicalDeclaration.&quot;
+PASS Invalid: &quot;for (const let of []) { break; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'let'. Can't use 'let' as an identifier name for a LexicalDeclaration.&quot;
+PASS Invalid: &quot;function f() { for (const let of []) { break; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'let'. Can't use 'let' as an identifier name for a LexicalDeclaration.&quot;
+PASS Invalid: &quot;for (let let = 10; ; ) { break; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'let'. Can't use 'let' as an identifier name for a LexicalDeclaration.&quot;
+PASS Invalid: &quot;function f() { for (let let = 10; ; ) { break; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'let'. Can't use 'let' as an identifier name for a LexicalDeclaration.&quot;
+PASS Invalid: &quot;for (let let in {}) { break; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'let'. Can't use 'let' as an identifier name for a LexicalDeclaration.&quot;
+PASS Invalid: &quot;function f() { for (let let in {}) { break; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'let'. Can't use 'let' as an identifier name for a LexicalDeclaration.&quot;
+PASS Invalid: &quot;for (let let of []) { break; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'let'. Can't use 'let' as an identifier name for a LexicalDeclaration.&quot;
+PASS Invalid: &quot;function f() { for (let let of []) { break; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'let'. Can't use 'let' as an identifier name for a LexicalDeclaration.&quot;
+PASS Invalid: &quot;for ( %a ; ; ) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '%'&quot;
+PASS Invalid: &quot;function f() { for ( %a ; ; ) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '%'&quot;
</ins><span class="cx"> PASS Valid:   &quot;for (a in b) break&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { for (a in b) break }&quot;
</span><span class="cx"> PASS Valid:   &quot;for (a() in b) break&quot; with ReferenceError
</span><span class="lines">@@ -476,30 +476,30 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { for (new a in b in c in d) break }&quot;
</span><span class="cx"> PASS Valid:   &quot;for (new new new a in b) break&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { for (new new new a in b) break }&quot;
</span><del>-PASS Invalid: &quot;for (delete new a() in b) break&quot;
-PASS Invalid: &quot;function f() { for (delete new a() in b) break }&quot;
-PASS Invalid: &quot;for (a * a in b) break&quot;
-PASS Invalid: &quot;function f() { for (a * a in b) break }&quot;
</del><ins>+PASS Invalid: &quot;for (delete new a() in b) break&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement.&quot;
+PASS Invalid: &quot;function f() { for (delete new a() in b) break }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement.&quot;
+PASS Invalid: &quot;for (a * a in b) break&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement.&quot;
+PASS Invalid: &quot;function f() { for (a * a in b) break }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement.&quot;
</ins><span class="cx"> PASS Valid:   &quot;for ((a * a) in b) break&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { for ((a * a) in b) break }&quot;
</span><del>-PASS Invalid: &quot;for (a++ in b) break&quot;
-PASS Invalid: &quot;function f() { for (a++ in b) break }&quot;
</del><ins>+PASS Invalid: &quot;for (a++ in b) break&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement.&quot;
+PASS Invalid: &quot;function f() { for (a++ in b) break }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement.&quot;
</ins><span class="cx"> PASS Valid:   &quot;for ((a++) in b) break&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { for ((a++) in b) break }&quot;
</span><del>-PASS Invalid: &quot;for (++a in b) break&quot;
-PASS Invalid: &quot;function f() { for (++a in b) break }&quot;
</del><ins>+PASS Invalid: &quot;for (++a in b) break&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement.&quot;
+PASS Invalid: &quot;function f() { for (++a in b) break }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement.&quot;
</ins><span class="cx"> PASS Valid:   &quot;for ((++a) in b) break&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { for ((++a) in b) break }&quot;
</span><del>-PASS Invalid: &quot;for (a, b in c) break&quot;
-PASS Invalid: &quot;function f() { for (a, b in c) break }&quot;
-PASS Invalid: &quot;for (a,b in c ;;) break&quot;
-PASS Invalid: &quot;function f() { for (a,b in c ;;) break }&quot;
</del><ins>+PASS Invalid: &quot;for (a, b in c) break&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement.&quot;
+PASS Invalid: &quot;function f() { for (a, b in c) break }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement.&quot;
+PASS Invalid: &quot;for (a,b in c ;;) break&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement.&quot;
+PASS Invalid: &quot;function f() { for (a,b in c ;;) break }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement.&quot;
</ins><span class="cx"> PASS Valid:   &quot;for (a,(b in c) ;;) break&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { for (a,(b in c) ;;) break }&quot;
</span><span class="cx"> PASS Valid:   &quot;for ((a, b) in c) break&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { for ((a, b) in c) break }&quot;
</span><del>-PASS Invalid: &quot;for (a ? b : c in c) break&quot;
-PASS Invalid: &quot;function f() { for (a ? b : c in c) break }&quot;
</del><ins>+PASS Invalid: &quot;for (a ? b : c in c) break&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement.&quot;
+PASS Invalid: &quot;function f() { for (a ? b : c in c) break }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement.&quot;
</ins><span class="cx"> PASS Valid:   &quot;for ((a ? b : c) in c) break&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { for ((a ? b : c) in c) break }&quot;
</span><span class="cx"> PASS Valid:   &quot;for (var a in b in c) break&quot; with ReferenceError
</span><span class="lines">@@ -508,144 +508,144 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { for (var a = 5 += 6 in b) break }&quot;
</span><span class="cx"> PASS Valid:   &quot;for (var a = foo('should be hit') in b) break&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { for (var a = foo('should be hit') in b) break }&quot;
</span><del>-PASS Invalid: &quot;for (var a += 5 in b) break&quot;
-PASS Invalid: &quot;function f() { for (var a += 5 in b) break }&quot;
-PASS Invalid: &quot;for (var a = in b) break&quot;
-PASS Invalid: &quot;function f() { for (var a = in b) break }&quot;
-PASS Invalid: &quot;for (var a, b in b) break&quot;
-PASS Invalid: &quot;function f() { for (var a, b in b) break }&quot;
-PASS Invalid: &quot;for (var a = -6, b in b) break&quot;
-PASS Invalid: &quot;function f() { for (var a = -6, b in b) break }&quot;
-PASS Invalid: &quot;for (var a, b = 8 in b) break&quot;
-PASS Invalid: &quot;function f() { for (var a, b = 8 in b) break }&quot;
</del><ins>+PASS Invalid: &quot;for (var a += 5 in b) break&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '+='. Expected either 'in' or 'of' in enumeration syntax.&quot;
+PASS Invalid: &quot;function f() { for (var a += 5 in b) break }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '+='. Expected either 'in' or 'of' in enumeration syntax.&quot;
+PASS Invalid: &quot;for (var a = in b) break&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'in'&quot;
+PASS Invalid: &quot;function f() { for (var a = in b) break }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'in'&quot;
+PASS Invalid: &quot;for (var a, b in b) break&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'in'. can only declare a single variable in an enumeration.&quot;
+PASS Invalid: &quot;function f() { for (var a, b in b) break }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'in'. can only declare a single variable in an enumeration.&quot;
+PASS Invalid: &quot;for (var a = -6, b in b) break&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'in'. can only declare a single variable in an enumeration.&quot;
+PASS Invalid: &quot;function f() { for (var a = -6, b in b) break }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'in'. can only declare a single variable in an enumeration.&quot;
+PASS Invalid: &quot;for (var a, b = 8 in b) break&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'in'. can only declare a single variable in an enumeration.&quot;
+PASS Invalid: &quot;function f() { for (var a, b = 8 in b) break }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'in'. can only declare a single variable in an enumeration.&quot;
</ins><span class="cx"> PASS Valid:   &quot;for (var a = (b in c) in d) break&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { for (var a = (b in c) in d) break }&quot;
</span><del>-PASS Invalid: &quot;for (var a = (b in c in d) break&quot;
-PASS Invalid: &quot;function f() { for (var a = (b in c in d) break }&quot;
-PASS Invalid: &quot;for (var (a) in b) { }&quot;
-PASS Invalid: &quot;function f() { for (var (a) in b) { } }&quot;
</del><ins>+PASS Invalid: &quot;for (var a = (b in c in d) break&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'break'. Expected either 'in' or 'of' in enumeration syntax.&quot;
+PASS Invalid: &quot;function f() { for (var a = (b in c in d) break }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'break'. Expected either 'in' or 'of' in enumeration syntax.&quot;
+PASS Invalid: &quot;for (var (a) in b) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '('. Expected a parameter pattern or a ')' in parameter list.&quot;
+PASS Invalid: &quot;function f() { for (var (a) in b) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '('. Expected a parameter pattern or a ')' in parameter list.&quot;
</ins><span class="cx"> PASS Valid:   &quot;for (var a = 7, b = c &lt; d &gt;= d ; f()[6]++ ; --i()[1]++ ) {}&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { for (var a = 7, b = c &lt; d &gt;= d ; f()[6]++ ; --i()[1]++ ) {} }&quot;
</span><del>-PASS Invalid: &quot;for (var {a} = 20 in b) { }&quot;
-PASS Invalid: &quot;function f() { for (var {a} = 20 in b) { } }&quot;
-PASS Invalid: &quot;for (var {a} = 20 of b) { }&quot;
-PASS Invalid: &quot;function f() { for (var {a} = 20 of b) { } }&quot;
-PASS Invalid: &quot;for (var {a} = 20 in b) { }&quot;
-PASS Invalid: &quot;function f() { for (var {a} = 20 in b) { } }&quot;
</del><ins>+PASS Invalid: &quot;for (var {a} = 20 in b) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-in loop header.&quot;
+PASS Invalid: &quot;function f() { for (var {a} = 20 in b) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-in loop header.&quot;
+PASS Invalid: &quot;for (var {a} = 20 of b) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-of loop header.&quot;
+PASS Invalid: &quot;function f() { for (var {a} = 20 of b) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-of loop header.&quot;
+PASS Invalid: &quot;for (var {a} = 20 in b) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-in loop header.&quot;
+PASS Invalid: &quot;function f() { for (var {a} = 20 in b) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-in loop header.&quot;
</ins><span class="cx"> PASS Valid:   &quot;for (var i = 20 in b) { }&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { for (var i = 20 in b) { } }&quot;
</span><del>-PASS Invalid: &quot;for (var i = 20 of b) { }&quot;
-PASS Invalid: &quot;function f() { for (var i = 20 of b) { } }&quot;
-PASS Invalid: &quot;for (var {i} = 20 of b) { }&quot;
-PASS Invalid: &quot;function f() { for (var {i} = 20 of b) { } }&quot;
-PASS Invalid: &quot;for (var [i] = 20 of b) { }&quot;
-PASS Invalid: &quot;function f() { for (var [i] = 20 of b) { } }&quot;
-PASS Invalid: &quot;for (let [i] = 20 of b) { }&quot;
-PASS Invalid: &quot;function f() { for (let [i] = 20 of b) { } }&quot;
-PASS Invalid: &quot;for (const [i] = 20 of b) { }&quot;
-PASS Invalid: &quot;function f() { for (const [i] = 20 of b) { } }&quot;
-PASS Invalid: &quot;for (const i = 20 of b) { }&quot;
-PASS Invalid: &quot;function f() { for (const i = 20 of b) { } }&quot;
-PASS Invalid: &quot;for (let i = 20 of b) { }&quot;
-PASS Invalid: &quot;function f() { for (let i = 20 of b) { } }&quot;
-PASS Invalid: &quot;for (let i = 20 in b) { }&quot;
-PASS Invalid: &quot;function f() { for (let i = 20 in b) { } }&quot;
-PASS Invalid: &quot;for (const i = 20 in b) { }&quot;
-PASS Invalid: &quot;function f() { for (const i = 20 in b) { } }&quot;
-PASS Invalid: &quot;for (const {i} = 20 in b) { }&quot;
-PASS Invalid: &quot;function f() { for (const {i} = 20 in b) { } }&quot;
-PASS Invalid: &quot;for (let {i} = 20 in b) { }&quot;
-PASS Invalid: &quot;function f() { for (let {i} = 20 in b) { } }&quot;
</del><ins>+PASS Invalid: &quot;for (var i = 20 of b) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-of loop header.&quot;
+PASS Invalid: &quot;function f() { for (var i = 20 of b) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-of loop header.&quot;
+PASS Invalid: &quot;for (var {i} = 20 of b) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-of loop header.&quot;
+PASS Invalid: &quot;function f() { for (var {i} = 20 of b) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-of loop header.&quot;
+PASS Invalid: &quot;for (var [i] = 20 of b) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-of loop header.&quot;
+PASS Invalid: &quot;function f() { for (var [i] = 20 of b) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-of loop header.&quot;
+PASS Invalid: &quot;for (let [i] = 20 of b) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-of loop header.&quot;
+PASS Invalid: &quot;function f() { for (let [i] = 20 of b) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-of loop header.&quot;
+PASS Invalid: &quot;for (const [i] = 20 of b) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-of loop header.&quot;
+PASS Invalid: &quot;function f() { for (const [i] = 20 of b) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-of loop header.&quot;
+PASS Invalid: &quot;for (const i = 20 of b) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-of loop header.&quot;
+PASS Invalid: &quot;function f() { for (const i = 20 of b) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-of loop header.&quot;
+PASS Invalid: &quot;for (let i = 20 of b) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-of loop header.&quot;
+PASS Invalid: &quot;function f() { for (let i = 20 of b) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-of loop header.&quot;
+PASS Invalid: &quot;for (let i = 20 in b) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-in loop header.&quot;
+PASS Invalid: &quot;function f() { for (let i = 20 in b) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-in loop header.&quot;
+PASS Invalid: &quot;for (const i = 20 in b) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-in loop header.&quot;
+PASS Invalid: &quot;function f() { for (const i = 20 in b) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-in loop header.&quot;
+PASS Invalid: &quot;for (const {i} = 20 in b) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-in loop header.&quot;
+PASS Invalid: &quot;function f() { for (const {i} = 20 in b) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-in loop header.&quot;
+PASS Invalid: &quot;for (let {i} = 20 in b) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-in loop header.&quot;
+PASS Invalid: &quot;function f() { for (let {i} = 20 in b) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-in loop header.&quot;
</ins><span class="cx"> try statement
</span><del>-PASS Invalid: &quot;try { break } catch(e) {}&quot;
-PASS Invalid: &quot;function f() { try { break } catch(e) {} }&quot;
</del><ins>+PASS Invalid: &quot;try { break } catch(e) {}&quot;. Produced the following syntax error: &quot;SyntaxError: 'break' is only valid inside a switch or loop statement.&quot;
+PASS Invalid: &quot;function f() { try { break } catch(e) {} }&quot;. Produced the following syntax error: &quot;SyntaxError: 'break' is only valid inside a switch or loop statement.&quot;
</ins><span class="cx"> PASS Valid:   &quot;try {} finally { c++ }&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { try {} finally { c++ } }&quot;
</span><span class="cx"> PASS Valid:   &quot;try { with (x) { } } catch(e) {} finally { if (a) ; }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { try { with (x) { } } catch(e) {} finally { if (a) ; } }&quot;
</span><del>-PASS Invalid: &quot;try {}&quot;
-PASS Invalid: &quot;function f() { try {} }&quot;
-PASS Invalid: &quot;catch(e) {}&quot;
-PASS Invalid: &quot;function f() { catch(e) {} }&quot;
-PASS Invalid: &quot;finally {}&quot;
-PASS Invalid: &quot;function f() { finally {} }&quot;
-PASS Invalid: &quot;try a; catch(e) {}&quot;
-PASS Invalid: &quot;function f() { try a; catch(e) {} }&quot;
-PASS Invalid: &quot;try {} catch(e) a()&quot;
-PASS Invalid: &quot;function f() { try {} catch(e) a() }&quot;
-PASS Invalid: &quot;try {} finally a()&quot;
-PASS Invalid: &quot;function f() { try {} finally a() }&quot;
-PASS Invalid: &quot;try {} catch(e)&quot;
-PASS Invalid: &quot;function f() { try {} catch(e) }&quot;
-PASS Invalid: &quot;try {} finally&quot;
-PASS Invalid: &quot;function f() { try {} finally }&quot;
-PASS Invalid: &quot;try {} finally {} catch(e) {}&quot;
-PASS Invalid: &quot;function f() { try {} finally {} catch(e) {} }&quot;
-PASS Invalid: &quot;try {} catch (...) {}&quot;
-PASS Invalid: &quot;function f() { try {} catch (...) {} }&quot;
-PASS Invalid: &quot;try {} catch {}&quot;
-PASS Invalid: &quot;function f() { try {} catch {} }&quot;
</del><ins>+PASS Invalid: &quot;try {}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { try {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Try statements must have at least a catch or finally block.&quot;
+PASS Invalid: &quot;catch(e) {}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'catch'&quot;
+PASS Invalid: &quot;function f() { catch(e) {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'catch'&quot;
+PASS Invalid: &quot;finally {}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'finally'&quot;
+PASS Invalid: &quot;function f() { finally {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'finally'&quot;
+PASS Invalid: &quot;try a; catch(e) {}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'a'. Expected a block statement as body of a try statement.&quot;
+PASS Invalid: &quot;function f() { try a; catch(e) {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'a'. Expected a block statement as body of a try statement.&quot;
+PASS Invalid: &quot;try {} catch(e) a()&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'a'. Expected exception handler to be a block statement.&quot;
+PASS Invalid: &quot;function f() { try {} catch(e) a() }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'a'. Expected exception handler to be a block statement.&quot;
+PASS Invalid: &quot;try {} finally a()&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'a'. Expected block statement for finally body.&quot;
+PASS Invalid: &quot;function f() { try {} finally a() }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'a'. Expected block statement for finally body.&quot;
+PASS Invalid: &quot;try {} catch(e)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { try {} catch(e) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected exception handler to be a block statement.&quot;
+PASS Invalid: &quot;try {} finally&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { try {} finally }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected block statement for finally body.&quot;
+PASS Invalid: &quot;try {} finally {} catch(e) {}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'catch'&quot;
+PASS Invalid: &quot;function f() { try {} finally {} catch(e) {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'catch'&quot;
+PASS Invalid: &quot;try {} catch (...) {}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '...'. Expected a parameter pattern or a ')' in parameter list.&quot;
+PASS Invalid: &quot;function f() { try {} catch (...) {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '...'. Expected a parameter pattern or a ')' in parameter list.&quot;
+PASS Invalid: &quot;try {} catch {}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '{'. Expected '(' to start a 'catch' target.&quot;
+PASS Invalid: &quot;function f() { try {} catch {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '{'. Expected '(' to start a 'catch' target.&quot;
</ins><span class="cx"> PASS Valid:   &quot;if (a) try {} finally {} else b;&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { if (a) try {} finally {} else b; }&quot;
</span><span class="cx"> PASS Valid:   &quot;if (--a()) do with(1) try {} catch(ke) { f() ; g() } while (a in b) else {}&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { if (--a()) do with(1) try {} catch(ke) { f() ; g() } while (a in b) else {} }&quot;
</span><del>-PASS Invalid: &quot;if (a) try {} else b; catch (e) { }&quot;
-PASS Invalid: &quot;function f() { if (a) try {} else b; catch (e) { } }&quot;
-PASS Invalid: &quot;try { finally {}&quot;
-PASS Invalid: &quot;function f() { try { finally {} }&quot;
</del><ins>+PASS Invalid: &quot;if (a) try {} else b; catch (e) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'else'. Try statements must have at least a catch or finally block.&quot;
+PASS Invalid: &quot;function f() { if (a) try {} else b; catch (e) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'else'. Try statements must have at least a catch or finally block.&quot;
+PASS Invalid: &quot;try { finally {}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'finally'&quot;
+PASS Invalid: &quot;function f() { try { finally {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'finally'&quot;
</ins><span class="cx"> switch statement
</span><span class="cx"> PASS Valid:   &quot;switch (a) {}&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { switch (a) {} }&quot;
</span><del>-PASS Invalid: &quot;switch () {}&quot;
-PASS Invalid: &quot;function f() { switch () {} }&quot;
-PASS Invalid: &quot;case 5:&quot;
-PASS Invalid: &quot;function f() { case 5: }&quot;
-PASS Invalid: &quot;default:&quot;
-PASS Invalid: &quot;function f() { default: }&quot;
-PASS Invalid: &quot;switch (a) b;&quot;
-PASS Invalid: &quot;function f() { switch (a) b; }&quot;
-PASS Invalid: &quot;switch (a) case 3: b;&quot;
-PASS Invalid: &quot;function f() { switch (a) case 3: b; }&quot;
</del><ins>+PASS Invalid: &quot;switch () {}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;function f() { switch () {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;case 5:&quot;. Produced the following syntax error: &quot;SyntaxError: Parser error&quot;
+PASS Invalid: &quot;function f() { case 5: }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'case'. Expected a closing '}' after a function body.&quot;
+PASS Invalid: &quot;default:&quot;. Produced the following syntax error: &quot;SyntaxError: Parser error&quot;
+PASS Invalid: &quot;function f() { default: }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'default'. Expected a closing '}' after a function body.&quot;
+PASS Invalid: &quot;switch (a) b;&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'b'. Expected '{' to start a body of a 'switch'.&quot;
+PASS Invalid: &quot;function f() { switch (a) b; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'b'. Expected '{' to start a body of a 'switch'.&quot;
+PASS Invalid: &quot;switch (a) case 3: b;&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'case'. Expected '{' to start a body of a 'switch'.&quot;
+PASS Invalid: &quot;function f() { switch (a) case 3: b; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'case'. Expected '{' to start a body of a 'switch'.&quot;
</ins><span class="cx"> PASS Valid:   &quot;switch (f()) { case 5 * f(): default: case '6' - 9: ++i }&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { switch (f()) { case 5 * f(): default: case '6' - 9: ++i } }&quot;
</span><del>-PASS Invalid: &quot;switch (true) { default: case 6: default: }&quot;
-PASS Invalid: &quot;function f() { switch (true) { default: case 6: default: } }&quot;
-PASS Invalid: &quot;switch (l) { f(); }&quot;
-PASS Invalid: &quot;function f() { switch (l) { f(); } }&quot;
-PASS Invalid: &quot;switch (l) { case 1: ; a: case 5: }&quot;
-PASS Invalid: &quot;function f() { switch (l) { case 1: ; a: case 5: } }&quot;
</del><ins>+PASS Invalid: &quot;switch (true) { default: case 6: default: }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'default'. Expected '}' to end a body of a 'switch'.&quot;
+PASS Invalid: &quot;function f() { switch (true) { default: case 6: default: } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'default'. Expected '}' to end a body of a 'switch'.&quot;
+PASS Invalid: &quot;switch (l) { f(); }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'f'. Expected '}' to end a body of a 'switch'.&quot;
+PASS Invalid: &quot;function f() { switch (l) { f(); } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'f'. Expected '}' to end a body of a 'switch'.&quot;
+PASS Invalid: &quot;switch (l) { case 1: ; a: case 5: }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'case'. Cannot parse statement.&quot;
+PASS Invalid: &quot;function f() { switch (l) { case 1: ; a: case 5: } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'case'. Cannot parse statement.&quot;
</ins><span class="cx"> PASS Valid:   &quot;switch (g() - h[5].l) { case 1 + 6: a: b: c: ++f }&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { switch (g() - h[5].l) { case 1 + 6: a: b: c: ++f } }&quot;
</span><del>-PASS Invalid: &quot;switch (g) { case 1: a: }&quot;
-PASS Invalid: &quot;function f() { switch (g) { case 1: a: } }&quot;
-PASS Invalid: &quot;switch (g) { case 1: a: default: }&quot;
-PASS Invalid: &quot;function f() { switch (g) { case 1: a: default: } }&quot;
-PASS Invalid: &quot;switch g { case 1: l() }&quot;
-PASS Invalid: &quot;function f() { switch g { case 1: l() } }&quot;
-PASS Invalid: &quot;switch (g) { case 1:&quot;
-PASS Invalid: &quot;function f() { switch (g) { case 1: }&quot;
</del><ins>+PASS Invalid: &quot;switch (g) { case 1: a: }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Cannot parse statement.&quot;
+PASS Invalid: &quot;function f() { switch (g) { case 1: a: } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Cannot parse statement.&quot;
+PASS Invalid: &quot;switch (g) { case 1: a: default: }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'default'. Cannot parse statement.&quot;
+PASS Invalid: &quot;function f() { switch (g) { case 1: a: default: } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'default'. Cannot parse statement.&quot;
+PASS Invalid: &quot;switch g { case 1: l() }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'g'. Expected '(' to start a subject of a 'switch'.&quot;
+PASS Invalid: &quot;function f() { switch g { case 1: l() } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'g'. Expected '(' to start a subject of a 'switch'.&quot;
+PASS Invalid: &quot;switch (g) { case 1:&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { switch (g) { case 1: }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
</ins><span class="cx"> PASS Valid:   &quot;switch (l) { case a = b ? c : d : }&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { switch (l) { case a = b ? c : d : } }&quot;
</span><span class="cx"> PASS Valid:   &quot;switch (sw) { case a ? b - 7[1] ? [c,,] : d = 6 : { } : }&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { switch (sw) { case a ? b - 7[1] ? [c,,] : d = 6 : { } : } }&quot;
</span><del>-PASS Invalid: &quot;switch (l) { case b ? c : }&quot;
-PASS Invalid: &quot;function f() { switch (l) { case b ? c : } }&quot;
</del><ins>+PASS Invalid: &quot;switch (l) { case b ? c : }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'&quot;
+PASS Invalid: &quot;function f() { switch (l) { case b ? c : } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'&quot;
</ins><span class="cx"> PASS Valid:   &quot;switch (l) { case 1: a: with(g) switch (g) { case 2: default: } default: }&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { switch (l) { case 1: a: with(g) switch (g) { case 2: default: } default: } }&quot;
</span><del>-PASS Invalid: &quot;switch (4 - ) { }&quot;
-PASS Invalid: &quot;function f() { switch (4 - ) { } }&quot;
-PASS Invalid: &quot;switch (l) { default case: 5; }&quot;
-PASS Invalid: &quot;function f() { switch (l) { default case: 5; } }&quot;
-PASS Invalid: &quot;L: L: ;&quot;
-PASS Invalid: &quot;function f() { L: L: ; }&quot;
-PASS Invalid: &quot;L: L1: L: ;&quot;
-PASS Invalid: &quot;function f() { L: L1: L: ; }&quot;
-PASS Invalid: &quot;L: L1: L2: L3: L4: L: ;&quot;
-PASS Invalid: &quot;function f() { L: L1: L2: L3: L4: L: ; }&quot;
-PASS Invalid: &quot;for(var a,b 'this shouldn't be allowed' false ; ) ;&quot;
-PASS Invalid: &quot;function f() { for(var a,b 'this shouldn't be allowed' false ; ) ; }&quot;
-PASS Invalid: &quot;for(var a,b '&quot;
-PASS Invalid: &quot;function f() { for(var a,b ' }&quot;
</del><ins>+PASS Invalid: &quot;switch (4 - ) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;function f() { switch (4 - ) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;switch (l) { default case: 5; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'case'. Expected a ':' after switch default clause.&quot;
+PASS Invalid: &quot;function f() { switch (l) { default case: 5; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'case'. Expected a ':' after switch default clause.&quot;
+PASS Invalid: &quot;L: L: ;&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ';'. Attempted to redeclare the label 'L'.&quot;
+PASS Invalid: &quot;function f() { L: L: ; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ';'. Attempted to redeclare the label 'L'.&quot;
+PASS Invalid: &quot;L: L1: L: ;&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ';'. Attempted to redeclare the label 'L'.&quot;
+PASS Invalid: &quot;function f() { L: L1: L: ; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ';'. Attempted to redeclare the label 'L'.&quot;
+PASS Invalid: &quot;L: L1: L2: L3: L4: L: ;&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ';'. Attempted to redeclare the label 'L'.&quot;
+PASS Invalid: &quot;function f() { L: L1: L2: L3: L4: L: ; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ';'. Attempted to redeclare the label 'L'.&quot;
+PASS Invalid: &quot;for(var a,b 'this shouldn't be allowed' false ; ) ;&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected string literal 'this shouldn'. can only declare a single variable in an enumeration.&quot;
+PASS Invalid: &quot;function f() { for(var a,b 'this shouldn't be allowed' false ; ) ; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected string literal 'this shouldn'. can only declare a single variable in an enumeration.&quot;
+PASS Invalid: &quot;for(var a,b '&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected EOF&quot;
+PASS Invalid: &quot;function f() { for(var a,b ' }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected EOF&quot;
</ins><span class="cx"> PASS Valid:   &quot;function __proto__(){}&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function __proto__(){} }&quot;
</span><span class="cx"> PASS Valid:   &quot;(function __proto__(){})&quot;
</span><span class="lines">@@ -664,18 +664,18 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { 'use strict'; function f1(a) { function f2(b) { if (b) { function f3(c) { return c; } return f3(b); } else return b; } return f2(a); } f1(5); }&quot;
</span><span class="cx"> PASS Valid:   &quot;'use strict'; function f1(a) {}; function f1(a) {};&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { 'use strict'; function f1(a) {}; function f1(a) {}; }&quot;
</span><del>-PASS Invalid: &quot;'use strict'; { function f1(a) {}; function f1(a) {}; }&quot;
-PASS Invalid: &quot;function f() { 'use strict'; { function f1(a) {}; function f1(a) {}; } }&quot;
-PASS Invalid: &quot;'use strict'; { let f1; function f1(a) {}; }&quot;
-PASS Invalid: &quot;function f() { 'use strict'; { let f1; function f1(a) {}; } }&quot;
-PASS Invalid: &quot;'use strict'; { function f1(a) {}; let f1; }&quot;
-PASS Invalid: &quot;function f() { 'use strict'; { function f1(a) {}; let f1; } }&quot;
-PASS Invalid: &quot;'use strict'; let f1; function f1(a) {};&quot;
-PASS Invalid: &quot;function f() { 'use strict'; let f1; function f1(a) {}; }&quot;
-PASS Invalid: &quot;'use strict'; function f1(a) {}; let f1; &quot;
-PASS Invalid: &quot;function f() { 'use strict'; function f1(a) {}; let f1;  }&quot;
-PASS Invalid: &quot;let f1; function f1(a) {};&quot;
-PASS Invalid: &quot;function f() { let f1; function f1(a) {}; }&quot;
</del><ins>+PASS Invalid: &quot;'use strict'; { function f1(a) {}; function f1(a) {}; }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f1' in strict mode.&quot;
+PASS Invalid: &quot;function f() { 'use strict'; { function f1(a) {}; function f1(a) {}; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f1' in strict mode.&quot;
+PASS Invalid: &quot;'use strict'; { let f1; function f1(a) {}; }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f1' in strict mode.&quot;
+PASS Invalid: &quot;function f() { 'use strict'; { let f1; function f1(a) {}; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f1' in strict mode.&quot;
+PASS Invalid: &quot;'use strict'; { function f1(a) {}; let f1; }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a let variable twice: 'f1'.&quot;
+PASS Invalid: &quot;function f() { 'use strict'; { function f1(a) {}; let f1; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a let variable twice: 'f1'.&quot;
+PASS Invalid: &quot;'use strict'; let f1; function f1(a) {};&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f1' in strict mode.&quot;
+PASS Invalid: &quot;function f() { 'use strict'; let f1; function f1(a) {}; }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f1' in strict mode.&quot;
+PASS Invalid: &quot;'use strict'; function f1(a) {}; let f1; &quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a let variable twice: 'f1'.&quot;
+PASS Invalid: &quot;function f() { 'use strict'; function f1(a) {}; let f1;  }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a let variable twice: 'f1'.&quot;
+PASS Invalid: &quot;let f1; function f1(a) {};&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f1' in strict mode.&quot;
+PASS Invalid: &quot;function f() { let f1; function f1(a) {}; }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f1' in strict mode.&quot;
</ins><span class="cx"> PASS Valid:   &quot;function foo() { let f1; { function f1(a) {}; } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function foo() { let f1; { function f1(a) {}; } } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function foo() { { function f1(a) {}; } let f1; }&quot;
</span><span class="lines">@@ -682,100 +682,100 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { function foo() { { function f1(a) {}; } let f1; } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function foo() { { function foo() { }; function foo() { } } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function foo() { { function foo() { }; function foo() { } } } }&quot;
</span><del>-PASS Invalid: &quot;function foo() { 'use strict'; { function foo() { }; function foo() { } } }&quot;
-PASS Invalid: &quot;function f() { function foo() { 'use strict'; { function foo() { }; function foo() { } } } }&quot;
-PASS Invalid: &quot;function foo() { let f1; function f1(a) {}; }&quot;
-PASS Invalid: &quot;function f() { function foo() { let f1; function f1(a) {}; } }&quot;
-PASS Invalid: &quot;let f1; function f1(a) {};&quot;
-PASS Invalid: &quot;function f() { let f1; function f1(a) {}; }&quot;
</del><ins>+PASS Invalid: &quot;function foo() { 'use strict'; { function foo() { }; function foo() { } } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'foo' in strict mode.&quot;
+PASS Invalid: &quot;function f() { function foo() { 'use strict'; { function foo() { }; function foo() { } } } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'foo' in strict mode.&quot;
+PASS Invalid: &quot;function foo() { let f1; function f1(a) {}; }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f1' in strict mode.&quot;
+PASS Invalid: &quot;function f() { function foo() { let f1; function f1(a) {}; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f1' in strict mode.&quot;
+PASS Invalid: &quot;let f1; function f1(a) {};&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f1' in strict mode.&quot;
+PASS Invalid: &quot;function f() { let f1; function f1(a) {}; }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f1' in strict mode.&quot;
</ins><span class="cx"> PASS Valid:   &quot;{ function f1(a) {}; let f1; }&quot;
</span><del>-PASS Invalid: &quot;function f() { { function f1(a) {}; let f1; } }&quot;
</del><ins>+PASS Invalid: &quot;function f() { { function f1(a) {}; let f1; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a let variable twice: 'f1'.&quot;
</ins><span class="cx"> PASS Valid:   &quot;{ function f1(a) {}; const f1 = 25; }&quot;
</span><del>-PASS Invalid: &quot;function f() { { function f1(a) {}; const f1 = 25; } }&quot;
</del><ins>+PASS Invalid: &quot;function f() { { function f1(a) {}; const f1 = 25; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a const variable twice: 'f1'.&quot;
</ins><span class="cx"> PASS Valid:   &quot;{ function f1(a) {}; class f1{}; }&quot;
</span><del>-PASS Invalid: &quot;function f() { { function f1(a) {}; class f1{}; } }&quot;
-PASS Invalid: &quot;function foo() { { let bar; function bar() { } } }&quot;
-PASS Invalid: &quot;function f() { function foo() { { let bar; function bar() { } } } }&quot;
-PASS Invalid: &quot;function foo() { { function bar() { }; let bar; } }&quot;
-PASS Invalid: &quot;function f() { function foo() { { function bar() { }; let bar; } } }&quot;
-PASS Invalid: &quot;function foo() { { const bar; function bar() { } } }&quot;
-PASS Invalid: &quot;function f() { function foo() { { const bar; function bar() { } } } }&quot;
-PASS Invalid: &quot;function foo() { { function bar() { }; const bar; } }&quot;
-PASS Invalid: &quot;function f() { function foo() { { function bar() { }; const bar; } } }&quot;
-PASS Invalid: &quot;function foo() { { class bar{}; function bar() { } } }&quot;
-PASS Invalid: &quot;function f() { function foo() { { class bar{}; function bar() { } } } }&quot;
-PASS Invalid: &quot;function foo() { { function bar() { }; class bar{}; } }&quot;
-PASS Invalid: &quot;function f() { function foo() { { function bar() { }; class bar{}; } } }&quot;
</del><ins>+PASS Invalid: &quot;function f() { { function f1(a) {}; class f1{}; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a class twice: 'f1'.&quot;
+PASS Invalid: &quot;function foo() { { let bar; function bar() { } } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'bar' in strict mode.&quot;
+PASS Invalid: &quot;function f() { function foo() { { let bar; function bar() { } } } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'bar' in strict mode.&quot;
+PASS Invalid: &quot;function foo() { { function bar() { }; let bar; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a let variable twice: 'bar'.&quot;
+PASS Invalid: &quot;function f() { function foo() { { function bar() { }; let bar; } } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a let variable twice: 'bar'.&quot;
+PASS Invalid: &quot;function foo() { { const bar; function bar() { } } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ';'. const declared variable 'bar' must have an initializer.&quot;
+PASS Invalid: &quot;function f() { function foo() { { const bar; function bar() { } } } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ';'. const declared variable 'bar' must have an initializer.&quot;
+PASS Invalid: &quot;function foo() { { function bar() { }; const bar; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a const variable twice: 'bar'.&quot;
+PASS Invalid: &quot;function f() { function foo() { { function bar() { }; const bar; } } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a const variable twice: 'bar'.&quot;
+PASS Invalid: &quot;function foo() { { class bar{}; function bar() { } } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'bar' in strict mode.&quot;
+PASS Invalid: &quot;function f() { function foo() { { class bar{}; function bar() { } } } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'bar' in strict mode.&quot;
+PASS Invalid: &quot;function foo() { { function bar() { }; class bar{}; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a class twice: 'bar'.&quot;
+PASS Invalid: &quot;function f() { function foo() { { function bar() { }; class bar{}; } } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a class twice: 'bar'.&quot;
</ins><span class="cx"> PASS Valid:   &quot;switch('foo') { case 1: function foo() {}; break; case 2: function foo() {}; break; }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { switch('foo') { case 1: function foo() {}; break; case 2: function foo() {}; break; } }&quot;
</span><span class="cx"> PASS Valid:   &quot;switch('foo') { case 1: let foo; function foo() {}; break; case 2: function foo() {}; break; }&quot;
</span><del>-PASS Invalid: &quot;function f() { switch('foo') { case 1: let foo; function foo() {}; break; case 2: function foo() {}; break; } }&quot;
</del><ins>+PASS Invalid: &quot;function f() { switch('foo') { case 1: let foo; function foo() {}; break; case 2: function foo() {}; break; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'foo' in strict mode.&quot;
</ins><span class="cx"> PASS Valid:   &quot;switch('foo') { case 1: function foo() {}; let foo; break; case 2: function foo() {}; break; }&quot;
</span><del>-PASS Invalid: &quot;function f() { switch('foo') { case 1: function foo() {}; let foo; break; case 2: function foo() {}; break; } }&quot;
</del><ins>+PASS Invalid: &quot;function f() { switch('foo') { case 1: function foo() {}; let foo; break; case 2: function foo() {}; break; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a let variable twice: 'foo'.&quot;
</ins><span class="cx"> PASS Valid:   &quot;switch('foo') { case 1: function foo() {}; const foo = 25; break; case 2: function foo() {}; break; }&quot;
</span><del>-PASS Invalid: &quot;function f() { switch('foo') { case 1: function foo() {}; const foo = 25; break; case 2: function foo() {}; break; } }&quot;
</del><ins>+PASS Invalid: &quot;function f() { switch('foo') { case 1: function foo() {}; const foo = 25; break; case 2: function foo() {}; break; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a const variable twice: 'foo'.&quot;
</ins><span class="cx"> PASS Valid:   &quot;switch('foo') { case 1: function foo() {}; class foo {} ; break; case 2: function foo() {}; break; }&quot;
</span><del>-PASS Invalid: &quot;function f() { switch('foo') { case 1: function foo() {}; class foo {} ; break; case 2: function foo() {}; break; } }&quot;
</del><ins>+PASS Invalid: &quot;function f() { switch('foo') { case 1: function foo() {}; class foo {} ; break; case 2: function foo() {}; break; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a class twice: 'foo'.&quot;
</ins><span class="cx"> PASS Valid:   &quot;switch('foo') { case 1: function foo() {}; break; case 2: function foo() {}; break; case 3: let foo; }&quot;
</span><del>-PASS Invalid: &quot;function f() { switch('foo') { case 1: function foo() {}; break; case 2: function foo() {}; break; case 3: let foo; } }&quot;
</del><ins>+PASS Invalid: &quot;function f() { switch('foo') { case 1: function foo() {}; break; case 2: function foo() {}; break; case 3: let foo; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a let variable twice: 'foo'.&quot;
</ins><span class="cx"> PASS Valid:   &quot;function foo() { switch('foo') { case 1: function foo() {}; break; case 2: function foo() {}; break; case 3: { let foo; } } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function foo() { switch('foo') { case 1: function foo() {}; break; case 2: function foo() {}; break; case 3: { let foo; } } } }&quot;
</span><del>-PASS Invalid: &quot;'use strict'; switch('foo') { case 1: function foo() {}; break; case 2: function foo() {}; break; }&quot;
-PASS Invalid: &quot;function f() { 'use strict'; switch('foo') { case 1: function foo() {}; break; case 2: function foo() {}; break; } }&quot;
-PASS Invalid: &quot;'use strict'; switch('foo') { case 1: function foo() {}; break; case 2: let foo; break; }&quot;
-PASS Invalid: &quot;function f() { 'use strict'; switch('foo') { case 1: function foo() {}; break; case 2: let foo; break; } }&quot;
-PASS Invalid: &quot;'use strict'; switch('foo') { case 1: let foo; break; case 2: function foo() {}; break; }&quot;
-PASS Invalid: &quot;function f() { 'use strict'; switch('foo') { case 1: let foo; break; case 2: function foo() {}; break; } }&quot;
</del><ins>+PASS Invalid: &quot;'use strict'; switch('foo') { case 1: function foo() {}; break; case 2: function foo() {}; break; }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'foo' in strict mode.&quot;
+PASS Invalid: &quot;function f() { 'use strict'; switch('foo') { case 1: function foo() {}; break; case 2: function foo() {}; break; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'foo' in strict mode.&quot;
+PASS Invalid: &quot;'use strict'; switch('foo') { case 1: function foo() {}; break; case 2: let foo; break; }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a let variable twice: 'foo'.&quot;
+PASS Invalid: &quot;function f() { 'use strict'; switch('foo') { case 1: function foo() {}; break; case 2: let foo; break; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a let variable twice: 'foo'.&quot;
+PASS Invalid: &quot;'use strict'; switch('foo') { case 1: let foo; break; case 2: function foo() {}; break; }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'foo' in strict mode.&quot;
+PASS Invalid: &quot;function f() { 'use strict'; switch('foo') { case 1: let foo; break; case 2: function foo() {}; break; } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'foo' in strict mode.&quot;
</ins><span class="cx"> PASS Valid:   &quot;'use strict'; switch('foo') { case 1: { let foo; break; } case 2: function foo() {}; break; }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { 'use strict'; switch('foo') { case 1: { let foo; break; } case 2: function foo() {}; break; } }&quot;
</span><span class="cx"> PASS Valid:   &quot;'use strict'; switch('foo') { case 1: { function foo() { }; break; } case 2: function foo() {}; break; }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { 'use strict'; switch('foo') { case 1: { function foo() { }; break; } case 2: function foo() {}; break; } }&quot;
</span><del>-PASS Invalid: &quot;'use strict'; if (true) function foo() { }; &quot;
-PASS Invalid: &quot;function f() { 'use strict'; if (true) function foo() { };  }&quot;
</del><ins>+PASS Invalid: &quot;'use strict'; if (true) function foo() { }; &quot;. Produced the following syntax error: &quot;SyntaxError: Function declarations are only allowed inside blocks or switch statements in strict mode.&quot;
+PASS Invalid: &quot;function f() { 'use strict'; if (true) function foo() { };  }&quot;. Produced the following syntax error: &quot;SyntaxError: Function declarations are only allowed inside blocks or switch statements in strict mode.&quot;
</ins><span class="cx"> PASS Valid:   &quot;if (true) function foo() { }; &quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { if (true) function foo() { };  }&quot;
</span><del>-PASS Invalid: &quot; let foo; if (true) function foo() { };&quot;
</del><ins>+PASS Invalid: &quot; let foo; if (true) function foo() { };&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'foo' in strict mode.&quot;
</ins><span class="cx"> PASS Valid:   &quot;function f() {  let foo; if (true) function foo() { }; }&quot;
</span><span class="cx"> PASS Valid:   &quot;function baz() { let foo; if (true) function foo() { }; }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function baz() { let foo; if (true) function foo() { }; } }&quot;
</span><del>-PASS Invalid: &quot;if (true) function foo() { }; let foo;&quot;
</del><ins>+PASS Invalid: &quot;if (true) function foo() { }; let foo;&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a let variable twice: 'foo'.&quot;
</ins><span class="cx"> PASS Valid:   &quot;function f() { if (true) function foo() { }; let foo; }&quot;
</span><del>-PASS Invalid: &quot;{ if (true) function foo() { }; } let foo;&quot;
</del><ins>+PASS Invalid: &quot;{ if (true) function foo() { }; } let foo;&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a let variable twice: 'foo'.&quot;
</ins><span class="cx"> PASS Valid:   &quot;function f() { { if (true) function foo() { }; } let foo; }&quot;
</span><del>-PASS Invalid: &quot;let foo; while (false) function foo() { }; &quot;
-PASS Invalid: &quot;function f() { let foo; while (false) function foo() { };  }&quot;
-PASS Invalid: &quot;let foo;  { while (false) function foo() { }; } &quot;
-PASS Invalid: &quot;function f() { let foo;  { while (false) function foo() { }; }  }&quot;
-PASS Invalid: &quot;while (false) function foo() { }; let foo;&quot;
-PASS Invalid: &quot;function f() { while (false) function foo() { }; let foo; }&quot;
-PASS Invalid: &quot;let foo; while (false) label: function foo() { }; &quot;
-PASS Invalid: &quot;function f() { let foo; while (false) label: function foo() { };  }&quot;
-PASS Invalid: &quot;while (false) label: function foo() { }; let foo;&quot;
-PASS Invalid: &quot;function f() { while (false) label: function foo() { }; let foo; }&quot;
-PASS Invalid: &quot;'use strict'; while (false) function foo() { }; &quot;
-PASS Invalid: &quot;function f() { 'use strict'; while (false) function foo() { };  }&quot;
-PASS Invalid: &quot;'use strict'; if (false) function foo() { }; &quot;
-PASS Invalid: &quot;function f() { 'use strict'; if (false) function foo() { };  }&quot;
-PASS Invalid: &quot;'use strict'; do function foo() { } while (false); &quot;
-PASS Invalid: &quot;function f() { 'use strict'; do function foo() { } while (false);  }&quot;
-PASS Invalid: &quot;while (false) function foo() { }; &quot;
-PASS Invalid: &quot;function f() { while (false) function foo() { };  }&quot;
</del><ins>+PASS Invalid: &quot;let foo; while (false) function foo() { }; &quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
+PASS Invalid: &quot;function f() { let foo; while (false) function foo() { };  }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
+PASS Invalid: &quot;let foo;  { while (false) function foo() { }; } &quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
+PASS Invalid: &quot;function f() { let foo;  { while (false) function foo() { }; }  }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
+PASS Invalid: &quot;while (false) function foo() { }; let foo;&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
+PASS Invalid: &quot;function f() { while (false) function foo() { }; let foo; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
+PASS Invalid: &quot;let foo; while (false) label: function foo() { }; &quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
+PASS Invalid: &quot;function f() { let foo; while (false) label: function foo() { };  }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
+PASS Invalid: &quot;while (false) label: function foo() { }; let foo;&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
+PASS Invalid: &quot;function f() { while (false) label: function foo() { }; let foo; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
+PASS Invalid: &quot;'use strict'; while (false) function foo() { }; &quot;. Produced the following syntax error: &quot;SyntaxError: Function declarations are only allowed inside blocks or switch statements in strict mode.&quot;
+PASS Invalid: &quot;function f() { 'use strict'; while (false) function foo() { };  }&quot;. Produced the following syntax error: &quot;SyntaxError: Function declarations are only allowed inside blocks or switch statements in strict mode.&quot;
+PASS Invalid: &quot;'use strict'; if (false) function foo() { }; &quot;. Produced the following syntax error: &quot;SyntaxError: Function declarations are only allowed inside blocks or switch statements in strict mode.&quot;
+PASS Invalid: &quot;function f() { 'use strict'; if (false) function foo() { };  }&quot;. Produced the following syntax error: &quot;SyntaxError: Function declarations are only allowed inside blocks or switch statements in strict mode.&quot;
+PASS Invalid: &quot;'use strict'; do function foo() { } while (false); &quot;. Produced the following syntax error: &quot;SyntaxError: Function declarations are only allowed inside blocks or switch statements in strict mode.&quot;
+PASS Invalid: &quot;function f() { 'use strict'; do function foo() { } while (false);  }&quot;. Produced the following syntax error: &quot;SyntaxError: Function declarations are only allowed inside blocks or switch statements in strict mode.&quot;
+PASS Invalid: &quot;while (false) function foo() { }; &quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
+PASS Invalid: &quot;function f() { while (false) function foo() { };  }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
</ins><span class="cx"> PASS Valid:   &quot;if (false) function foo() { }; &quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { if (false) function foo() { };  }&quot;
</span><del>-PASS Invalid: &quot;do function foo() { } while (false); &quot;
-PASS Invalid: &quot;function f() { do function foo() { } while (false);  }&quot;
-PASS Invalid: &quot;if (cond) label: function foo() { }&quot;
-PASS Invalid: &quot;function f() { if (cond) label: function foo() { } }&quot;
-PASS Invalid: &quot;while (true) { while (true) function bar() { } }&quot;
-PASS Invalid: &quot;function f() { while (true) { while (true) function bar() { } } }&quot;
-PASS Invalid: &quot;with ({}) function bar() { }&quot;
-PASS Invalid: &quot;function f() { with ({}) function bar() { } }&quot;
</del><ins>+PASS Invalid: &quot;do function foo() { } while (false); &quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
+PASS Invalid: &quot;function f() { do function foo() { } while (false);  }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
+PASS Invalid: &quot;if (cond) label: function foo() { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
+PASS Invalid: &quot;function f() { if (cond) label: function foo() { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
+PASS Invalid: &quot;while (true) { while (true) function bar() { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
+PASS Invalid: &quot;function f() { while (true) { while (true) function bar() { } } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
+PASS Invalid: &quot;with ({}) function bar() { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
+PASS Invalid: &quot;function f() { with ({}) function bar() { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
</ins><span class="cx"> PASS Valid:   &quot;function bar() { label: function baz() { } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function bar() { label: function baz() { } } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function bar() { let: function baz() { } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function bar() { let: function baz() { } } }&quot;
</span><del>-PASS Invalid: &quot;function bar() { 'use strict'; let: function baz() { } }&quot;
-PASS Invalid: &quot;function f() { function bar() { 'use strict'; let: function baz() { } } }&quot;
</del><ins>+PASS Invalid: &quot;function bar() { 'use strict'; let: function baz() { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ':'. Expected a parameter pattern or a ')' in parameter list.&quot;
+PASS Invalid: &quot;function f() { function bar() { 'use strict'; let: function baz() { } } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ':'. Expected a parameter pattern or a ')' in parameter list.&quot;
</ins><span class="cx"> PASS Valid:   &quot;function bar() { yield: function baz() { } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function bar() { yield: function baz() { } } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function bar() { label: label2: function baz() { } }&quot;
</span><span class="lines">@@ -782,16 +782,16 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { function bar() { label: label2: function baz() { } } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function bar() { label: label2: label3: function baz() { } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function bar() { label: label2: label3: function baz() { } } }&quot;
</span><del>-PASS Invalid: &quot;function bar() { label: label2: label weird: function baz() { } }&quot;
-PASS Invalid: &quot;function f() { function bar() { label: label2: label weird: function baz() { } } }&quot;
</del><ins>+PASS Invalid: &quot;function bar() { label: label2: label weird: function baz() { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'weird'&quot;
+PASS Invalid: &quot;function f() { function bar() { label: label2: label weird: function baz() { } } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'weird'&quot;
</ins><span class="cx"> PASS Valid:   &quot;function bar() { label: label2: label3: function baz() { } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function bar() { label: label2: label3: function baz() { } } }&quot;
</span><del>-PASS Invalid: &quot;function bar() { 'use strict'; label: label2: label 3: function baz() { } }&quot;
-PASS Invalid: &quot;function f() { function bar() { 'use strict'; label: label2: label 3: function baz() { } } }&quot;
-PASS Invalid: &quot;function bar() { if (cond) label: function foo() { } }&quot;
-PASS Invalid: &quot;function f() { function bar() { if (cond) label: function foo() { } } }&quot;
-PASS Invalid: &quot;function bar() { while (cond) label: function foo() { } }&quot;
-PASS Invalid: &quot;function f() { function bar() { while (cond) label: function foo() { } } }&quot;
</del><ins>+PASS Invalid: &quot;function bar() { 'use strict'; label: label2: label 3: function baz() { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected number '3'&quot;
+PASS Invalid: &quot;function f() { function bar() { 'use strict'; label: label2: label 3: function baz() { } } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected number '3'&quot;
+PASS Invalid: &quot;function bar() { if (cond) label: function foo() { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
+PASS Invalid: &quot;function f() { function bar() { if (cond) label: function foo() { } } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
+PASS Invalid: &quot;function bar() { while (cond) label: function foo() { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
+PASS Invalid: &quot;function f() { function bar() { while (cond) label: function foo() { } } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program.&quot;
</ins><span class="cx"> PASS Valid:   &quot;label: function foo() { }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { label: function foo() { } }&quot;
</span><span class="cx"> PASS Valid:   &quot;let: function foo() { }&quot;
</span><span class="lines">@@ -800,8 +800,8 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { yield: function foo() { } }&quot;
</span><span class="cx"> PASS Valid:   &quot;yield: let: function foo() { }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { yield: let: function foo() { } }&quot;
</span><del>-PASS Invalid: &quot;'use strict'; yield: let: function foo() { }&quot;
-PASS Invalid: &quot;function f() { 'use strict'; yield: let: function foo() { } }&quot;
</del><ins>+PASS Invalid: &quot;'use strict'; yield: let: function foo() { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'let'&quot;
+PASS Invalid: &quot;function f() { 'use strict'; yield: let: function foo() { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'let'&quot;
</ins><span class="cx"> PASS Valid:   &quot;var str = &quot;'use strict'; function f1(a) { function f2(b) { return b; } return f2(a); } return f1(arguments[0]);&quot;; var foo = new Function(str); foo(5);&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { var str = &quot;'use strict'; function f1(a) { function f2(b) { return b; } return f2(a); } return f1(arguments[0]);&quot;; var foo = new Function(str); foo(5); }&quot;
</span><span class="cx"> PASS Valid:   &quot;var str = &quot;'use strict'; function f1(a) { function f2(b) { function f3(c) { return c; } return f3(b); } return f2(a); } return f1(arguments[0]);&quot;; var foo = new Function(str); foo(5);&quot;
</span><span class="lines">@@ -836,10 +836,10 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { ([1 || 1].a = 1) }&quot;
</span><span class="cx"> PASS Valid:   &quot;({a: 1 || 1}.a = 1)&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { ({a: 1 || 1}.a = 1) }&quot;
</span><del>-PASS Invalid: &quot;var a.b = c&quot;
-PASS Invalid: &quot;function f() { var a.b = c }&quot;
-PASS Invalid: &quot;var a.b;&quot;
-PASS Invalid: &quot;function f() { var a.b; }&quot;
</del><ins>+PASS Invalid: &quot;var a.b = c&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '.'. Expected ';' after variable declaration.&quot;
+PASS Invalid: &quot;function f() { var a.b = c }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '.'. Expected ';' after variable declaration.&quot;
+PASS Invalid: &quot;var a.b;&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '.'. Expected ';' after variable declaration.&quot;
+PASS Invalid: &quot;function f() { var a.b; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '.'. Expected ';' after variable declaration.&quot;
</ins><span class="cx"> PASS Valid:   &quot;for (of of of){}&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { for (of of of){} }&quot;
</span><span class="cx"> PASS Valid:   &quot;for (of; of; of){}&quot; with ReferenceError
</span><span class="lines">@@ -848,10 +848,10 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { for (var of of of){} }&quot;
</span><span class="cx"> PASS Valid:   &quot;for (var of; of; of){}&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { for (var of; of; of){} }&quot;
</span><del>-PASS Invalid: &quot;for (var of.of of of){}&quot;
-PASS Invalid: &quot;function f() { for (var of.of of of){} }&quot;
-PASS Invalid: &quot;for (var of[of] of of){}&quot;
-PASS Invalid: &quot;function f() { for (var of[of] of of){} }&quot;
</del><ins>+PASS Invalid: &quot;for (var of.of of of){}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '.'. Expected either 'in' or 'of' in enumeration syntax.&quot;
+PASS Invalid: &quot;function f() { for (var of.of of of){} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '.'. Expected either 'in' or 'of' in enumeration syntax.&quot;
+PASS Invalid: &quot;for (var of[of] of of){}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '['. Expected either 'in' or 'of' in enumeration syntax.&quot;
+PASS Invalid: &quot;function f() { for (var of[of] of of){} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '['. Expected either 'in' or 'of' in enumeration syntax.&quot;
</ins><span class="cx"> PASS Valid:   &quot;for (of.of of of){}&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { for (of.of of of){} }&quot;
</span><span class="cx"> PASS Valid:   &quot;for (of[of] of of){}&quot; with ReferenceError
</span><span class="lines">@@ -864,14 +864,14 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { for (of in of){} }&quot;
</span><span class="cx"> PASS Valid:   &quot;for (var of in of){}&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { for (var of in of){} }&quot;
</span><del>-PASS Invalid: &quot;for (var of.of in of){}&quot;
-PASS Invalid: &quot;function f() { for (var of.of in of){} }&quot;
</del><ins>+PASS Invalid: &quot;for (var of.of in of){}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '.'. Expected either 'in' or 'of' in enumeration syntax.&quot;
+PASS Invalid: &quot;function f() { for (var of.of in of){} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '.'. Expected either 'in' or 'of' in enumeration syntax.&quot;
</ins><span class="cx"> PASS Valid:   &quot;for (of.of in of){}&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { for (of.of in of){} }&quot;
</span><span class="cx"> PASS Valid:   &quot;for (of[of] in of){}&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { for (of[of] in of){} }&quot;
</span><del>-PASS Invalid: &quot;for (var of[of] in of){}&quot;
-PASS Invalid: &quot;function f() { for (var of[of] in of){} }&quot;
</del><ins>+PASS Invalid: &quot;for (var of[of] in of){}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '['. Expected either 'in' or 'of' in enumeration syntax.&quot;
+PASS Invalid: &quot;function f() { for (var of[of] in of){} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '['. Expected either 'in' or 'of' in enumeration syntax.&quot;
</ins><span class="cx"> PASS Valid:   &quot;for (var [of] in of){}&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { for (var [of] in of){} }&quot;
</span><span class="cx"> PASS Valid:   &quot;for (var {of} in of){}&quot;
</span><span class="lines">@@ -880,28 +880,28 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { for ([of] in of){} }&quot;
</span><span class="cx"> PASS Valid:   &quot;for ({of} in of){}&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { for ({of} in of){} }&quot;
</span><del>-PASS Invalid: &quot;for (var of = x of of){}&quot;
-PASS Invalid: &quot;function f() { for (var of = x of of){} }&quot;
-PASS Invalid: &quot;for (var {of} = x of of){}&quot;
-PASS Invalid: &quot;function f() { for (var {of} = x of of){} }&quot;
-PASS Invalid: &quot;for (var [of] = x of of){}&quot;
-PASS Invalid: &quot;function f() { for (var [of] = x of of){} }&quot;
-PASS Invalid: &quot;for (of of of of){}&quot;
-PASS Invalid: &quot;function f() { for (of of of of){} }&quot;
-PASS Invalid: &quot;for (of of; of; of){}&quot;
-PASS Invalid: &quot;function f() { for (of of; of; of){} }&quot;
-PASS Invalid: &quot;for (of of []; of; of){}&quot;
-PASS Invalid: &quot;function f() { for (of of []; of; of){} }&quot;
-PASS Invalid: &quot;for (of of){}&quot;
-PASS Invalid: &quot;function f() { for (of of){} }&quot;
-PASS Invalid: &quot;for (var of of){}&quot;
-PASS Invalid: &quot;function f() { for (var of of){} }&quot;
-PASS Invalid: &quot;for (of of in of){}&quot;
-PASS Invalid: &quot;function f() { for (of of in of){} }&quot;
-PASS Invalid: &quot;for (of in){}&quot;
-PASS Invalid: &quot;function f() { for (of in){} }&quot;
-PASS Invalid: &quot;for (var of in){}&quot;
-PASS Invalid: &quot;function f() { for (var of in){} }&quot;
</del><ins>+PASS Invalid: &quot;for (var of = x of of){}&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-of loop header.&quot;
+PASS Invalid: &quot;function f() { for (var of = x of of){} }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-of loop header.&quot;
+PASS Invalid: &quot;for (var {of} = x of of){}&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-of loop header.&quot;
+PASS Invalid: &quot;function f() { for (var {of} = x of of){} }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-of loop header.&quot;
+PASS Invalid: &quot;for (var [of] = x of of){}&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-of loop header.&quot;
+PASS Invalid: &quot;function f() { for (var [of] = x of of){} }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot assign to the loop variable inside a for-of loop header.&quot;
+PASS Invalid: &quot;for (of of of of){}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'of'. Expected ')' to end a for-of header.&quot;
+PASS Invalid: &quot;function f() { for (of of of of){} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'of'. Expected ')' to end a for-of header.&quot;
+PASS Invalid: &quot;for (of of; of; of){}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ';'&quot;
+PASS Invalid: &quot;function f() { for (of of; of; of){} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ';'&quot;
+PASS Invalid: &quot;for (of of []; of; of){}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ';'. Expected ')' to end a for-of header.&quot;
+PASS Invalid: &quot;function f() { for (of of []; of; of){} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ';'. Expected ')' to end a for-of header.&quot;
+PASS Invalid: &quot;for (of of){}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;function f() { for (of of){} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;for (var of of){}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;function f() { for (var of of){} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;for (of of in of){}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'in'&quot;
+PASS Invalid: &quot;function f() { for (of of in of){} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected keyword 'in'&quot;
+PASS Invalid: &quot;for (of in){}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;function f() { for (of in){} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;for (var of in){}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;function f() { for (var of in){} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
</ins><span class="cx"> spread operator and destructuring
</span><span class="cx"> PASS Valid:   &quot;foo(...bar)&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { foo(...bar) }&quot;
</span><span class="lines">@@ -915,18 +915,18 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { new o.foo(...bar) }&quot;
</span><span class="cx"> PASS Valid:   &quot;new o[foo](...bar)&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { new o[foo](...bar) }&quot;
</span><del>-PASS Invalid: &quot;foo(...)&quot;
-PASS Invalid: &quot;function f() { foo(...) }&quot;
-PASS Invalid: &quot;o.foo(...)&quot;
-PASS Invalid: &quot;function f() { o.foo(...) }&quot;
-PASS Invalid: &quot;o[foo](...)&quot;
-PASS Invalid: &quot;function f() { o[foo](...) }&quot;
-PASS Invalid: &quot;foo(bar...)&quot;
-PASS Invalid: &quot;function f() { foo(bar...) }&quot;
-PASS Invalid: &quot;o.foo(bar...)&quot;
-PASS Invalid: &quot;function f() { o.foo(bar...) }&quot;
-PASS Invalid: &quot;o[foo](bar...)&quot;
-PASS Invalid: &quot;function f() { o[foo](bar...) }&quot;
</del><ins>+PASS Invalid: &quot;foo(...)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;function f() { foo(...) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;o.foo(...)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;function f() { o.foo(...) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;o[foo](...)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;function f() { o[foo](...) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;foo(bar...)&quot;. Produced the following syntax error: &quot;SyntaxError: The '...' operator should come before the target expression.&quot;
+PASS Invalid: &quot;function f() { foo(bar...) }&quot;. Produced the following syntax error: &quot;SyntaxError: The '...' operator should come before the target expression.&quot;
+PASS Invalid: &quot;o.foo(bar...)&quot;. Produced the following syntax error: &quot;SyntaxError: The '...' operator should come before the target expression.&quot;
+PASS Invalid: &quot;function f() { o.foo(bar...) }&quot;. Produced the following syntax error: &quot;SyntaxError: The '...' operator should come before the target expression.&quot;
+PASS Invalid: &quot;o[foo](bar...)&quot;. Produced the following syntax error: &quot;SyntaxError: The '...' operator should come before the target expression.&quot;
+PASS Invalid: &quot;function f() { o[foo](bar...) }&quot;. Produced the following syntax error: &quot;SyntaxError: The '...' operator should come before the target expression.&quot;
</ins><span class="cx"> PASS Valid:   &quot;foo(a,...bar)&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { foo(a,...bar) }&quot;
</span><span class="cx"> PASS Valid:   &quot;o.foo(a,...bar)&quot; with ReferenceError
</span><span class="lines">@@ -1003,88 +1003,88 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { ({a}=1=1) }&quot;
</span><span class="cx"> PASS Valid:   &quot;({a:a}=1=1)&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { ({a:a}=1=1) }&quot;
</span><del>-PASS Invalid: &quot;var {x}&quot;
-PASS Invalid: &quot;function f() { var {x} }&quot;
-PASS Invalid: &quot;var {x, y}&quot;
-PASS Invalid: &quot;function f() { var {x, y} }&quot;
-PASS Invalid: &quot;var {x} = 20, {x, y}&quot;
-PASS Invalid: &quot;function f() { var {x} = 20, {x, y} }&quot;
-PASS Invalid: &quot;var {foo:bar, bar:baz}&quot;
-PASS Invalid: &quot;function f() { var {foo:bar, bar:baz} }&quot;
-PASS Invalid: &quot;var [x]&quot;
-PASS Invalid: &quot;function f() { var [x] }&quot;
-PASS Invalid: &quot;var [x, y]&quot;
-PASS Invalid: &quot;function f() { var [x, y] }&quot;
-PASS Invalid: &quot;var [x] = [], [x, y]&quot;
-PASS Invalid: &quot;function f() { var [x] = [], [x, y] }&quot;
</del><ins>+PASS Invalid: &quot;var {x}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { var {x} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected an initializer in destructuring variable declaration.&quot;
+PASS Invalid: &quot;var {x, y}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { var {x, y} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected an initializer in destructuring variable declaration.&quot;
+PASS Invalid: &quot;var {x} = 20, {x, y}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { var {x} = 20, {x, y} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected an initializer in destructuring variable declaration.&quot;
+PASS Invalid: &quot;var {foo:bar, bar:baz}&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { var {foo:bar, bar:baz} }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected an initializer in destructuring variable declaration.&quot;
+PASS Invalid: &quot;var [x]&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { var [x] }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected an initializer in destructuring variable declaration.&quot;
+PASS Invalid: &quot;var [x, y]&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { var [x, y] }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected an initializer in destructuring variable declaration.&quot;
+PASS Invalid: &quot;var [x] = [], [x, y]&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { var [x] = [], [x, y] }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'. Expected an initializer in destructuring variable declaration.&quot;
</ins><span class="cx"> PASS Valid:   &quot;({get x(){}})&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { ({get x(){}}) }&quot;
</span><span class="cx"> PASS Valid:   &quot;({set x(x){}})&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { ({set x(x){}}) }&quot;
</span><del>-PASS Invalid: &quot;({get x(a){}})&quot;
-PASS Invalid: &quot;function f() { ({get x(a){}}) }&quot;
-PASS Invalid: &quot;({get x(a,b){}})&quot;
-PASS Invalid: &quot;function f() { ({get x(a,b){}}) }&quot;
-PASS Invalid: &quot;({set x(){}})&quot;
-PASS Invalid: &quot;function f() { ({set x(){}}) }&quot;
-PASS Invalid: &quot;({set x(a,b){}})&quot;
-PASS Invalid: &quot;function f() { ({set x(a,b){}}) }&quot;
</del><ins>+PASS Invalid: &quot;({get x(a){}})&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'a'. getter functions must have no parameters.&quot;
+PASS Invalid: &quot;function f() { ({get x(a){}}) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'a'. getter functions must have no parameters.&quot;
+PASS Invalid: &quot;({get x(a,b){}})&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'a'. getter functions must have no parameters.&quot;
+PASS Invalid: &quot;function f() { ({get x(a,b){}}) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected identifier 'a'. getter functions must have no parameters.&quot;
+PASS Invalid: &quot;({set x(){}})&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'. setter functions must have one parameter.&quot;
+PASS Invalid: &quot;function f() { ({set x(){}}) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'. setter functions must have one parameter.&quot;
+PASS Invalid: &quot;({set x(a,b){}})&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','. setter functions must have one parameter.&quot;
+PASS Invalid: &quot;function f() { ({set x(a,b){}}) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','. setter functions must have one parameter.&quot;
</ins><span class="cx"> PASS Valid:   &quot;({get [x](){}})&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { ({get [x](){}}) }&quot;
</span><del>-PASS Invalid: &quot;({get [x (){}})&quot;
-PASS Invalid: &quot;function f() { ({get [x (){}}) }&quot;
-PASS Invalid: &quot;({set [x](){}})&quot;
-PASS Invalid: &quot;function f() { ({set [x](){}}) }&quot;
</del><ins>+PASS Invalid: &quot;({get [x (){}})&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '{'. Expected ']' to end a computed property name.&quot;
+PASS Invalid: &quot;function f() { ({get [x (){}}) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '{'. Expected ']' to end a computed property name.&quot;
+PASS Invalid: &quot;({set [x](){}})&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'. setter functions must have one parameter.&quot;
+PASS Invalid: &quot;function f() { ({set [x](){}}) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'. setter functions must have one parameter.&quot;
</ins><span class="cx"> PASS Valid:   &quot;({set [x](x){}})&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { ({set [x](x){}}) }&quot;
</span><del>-PASS Invalid: &quot;({set [x (x){}})&quot;
-PASS Invalid: &quot;function f() { ({set [x (x){}}) }&quot;
</del><ins>+PASS Invalid: &quot;({set [x (x){}})&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '{'. Expected ']' to end a computed property name.&quot;
+PASS Invalid: &quot;function f() { ({set [x (x){}}) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '{'. Expected ']' to end a computed property name.&quot;
</ins><span class="cx"> PASS Valid:   &quot;({set foo(x) { } })&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { ({set foo(x) { } }) }&quot;
</span><span class="cx"> PASS Valid:   &quot;({set foo(x) { 'use strict'; } })&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { ({set foo(x) { 'use strict'; } }) }&quot;
</span><del>-PASS Invalid: &quot;({set foo(x = 20) { 'use strict'; } })&quot;
-PASS Invalid: &quot;function f() { ({set foo(x = 20) { 'use strict'; } }) }&quot;
-PASS Invalid: &quot;({set foo({x}) { 'use strict'; } })&quot;
-PASS Invalid: &quot;function f() { ({set foo({x}) { 'use strict'; } }) }&quot;
-PASS Invalid: &quot;({set foo([x]) { 'use strict'; } })&quot;
-PASS Invalid: &quot;function f() { ({set foo([x]) { 'use strict'; } }) }&quot;
-PASS Invalid: &quot;({set foo(...x) {} })&quot;
-PASS Invalid: &quot;function f() { ({set foo(...x) {} }) }&quot;
</del><ins>+PASS Invalid: &quot;({set foo(x = 20) { 'use strict'; } })&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { ({set foo(x = 20) { 'use strict'; } }) }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;({set foo({x}) { 'use strict'; } })&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { ({set foo({x}) { 'use strict'; } }) }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;({set foo([x]) { 'use strict'; } })&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { ({set foo([x]) { 'use strict'; } }) }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;({set foo(...x) {} })&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '...'. Expected a parameter pattern or a ')' in parameter list.&quot;
+PASS Invalid: &quot;function f() { ({set foo(...x) {} }) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '...'. Expected a parameter pattern or a ')' in parameter list.&quot;
</ins><span class="cx"> PASS Valid:   &quot;class Foo { set v(z) { } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { class Foo { set v(z) { } } }&quot;
</span><span class="cx"> PASS Valid:   &quot;class Foo { set v(z) { 'use strict'; } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { class Foo { set v(z) { 'use strict'; } } }&quot;
</span><del>-PASS Invalid: &quot;class Foo { set v(z = 50) { 'use strict'; } }&quot;
-PASS Invalid: &quot;function f() { class Foo { set v(z = 50) { 'use strict'; } } }&quot;
-PASS Invalid: &quot;class Foo { set v({z}) { 'use strict'; } }&quot;
-PASS Invalid: &quot;function f() { class Foo { set v({z}) { 'use strict'; } } }&quot;
-PASS Invalid: &quot;class Foo { set v([z]) { 'use strict'; } }&quot;
-PASS Invalid: &quot;function f() { class Foo { set v([z]) { 'use strict'; } } }&quot;
-PASS Invalid: &quot;class Foo { set v(...z) { } }&quot;
-PASS Invalid: &quot;function f() { class Foo { set v(...z) { } } }&quot;
-PASS Invalid: &quot;class foo { set y([x, y, x]) { } }&quot;
-PASS Invalid: &quot;function f() { class foo { set y([x, y, x]) { } } }&quot;
-PASS Invalid: &quot;class foo { set y([x, y, {x}]) { } }&quot;
-PASS Invalid: &quot;function f() { class foo { set y([x, y, {x}]) { } } }&quot;
-PASS Invalid: &quot;class foo { set y({x, x}) { } }&quot;
-PASS Invalid: &quot;function f() { class foo { set y({x, x}) { } } }&quot;
-PASS Invalid: &quot;class foo { set y({x, field: {x}}) { } }&quot;
-PASS Invalid: &quot;function f() { class foo { set y({x, field: {x}}) { } } }&quot;
</del><ins>+PASS Invalid: &quot;class Foo { set v(z = 50) { 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { class Foo { set v(z = 50) { 'use strict'; } } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;class Foo { set v({z}) { 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { class Foo { set v({z}) { 'use strict'; } } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;class Foo { set v([z]) { 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { class Foo { set v([z]) { 'use strict'; } } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;class Foo { set v(...z) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '...'. Expected a parameter pattern or a ')' in parameter list.&quot;
+PASS Invalid: &quot;function f() { class Foo { set v(...z) { } } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '...'. Expected a parameter pattern or a ')' in parameter list.&quot;
+PASS Invalid: &quot;class foo { set y([x, y, x]) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a parameter named 'x' in strict mode as it has already been declared.&quot;
+PASS Invalid: &quot;function f() { class foo { set y([x, y, x]) { } } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a parameter named 'x' in strict mode as it has already been declared.&quot;
+PASS Invalid: &quot;class foo { set y([x, y, {x}]) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a parameter named 'x' in strict mode as it has already been declared.&quot;
+PASS Invalid: &quot;function f() { class foo { set y([x, y, {x}]) { } } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a parameter named 'x' in strict mode as it has already been declared.&quot;
+PASS Invalid: &quot;class foo { set y({x, x}) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a parameter named 'x' in strict mode as it has already been declared.&quot;
+PASS Invalid: &quot;function f() { class foo { set y({x, x}) { } } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a parameter named 'x' in strict mode as it has already been declared.&quot;
+PASS Invalid: &quot;class foo { set y({x, field: {x}}) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a parameter named 'x' in strict mode as it has already been declared.&quot;
+PASS Invalid: &quot;function f() { class foo { set y({x, field: {x}}) { } } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot declare a parameter named 'x' in strict mode as it has already been declared.&quot;
</ins><span class="cx"> PASS Valid:   &quot;class foo { set y({x, field: {xx}}) { } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { class foo { set y({x, field: {xx}}) { } } }&quot;
</span><del>-PASS Invalid: &quot;({[...x]: 1})&quot;
-PASS Invalid: &quot;function f() { ({[...x]: 1}) }&quot;
-PASS Invalid: &quot;function f({a, a}) {}&quot;
-PASS Invalid: &quot;function f() { function f({a, a}) {} }&quot;
-PASS Invalid: &quot;function f({a}, a) {}&quot;
-PASS Invalid: &quot;function f() { function f({a}, a) {} }&quot;
-PASS Invalid: &quot;function f([b, b]) {}&quot;
-PASS Invalid: &quot;function f() { function f([b, b]) {} }&quot;
-PASS Invalid: &quot;function f([b], b) {}&quot;
-PASS Invalid: &quot;function f() { function f([b], b) {} }&quot;
-PASS Invalid: &quot;function f({a: {b}}, b) {}&quot;
-PASS Invalid: &quot;function f() { function f({a: {b}}, b) {} }&quot;
</del><ins>+PASS Invalid: &quot;({[...x]: 1})&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '...'&quot;
+PASS Invalid: &quot;function f() { ({[...x]: 1}) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '...'&quot;
+PASS Invalid: &quot;function f({a, a}) {}&quot;. Produced the following syntax error: &quot;SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters.&quot;
+PASS Invalid: &quot;function f() { function f({a, a}) {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters.&quot;
+PASS Invalid: &quot;function f({a}, a) {}&quot;. Produced the following syntax error: &quot;SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters.&quot;
+PASS Invalid: &quot;function f() { function f({a}, a) {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters.&quot;
+PASS Invalid: &quot;function f([b, b]) {}&quot;. Produced the following syntax error: &quot;SyntaxError: Duplicate parameter 'b' not allowed in function with destructuring parameters.&quot;
+PASS Invalid: &quot;function f() { function f([b, b]) {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Duplicate parameter 'b' not allowed in function with destructuring parameters.&quot;
+PASS Invalid: &quot;function f([b], b) {}&quot;. Produced the following syntax error: &quot;SyntaxError: Duplicate parameter 'b' not allowed in function with destructuring parameters.&quot;
+PASS Invalid: &quot;function f() { function f([b], b) {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Duplicate parameter 'b' not allowed in function with destructuring parameters.&quot;
+PASS Invalid: &quot;function f({a: {b}}, b) {}&quot;. Produced the following syntax error: &quot;SyntaxError: Duplicate parameter 'b' not allowed in function with destructuring parameters.&quot;
+PASS Invalid: &quot;function f() { function f({a: {b}}, b) {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Duplicate parameter 'b' not allowed in function with destructuring parameters.&quot;
</ins><span class="cx"> PASS Valid:   &quot;function f(a, b = 20) {}&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function f(a, b = 20) {} }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f(a = 20, b = a) {}&quot;
</span><span class="lines">@@ -1093,64 +1093,64 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { function f({a = 20} = {a: 40}, b = a) {} }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f([a,b,c] = [1,2,3]) {}&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function f([a,b,c] = [1,2,3]) {} }&quot;
</span><del>-PASS Invalid: &quot;function f(a, a=20) {}&quot;
-PASS Invalid: &quot;function f() { function f(a, a=20) {} }&quot;
-PASS Invalid: &quot;function f({a} = 20, a=20) {}&quot;
-PASS Invalid: &quot;function f() { function f({a} = 20, a=20) {} }&quot;
-PASS Invalid: &quot;function f([a,b,a] = [1,2,3]) {}&quot;
-PASS Invalid: &quot;function f() { function f([a,b,a] = [1,2,3]) {} }&quot;
-PASS Invalid: &quot;function f([a,b,c] = [1,2,3], a) {}&quot;
-PASS Invalid: &quot;function f() { function f([a,b,c] = [1,2,3], a) {} }&quot;
-PASS Invalid: &quot;function f([a,b,c] = [1,2,3], {a}) {}&quot;
-PASS Invalid: &quot;function f() { function f([a,b,c] = [1,2,3], {a}) {} }&quot;
</del><ins>+PASS Invalid: &quot;function f(a, a=20) {}&quot;. Produced the following syntax error: &quot;SyntaxError: Duplicate parameter 'a' not allowed in function with default parameter values.&quot;
+PASS Invalid: &quot;function f() { function f(a, a=20) {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Duplicate parameter 'a' not allowed in function with default parameter values.&quot;
+PASS Invalid: &quot;function f({a} = 20, a=20) {}&quot;. Produced the following syntax error: &quot;SyntaxError: Duplicate parameter 'a' not allowed in function with default parameter values.&quot;
+PASS Invalid: &quot;function f() { function f({a} = 20, a=20) {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Duplicate parameter 'a' not allowed in function with default parameter values.&quot;
+PASS Invalid: &quot;function f([a,b,a] = [1,2,3]) {}&quot;. Produced the following syntax error: &quot;SyntaxError: Duplicate parameter 'a' not allowed in function with default parameter values.&quot;
+PASS Invalid: &quot;function f() { function f([a,b,a] = [1,2,3]) {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Duplicate parameter 'a' not allowed in function with default parameter values.&quot;
+PASS Invalid: &quot;function f([a,b,c] = [1,2,3], a) {}&quot;. Produced the following syntax error: &quot;SyntaxError: Duplicate parameter 'a' not allowed in function with default parameter values.&quot;
+PASS Invalid: &quot;function f() { function f([a,b,c] = [1,2,3], a) {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Duplicate parameter 'a' not allowed in function with default parameter values.&quot;
+PASS Invalid: &quot;function f([a,b,c] = [1,2,3], {a}) {}&quot;. Produced the following syntax error: &quot;SyntaxError: Duplicate parameter 'a' not allowed in function with default parameter values.&quot;
+PASS Invalid: &quot;function f() { function f([a,b,c] = [1,2,3], {a}) {} }&quot;. Produced the following syntax error: &quot;SyntaxError: Duplicate parameter 'a' not allowed in function with default parameter values.&quot;
</ins><span class="cx"> PASS Valid:   &quot;( function(){ return this || eval('this'); }().x = 'y' )&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { ( function(){ return this || eval('this'); }().x = 'y' ) }&quot;
</span><del>-PASS Invalid: &quot;function(){ return this || eval('this'); }().x = 'y'&quot;
-PASS Invalid: &quot;function f() { function(){ return this || eval('this'); }().x = 'y' }&quot;
-PASS Invalid: &quot;1 % +&quot;
-PASS Invalid: &quot;function f() { 1 % + }&quot;
-PASS Invalid: &quot;1 % -&quot;
-PASS Invalid: &quot;function f() { 1 % - }&quot;
-PASS Invalid: &quot;1 % typeof&quot;
-PASS Invalid: &quot;function f() { 1 % typeof }&quot;
-PASS Invalid: &quot;1 % void&quot;
-PASS Invalid: &quot;function f() { 1 % void }&quot;
-PASS Invalid: &quot;1 % !&quot;
-PASS Invalid: &quot;function f() { 1 % ! }&quot;
-PASS Invalid: &quot;1 % ~&quot;
-PASS Invalid: &quot;function f() { 1 % ~ }&quot;
-PASS Invalid: &quot;1 % delete&quot;
-PASS Invalid: &quot;function f() { 1 % delete }&quot;
-PASS Invalid: &quot;1 % ++&quot;
-PASS Invalid: &quot;function f() { 1 % ++ }&quot;
-PASS Invalid: &quot;1 % --&quot;
-PASS Invalid: &quot;function f() { 1 % -- }&quot;
</del><ins>+PASS Invalid: &quot;function(){ return this || eval('this'); }().x = 'y'&quot;. Produced the following syntax error: &quot;SyntaxError: Function statements must have a name.&quot;
+PASS Invalid: &quot;function f() { function(){ return this || eval('this'); }().x = 'y' }&quot;. Produced the following syntax error: &quot;SyntaxError: Function statements must have a name.&quot;
+PASS Invalid: &quot;1 % +&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { 1 % + }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'&quot;
+PASS Invalid: &quot;1 % -&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { 1 % - }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'&quot;
+PASS Invalid: &quot;1 % typeof&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { 1 % typeof }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'&quot;
+PASS Invalid: &quot;1 % void&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { 1 % void }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'&quot;
+PASS Invalid: &quot;1 % !&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { 1 % ! }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'&quot;
+PASS Invalid: &quot;1 % ~&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { 1 % ~ }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'&quot;
+PASS Invalid: &quot;1 % delete&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { 1 % delete }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'&quot;
+PASS Invalid: &quot;1 % ++&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { 1 % ++ }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'&quot;
+PASS Invalid: &quot;1 % --&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { 1 % -- }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'&quot;
</ins><span class="cx"> PASS Invalid: &quot;1 % 
</span><del>-++&quot;
</del><ins>+++&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
</ins><span class="cx"> PASS Invalid: &quot;function f() { 1 % 
</span><del>-++ }&quot;
</del><ins>+++ }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'&quot;
</ins><span class="cx"> PASS Invalid: &quot;1 % 
</span><del>---&quot;
</del><ins>+--&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
</ins><span class="cx"> PASS Invalid: &quot;function f() { 1 % 
</span><del>--- }&quot;
-PASS Invalid: &quot;let {w} = (foo-=()), {} = (&quot;a&quot; ^= &quot;b&quot;);&quot;
-PASS Invalid: &quot;function f() { let {w} = (foo-=()), {} = (&quot;a&quot; ^= &quot;b&quot;); }&quot;
-PASS Invalid: &quot;const {w} = (foo-=()), {} = (&quot;a&quot; ^= &quot;b&quot;);&quot;
-PASS Invalid: &quot;function f() { const {w} = (foo-=()), {} = (&quot;a&quot; ^= &quot;b&quot;); }&quot;
-PASS Invalid: &quot;var {w} = (foo-=()), {} = (&quot;a&quot; ^= &quot;b&quot;);&quot;
-PASS Invalid: &quot;function f() { var {w} = (foo-=()), {} = (&quot;a&quot; ^= &quot;b&quot;); }&quot;
-PASS Invalid: &quot;let {w} = ();&quot;
-PASS Invalid: &quot;function f() { let {w} = (); }&quot;
-PASS Invalid: &quot;let {w} = 1234abc;&quot;
-PASS Invalid: &quot;function f() { let {w} = 1234abc; }&quot;
-PASS Invalid: &quot;const {w} = 1234abc;&quot;
-PASS Invalid: &quot;function f() { const {w} = 1234abc; }&quot;
-PASS Invalid: &quot;var {w} = 1234abc;&quot;
-PASS Invalid: &quot;function f() { var {w} = 1234abc; }&quot;
-PASS Invalid: &quot;var [...x = 20] = 20;&quot;
-PASS Invalid: &quot;function f() { var [...x = 20] = 20; }&quot;
-PASS Invalid: &quot;var [...[...x = 20]] = 20;&quot;
-PASS Invalid: &quot;function f() { var [...[...x = 20]] = 20; }&quot;
</del><ins>+-- }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '}'&quot;
+PASS Invalid: &quot;let {w} = (foo-=()), {} = (&quot;a&quot; ^= &quot;b&quot;);&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;function f() { let {w} = (foo-=()), {} = (&quot;a&quot; ^= &quot;b&quot;); }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;const {w} = (foo-=()), {} = (&quot;a&quot; ^= &quot;b&quot;);&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;function f() { const {w} = (foo-=()), {} = (&quot;a&quot; ^= &quot;b&quot;); }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;var {w} = (foo-=()), {} = (&quot;a&quot; ^= &quot;b&quot;);&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;function f() { var {w} = (foo-=()), {} = (&quot;a&quot; ^= &quot;b&quot;); }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;let {w} = ();&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;function f() { let {w} = (); }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;let {w} = 1234abc;&quot;. Produced the following syntax error: &quot;SyntaxError: No identifiers allowed directly after numeric literal&quot;
+PASS Invalid: &quot;function f() { let {w} = 1234abc; }&quot;. Produced the following syntax error: &quot;SyntaxError: No identifiers allowed directly after numeric literal&quot;
+PASS Invalid: &quot;const {w} = 1234abc;&quot;. Produced the following syntax error: &quot;SyntaxError: No identifiers allowed directly after numeric literal&quot;
+PASS Invalid: &quot;function f() { const {w} = 1234abc; }&quot;. Produced the following syntax error: &quot;SyntaxError: No identifiers allowed directly after numeric literal&quot;
+PASS Invalid: &quot;var {w} = 1234abc;&quot;. Produced the following syntax error: &quot;SyntaxError: No identifiers allowed directly after numeric literal&quot;
+PASS Invalid: &quot;function f() { var {w} = 1234abc; }&quot;. Produced the following syntax error: &quot;SyntaxError: No identifiers allowed directly after numeric literal&quot;
+PASS Invalid: &quot;var [...x = 20] = 20;&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '='. Expected a closing ']' following a rest element destructuring pattern.&quot;
+PASS Invalid: &quot;function f() { var [...x = 20] = 20; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '='. Expected a closing ']' following a rest element destructuring pattern.&quot;
+PASS Invalid: &quot;var [...[...x = 20]] = 20;&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '='. Expected a closing ']' following a rest element destructuring pattern.&quot;
+PASS Invalid: &quot;function f() { var [...[...x = 20]] = 20; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '='. Expected a closing ']' following a rest element destructuring pattern.&quot;
</ins><span class="cx"> PASS Valid:   &quot;var [...x] = 20;&quot; with TypeError
</span><span class="cx"> PASS Valid:   &quot;function f() { var [...x] = 20; }&quot;
</span><span class="cx"> PASS Valid:   &quot;var [...[...x]] = 20;&quot; with TypeError
</span><span class="lines">@@ -1165,10 +1165,10 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { var {x: [y, ...[...[...{z: [...z]}]]]} = 20 }&quot;
</span><span class="cx"> PASS Valid:   &quot;var {x: [y, {z: {z: [...z]}}]} = 20&quot; with TypeError
</span><span class="cx"> PASS Valid:   &quot;function f() { var {x: [y, {z: {z: [...z]}}]} = 20 }&quot;
</span><del>-PASS Invalid: &quot;var [...y, ...z] = 20&quot;
-PASS Invalid: &quot;function f() { var [...y, ...z] = 20 }&quot;
-PASS Invalid: &quot;var [...{...y}] = 20&quot;
-PASS Invalid: &quot;function f() { var [...{...y}] = 20 }&quot;
</del><ins>+PASS Invalid: &quot;var [...y, ...z] = 20&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','. Expected a closing ']' following a rest element destructuring pattern.&quot;
+PASS Invalid: &quot;function f() { var [...y, ...z] = 20 }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','. Expected a closing ']' following a rest element destructuring pattern.&quot;
+PASS Invalid: &quot;var [...{...y}] = 20&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '...'. Expected a property name.&quot;
+PASS Invalid: &quot;function f() { var [...{...y}] = 20 }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '...'. Expected a property name.&quot;
</ins><span class="cx"> Rest parameter
</span><span class="cx"> PASS Valid:   &quot;function foo(...a) { }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function foo(...a) { } }&quot;
</span><span class="lines">@@ -1178,50 +1178,50 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { function foo(a = 20, ...b) { } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function foo(a, b, c, d, e, f, g, ...h) { }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function foo(a, b, c, d, e, f, g, ...h) { } }&quot;
</span><del>-PASS Invalid: &quot;function foo(a, ...b, c) { }&quot;
-PASS Invalid: &quot;function f() { function foo(a, ...b, c) { } }&quot;
-PASS Invalid: &quot;function foo(a, ...b, ) { }&quot;
-PASS Invalid: &quot;function f() { function foo(a, ...b, ) { } }&quot;
-PASS Invalid: &quot;function foo(a, ...[b], ) { }&quot;
-PASS Invalid: &quot;function f() { function foo(a, ...[b], ) { } }&quot;
-PASS Invalid: &quot;function foo(a, ...{b}, ) { }&quot;
-PASS Invalid: &quot;function f() { function foo(a, ...{b}, ) { } }&quot;
-PASS Invalid: &quot;function foo(a, ...a) { }&quot;
-PASS Invalid: &quot;function f() { function foo(a, ...a) { } }&quot;
-PASS Invalid: &quot;function foo(...a, ...b) { }&quot;
-PASS Invalid: &quot;function f() { function foo(...a, ...b) { } }&quot;
-PASS Invalid: &quot;function foo(...b, ...b) { }&quot;
-PASS Invalid: &quot;function f() { function foo(...b, ...b) { } }&quot;
-PASS Invalid: &quot;function foo(...b  ...b) { }&quot;
-PASS Invalid: &quot;function f() { function foo(...b  ...b) { } }&quot;
-PASS Invalid: &quot;function foo(a, a, ...b) { }&quot;
-PASS Invalid: &quot;function f() { function foo(a, a, ...b) { } }&quot;
-PASS Invalid: &quot;function foo(a, ...{b} = 20) { }&quot;
-PASS Invalid: &quot;function f() { function foo(a, ...{b} = 20) { } }&quot;
-PASS Invalid: &quot;function foo(a, ...b = 20) { }&quot;
-PASS Invalid: &quot;function f() { function foo(a, ...b = 20) { } }&quot;
</del><ins>+PASS Invalid: &quot;function foo(a, ...b, c) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','. Rest parameter should be the last parameter in a function declaration.&quot;
+PASS Invalid: &quot;function f() { function foo(a, ...b, c) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','. Rest parameter should be the last parameter in a function declaration.&quot;
+PASS Invalid: &quot;function foo(a, ...b, ) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','. Rest parameter should be the last parameter in a function declaration.&quot;
+PASS Invalid: &quot;function f() { function foo(a, ...b, ) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','. Rest parameter should be the last parameter in a function declaration.&quot;
+PASS Invalid: &quot;function foo(a, ...[b], ) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','. Rest parameter should be the last parameter in a function declaration.&quot;
+PASS Invalid: &quot;function f() { function foo(a, ...[b], ) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','. Rest parameter should be the last parameter in a function declaration.&quot;
+PASS Invalid: &quot;function foo(a, ...{b}, ) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','. Rest parameter should be the last parameter in a function declaration.&quot;
+PASS Invalid: &quot;function f() { function foo(a, ...{b}, ) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','. Rest parameter should be the last parameter in a function declaration.&quot;
+PASS Invalid: &quot;function foo(a, ...a) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Duplicate parameter 'a' not allowed in function with a rest parameter.&quot;
+PASS Invalid: &quot;function f() { function foo(a, ...a) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Duplicate parameter 'a' not allowed in function with a rest parameter.&quot;
+PASS Invalid: &quot;function foo(...a, ...b) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','. Rest parameter should be the last parameter in a function declaration.&quot;
+PASS Invalid: &quot;function f() { function foo(...a, ...b) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','. Rest parameter should be the last parameter in a function declaration.&quot;
+PASS Invalid: &quot;function foo(...b, ...b) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','. Rest parameter should be the last parameter in a function declaration.&quot;
+PASS Invalid: &quot;function f() { function foo(...b, ...b) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ','. Rest parameter should be the last parameter in a function declaration.&quot;
+PASS Invalid: &quot;function foo(...b  ...b) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '...'. Expected a ')' or a ',' after a parameter declaration.&quot;
+PASS Invalid: &quot;function f() { function foo(...b  ...b) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '...'. Expected a ')' or a ',' after a parameter declaration.&quot;
+PASS Invalid: &quot;function foo(a, a, ...b) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Duplicate parameter 'a' not allowed in function with a rest parameter.&quot;
+PASS Invalid: &quot;function f() { function foo(a, a, ...b) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Duplicate parameter 'a' not allowed in function with a rest parameter.&quot;
+PASS Invalid: &quot;function foo(a, ...{b} = 20) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '='. Expected a ')' or a ',' after a parameter declaration.&quot;
+PASS Invalid: &quot;function f() { function foo(a, ...{b} = 20) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '='. Expected a ')' or a ',' after a parameter declaration.&quot;
+PASS Invalid: &quot;function foo(a, ...b = 20) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '='. Expected a ')' or a ',' after a parameter declaration.&quot;
+PASS Invalid: &quot;function f() { function foo(a, ...b = 20) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '='. Expected a ')' or a ',' after a parameter declaration.&quot;
</ins><span class="cx"> PASS Valid:   &quot;function foo(...{b}) { }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function foo(...{b}) { } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function foo(...[b]) { }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function foo(...[b]) { } }&quot;
</span><del>-PASS Invalid: &quot;function foo(...123) { }&quot;
-PASS Invalid: &quot;function f() { function foo(...123) { } }&quot;
-PASS Invalid: &quot;function foo(...123abc) { }&quot;
-PASS Invalid: &quot;function f() { function foo(...123abc) { } }&quot;
</del><ins>+PASS Invalid: &quot;function foo(...123) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected number '123'. Expected a parameter pattern or a ')' in parameter list.&quot;
+PASS Invalid: &quot;function f() { function foo(...123) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected number '123'. Expected a parameter pattern or a ')' in parameter list.&quot;
+PASS Invalid: &quot;function foo(...123abc) { }&quot;. Produced the following syntax error: &quot;SyntaxError: No identifiers allowed directly after numeric literal&quot;
+PASS Invalid: &quot;function f() { function foo(...123abc) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: No identifiers allowed directly after numeric literal&quot;
</ins><span class="cx"> PASS Valid:   &quot;function foo(...abc123) { }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function foo(...abc123) { } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function foo(...let) { }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function foo(...let) { } }&quot;
</span><del>-PASS Invalid: &quot;'use strict'; function foo(...let) { }&quot;
-PASS Invalid: &quot;function f() { 'use strict'; function foo(...let) { } }&quot;
-PASS Invalid: &quot;'use strict'; function foo(...[let]) { }&quot;
-PASS Invalid: &quot;function f() { 'use strict'; function foo(...[let]) { } }&quot;
</del><ins>+PASS Invalid: &quot;'use strict'; function foo(...let) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot use the keyword 'let' as a parameter name.&quot;
+PASS Invalid: &quot;function f() { 'use strict'; function foo(...let) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot use the keyword 'let' as a parameter name.&quot;
+PASS Invalid: &quot;'use strict'; function foo(...[let]) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot use the keyword 'let' as a parameter name.&quot;
+PASS Invalid: &quot;function f() { 'use strict'; function foo(...[let]) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot use the keyword 'let' as a parameter name.&quot;
</ins><span class="cx"> PASS Valid:   &quot;function foo(...yield) { }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function foo(...yield) { } }&quot;
</span><del>-PASS Invalid: &quot;'use strict'; function foo(...yield) { }&quot;
-PASS Invalid: &quot;function f() { 'use strict'; function foo(...yield) { } }&quot;
-PASS Invalid: &quot;function foo(...if) { }&quot;
-PASS Invalid: &quot;function f() { function foo(...if) { } }&quot;
</del><ins>+PASS Invalid: &quot;'use strict'; function foo(...yield) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot use the keyword 'yield' as a parameter name.&quot;
+PASS Invalid: &quot;function f() { 'use strict'; function foo(...yield) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot use the keyword 'yield' as a parameter name.&quot;
+PASS Invalid: &quot;function foo(...if) { }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot use the keyword 'if' as a parameter name.&quot;
+PASS Invalid: &quot;function f() { function foo(...if) { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Cannot use the keyword 'if' as a parameter name.&quot;
</ins><span class="cx"> PASS Valid:   &quot;let x = (...a) =&gt; { }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { let x = (...a) =&gt; { } }&quot;
</span><span class="cx"> PASS Valid:   &quot;let x = (a, ...b) =&gt; { }&quot;
</span><span class="lines">@@ -1228,8 +1228,8 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { let x = (a, ...b) =&gt; { } }&quot;
</span><span class="cx"> PASS Valid:   &quot;let x = (a = 20, ...b) =&gt; { }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { let x = (a = 20, ...b) =&gt; { } }&quot;
</span><del>-PASS Invalid: &quot;let x = (a = 20, ...b, ...c) =&gt; { }&quot;
-PASS Invalid: &quot;function f() { let x = (a = 20, ...b, ...c) =&gt; { } }&quot;
</del><ins>+PASS Invalid: &quot;let x = (a = 20, ...b, ...c) =&gt; { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '...'&quot;
+PASS Invalid: &quot;function f() { let x = (a = 20, ...b, ...c) =&gt; { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '...'&quot;
</ins><span class="cx"> PASS Valid:   &quot;let x = (a = 20, ...[...b]) =&gt; { }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { let x = (a = 20, ...[...b]) =&gt; { } }&quot;
</span><span class="cx"> PASS Valid:   &quot;let x = (a = 20, ...[...[b = 40]]) =&gt; { }&quot;
</span><span class="lines">@@ -1236,75 +1236,75 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { let x = (a = 20, ...[...[b = 40]]) =&gt; { } }&quot;
</span><span class="cx"> PASS Valid:   &quot;let x = (a = 20, ...{b}) =&gt; { }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { let x = (a = 20, ...{b}) =&gt; { } }&quot;
</span><del>-PASS Invalid: &quot;let x = (a = 20, ...{...b}) =&gt; { }&quot;
-PASS Invalid: &quot;function f() { let x = (a = 20, ...{...b}) =&gt; { } }&quot;
-PASS Invalid: &quot;let x = (a = 20, ...{124}) =&gt; { }&quot;
-PASS Invalid: &quot;function f() { let x = (a = 20, ...{124}) =&gt; { } }&quot;
</del><ins>+PASS Invalid: &quot;let x = (a = 20, ...{...b}) =&gt; { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '...'&quot;
+PASS Invalid: &quot;function f() { let x = (a = 20, ...{...b}) =&gt; { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '...'&quot;
+PASS Invalid: &quot;let x = (a = 20, ...{124}) =&gt; { }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '...'&quot;
+PASS Invalid: &quot;function f() { let x = (a = 20, ...{124}) =&gt; { } }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '...'&quot;
</ins><span class="cx"> non-simple parameter list
</span><del>-PASS Invalid: &quot;function foo(...restParam) { 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { function foo(...restParam) { 'use strict'; } }&quot;
-PASS Invalid: &quot;function foo(...restParam) { 'a'; 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { function foo(...restParam) { 'a'; 'use strict'; } }&quot;
-PASS Invalid: &quot;function foo({x}) { 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { function foo({x}) { 'use strict'; } }&quot;
-PASS Invalid: &quot;function foo({x}) { 'a'; 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { function foo({x}) { 'a'; 'use strict'; } }&quot;
-PASS Invalid: &quot;function foo(a = 20) { 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { function foo(a = 20) { 'use strict'; } }&quot;
-PASS Invalid: &quot;function foo(a = 20) { 'a'; 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { function foo(a = 20) { 'a'; 'use strict'; } }&quot;
-PASS Invalid: &quot;function foo({a} = 20) { 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { function foo({a} = 20) { 'use strict'; } }&quot;
-PASS Invalid: &quot;function foo({a} = 20) { 'a'; 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { function foo({a} = 20) { 'a'; 'use strict'; } }&quot;
-PASS Invalid: &quot;function foo([a]) { 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { function foo([a]) { 'use strict'; } }&quot;
-PASS Invalid: &quot;function foo([a]) { 'a'; 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { function foo([a]) { 'a'; 'use strict'; } }&quot;
-PASS Invalid: &quot;function foo(foo, bar, a = 25) { 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { function foo(foo, bar, a = 25) { 'use strict'; } }&quot;
-PASS Invalid: &quot;function foo(foo, bar, a = 25) { 'a'; 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { function foo(foo, bar, a = 25) { 'a'; 'use strict'; } }&quot;
-PASS Invalid: &quot;function foo(foo, bar, baz, ...rest) { 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { function foo(foo, bar, baz, ...rest) { 'use strict'; } }&quot;
-PASS Invalid: &quot;function foo(foo, bar, baz, ...rest) { 'a'; 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { function foo(foo, bar, baz, ...rest) { 'a'; 'use strict'; } }&quot;
-PASS Invalid: &quot;function foo(a = function() { }) { 'use strict'; a(); }&quot;
-PASS Invalid: &quot;function f() { function foo(a = function() { }) { 'use strict'; a(); } }&quot;
-PASS Invalid: &quot;function foo(a = function() { }) { 'a'; 'use strict'; a(); }&quot;
-PASS Invalid: &quot;function f() { function foo(a = function() { }) { 'a'; 'use strict'; a(); } }&quot;
-PASS Invalid: &quot;let foo = (...restParam) =&gt; { 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { let foo = (...restParam) =&gt; { 'use strict'; } }&quot;
-PASS Invalid: &quot;let foo = (...restParam) =&gt; { 'a'; 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { let foo = (...restParam) =&gt; { 'a'; 'use strict'; } }&quot;
-PASS Invalid: &quot;let foo = ({x}) =&gt; { 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { let foo = ({x}) =&gt; { 'use strict'; } }&quot;
-PASS Invalid: &quot;let foo = ({x}) =&gt; { 'a'; 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { let foo = ({x}) =&gt; { 'a'; 'use strict'; } }&quot;
-PASS Invalid: &quot;let foo = (a = 20) =&gt; { 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { let foo = (a = 20) =&gt; { 'use strict'; } }&quot;
-PASS Invalid: &quot;let foo = (a = 20) =&gt; { 'a'; 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { let foo = (a = 20) =&gt; { 'a'; 'use strict'; } }&quot;
-PASS Invalid: &quot;let foo = ({a} = 20) =&gt; { 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { let foo = ({a} = 20) =&gt; { 'use strict'; } }&quot;
-PASS Invalid: &quot;let foo = ({a} = 20) =&gt; { 'a'; 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { let foo = ({a} = 20) =&gt; { 'a'; 'use strict'; } }&quot;
-PASS Invalid: &quot;let foo = ([a]) =&gt; { 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { let foo = ([a]) =&gt; { 'use strict'; } }&quot;
-PASS Invalid: &quot;let foo = ([a]) =&gt; { 'a'; 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { let foo = ([a]) =&gt; { 'a'; 'use strict'; } }&quot;
-PASS Invalid: &quot;let foo = (foo, bar, a = 25) =&gt; { 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { let foo = (foo, bar, a = 25) =&gt; { 'use strict'; } }&quot;
-PASS Invalid: &quot;let foo = (foo, bar, a = 25) =&gt; { 'a'; 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { let foo = (foo, bar, a = 25) =&gt; { 'a'; 'use strict'; } }&quot;
-PASS Invalid: &quot;let foo = (foo, bar, baz, ...rest) =&gt; { 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { let foo = (foo, bar, baz, ...rest) =&gt; { 'use strict'; } }&quot;
-PASS Invalid: &quot;let foo = (foo, bar, baz, ...rest) =&gt; { 'a'; 'use strict'; }&quot;
-PASS Invalid: &quot;function f() { let foo = (foo, bar, baz, ...rest) =&gt; { 'a'; 'use strict'; } }&quot;
-PASS Invalid: &quot;let foo = (a = function() { }) =&gt; { 'use strict'; a(); }&quot;
-PASS Invalid: &quot;function f() { let foo = (a = function() { }) =&gt; { 'use strict'; a(); } }&quot;
-PASS Invalid: &quot;let foo = (a = function() { }) =&gt; { 'a'; 'use strict'; a(); }&quot;
-PASS Invalid: &quot;function f() { let foo = (a = function() { }) =&gt; { 'a'; 'use strict'; a(); } }&quot;
</del><ins>+PASS Invalid: &quot;function foo(...restParam) { 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { function foo(...restParam) { 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function foo(...restParam) { 'a'; 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { function foo(...restParam) { 'a'; 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function foo({x}) { 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { function foo({x}) { 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function foo({x}) { 'a'; 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { function foo({x}) { 'a'; 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function foo(a = 20) { 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { function foo(a = 20) { 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function foo(a = 20) { 'a'; 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { function foo(a = 20) { 'a'; 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function foo({a} = 20) { 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { function foo({a} = 20) { 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function foo({a} = 20) { 'a'; 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { function foo({a} = 20) { 'a'; 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function foo([a]) { 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { function foo([a]) { 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function foo([a]) { 'a'; 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { function foo([a]) { 'a'; 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function foo(foo, bar, a = 25) { 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { function foo(foo, bar, a = 25) { 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function foo(foo, bar, a = 25) { 'a'; 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { function foo(foo, bar, a = 25) { 'a'; 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function foo(foo, bar, baz, ...rest) { 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { function foo(foo, bar, baz, ...rest) { 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function foo(foo, bar, baz, ...rest) { 'a'; 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { function foo(foo, bar, baz, ...rest) { 'a'; 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function foo(a = function() { }) { 'use strict'; a(); }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { function foo(a = function() { }) { 'use strict'; a(); } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function foo(a = function() { }) { 'a'; 'use strict'; a(); }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { function foo(a = function() { }) { 'a'; 'use strict'; a(); } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;let foo = (...restParam) =&gt; { 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { let foo = (...restParam) =&gt; { 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;let foo = (...restParam) =&gt; { 'a'; 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { let foo = (...restParam) =&gt; { 'a'; 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;let foo = ({x}) =&gt; { 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { let foo = ({x}) =&gt; { 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;let foo = ({x}) =&gt; { 'a'; 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { let foo = ({x}) =&gt; { 'a'; 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;let foo = (a = 20) =&gt; { 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { let foo = (a = 20) =&gt; { 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;let foo = (a = 20) =&gt; { 'a'; 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { let foo = (a = 20) =&gt; { 'a'; 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;let foo = ({a} = 20) =&gt; { 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { let foo = ({a} = 20) =&gt; { 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;let foo = ({a} = 20) =&gt; { 'a'; 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { let foo = ({a} = 20) =&gt; { 'a'; 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;let foo = ([a]) =&gt; { 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { let foo = ([a]) =&gt; { 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;let foo = ([a]) =&gt; { 'a'; 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { let foo = ([a]) =&gt; { 'a'; 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;let foo = (foo, bar, a = 25) =&gt; { 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { let foo = (foo, bar, a = 25) =&gt; { 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;let foo = (foo, bar, a = 25) =&gt; { 'a'; 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { let foo = (foo, bar, a = 25) =&gt; { 'a'; 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;let foo = (foo, bar, baz, ...rest) =&gt; { 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { let foo = (foo, bar, baz, ...rest) =&gt; { 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;let foo = (foo, bar, baz, ...rest) =&gt; { 'a'; 'use strict'; }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { let foo = (foo, bar, baz, ...rest) =&gt; { 'a'; 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;let foo = (a = function() { }) =&gt; { 'use strict'; a(); }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { let foo = (a = function() { }) =&gt; { 'use strict'; a(); } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;let foo = (a = function() { }) =&gt; { 'a'; 'use strict'; a(); }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { let foo = (a = function() { }) =&gt; { 'a'; 'use strict'; a(); } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
</ins><span class="cx"> PASS Valid:   &quot;function outer() { 'use strict'; function foo(...restParam) {  } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function outer() { 'use strict'; function foo(...restParam) {  } } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function outer() { 'use strict'; function foo(a,b,c,...restParam) {  } }&quot;
</span><span class="lines">@@ -1319,20 +1319,20 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { function outer() { 'use strict'; function foo(a = 20) {  } } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function outer() { 'use strict'; function foo(a,b,c,{d} = 20) {  } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { function outer() { 'use strict'; function foo(a,b,c,{d} = 20) {  } } }&quot;
</span><del>-PASS Invalid: &quot;function outer() { 'use strict'; function foo(...restParam) { 'use strict';  } }&quot;
-PASS Invalid: &quot;function f() { function outer() { 'use strict'; function foo(...restParam) { 'use strict';  } } }&quot;
-PASS Invalid: &quot;function outer() { 'use strict'; function foo(a,b,c,...restParam) {  'use strict'; } }&quot;
-PASS Invalid: &quot;function f() { function outer() { 'use strict'; function foo(a,b,c,...restParam) {  'use strict'; } } }&quot;
-PASS Invalid: &quot;function outer() { 'use strict'; function foo(a = 20,b,c,...restParam) {  'use strict'; } }&quot;
-PASS Invalid: &quot;function f() { function outer() { 'use strict'; function foo(a = 20,b,c,...restParam) {  'use strict'; } } }&quot;
-PASS Invalid: &quot;function outer() { 'use strict'; function foo(a = 20,{b},c,...restParam) { 'use strict'; } }&quot;
-PASS Invalid: &quot;function f() { function outer() { 'use strict'; function foo(a = 20,{b},c,...restParam) { 'use strict'; } } }&quot;
-PASS Invalid: &quot;function outer() { 'use strict'; function foo(a = 20,{b},[c] = 5,...restParam) { 'use strict'; } }&quot;
-PASS Invalid: &quot;function f() { function outer() { 'use strict'; function foo(a = 20,{b},[c] = 5,...restParam) { 'use strict'; } } }&quot;
-PASS Invalid: &quot;function outer() { 'use strict'; function foo(a = 20) {  'use strict';} }&quot;
-PASS Invalid: &quot;function f() { function outer() { 'use strict'; function foo(a = 20) {  'use strict';} } }&quot;
-PASS Invalid: &quot;function outer() { 'use strict'; function foo(a,b,c,{d} = 20) { 'use strict'; } }&quot;
-PASS Invalid: &quot;function f() { function outer() { 'use strict'; function foo(a,b,c,{d} = 20) { 'use strict'; } } }&quot;
</del><ins>+PASS Invalid: &quot;function outer() { 'use strict'; function foo(...restParam) { 'use strict';  } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { function outer() { 'use strict'; function foo(...restParam) { 'use strict';  } } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function outer() { 'use strict'; function foo(a,b,c,...restParam) {  'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { function outer() { 'use strict'; function foo(a,b,c,...restParam) {  'use strict'; } } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function outer() { 'use strict'; function foo(a = 20,b,c,...restParam) {  'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { function outer() { 'use strict'; function foo(a = 20,b,c,...restParam) {  'use strict'; } } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function outer() { 'use strict'; function foo(a = 20,{b},c,...restParam) { 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { function outer() { 'use strict'; function foo(a = 20,{b},c,...restParam) { 'use strict'; } } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function outer() { 'use strict'; function foo(a = 20,{b},[c] = 5,...restParam) { 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { function outer() { 'use strict'; function foo(a = 20,{b},[c] = 5,...restParam) { 'use strict'; } } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function outer() { 'use strict'; function foo(a = 20) {  'use strict';} }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { function outer() { 'use strict'; function foo(a = 20) {  'use strict';} } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function outer() { 'use strict'; function foo(a,b,c,{d} = 20) { 'use strict'; } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
+PASS Invalid: &quot;function f() { function outer() { 'use strict'; function foo(a,b,c,{d} = 20) { 'use strict'; } } }&quot;. Produced the following syntax error: &quot;SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list.&quot;
</ins><span class="cx"> Arrow function
</span><span class="cx"> PASS Valid:   &quot;var x = (x) =&gt; x;&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { var x = (x) =&gt; x; }&quot;
</span><span class="lines">@@ -1358,26 +1358,26 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { var x = foo =&gt; x =&gt; x =&gt; x =&gt; {x}; }&quot;
</span><span class="cx"> PASS Valid:   &quot;var x = ([x = 25]) =&gt; x =&gt; x =&gt; ({x} = {});&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { var x = ([x = 25]) =&gt; x =&gt; x =&gt; ({x} = {}); }&quot;
</span><del>-PASS Invalid: &quot;var x = foo =&gt; x =&gt; x =&gt; {x} =&gt; x;&quot;
-PASS Invalid: &quot;function f() { var x = foo =&gt; x =&gt; x =&gt; {x} =&gt; x; }&quot;
-PASS Invalid: &quot;var x = {x} = 20 =&gt; x;&quot;
-PASS Invalid: &quot;function f() { var x = {x} = 20 =&gt; x; }&quot;
-PASS Invalid: &quot;var x = [x] = 20 =&gt; x;&quot;
-PASS Invalid: &quot;function f() { var x = [x] = 20 =&gt; x; }&quot;
-PASS Invalid: &quot;var x = [x = 25] = 20 =&gt; x;&quot;
-PASS Invalid: &quot;function f() { var x = [x = 25] = 20 =&gt; x; }&quot;
-PASS Invalid: &quot;var x = ([x = 25]) =&gt;;&quot;
-PASS Invalid: &quot;function f() { var x = ([x = 25]) =&gt;; }&quot;
-PASS Invalid: &quot;var x = ([x = 25]) =&gt; x =&gt;;&quot;
-PASS Invalid: &quot;function f() { var x = ([x = 25]) =&gt; x =&gt;; }&quot;
-PASS Invalid: &quot;var x = ([x = 25]) =&gt; x =&gt; x =&gt;;&quot;
-PASS Invalid: &quot;function f() { var x = ([x = 25]) =&gt; x =&gt; x =&gt;; }&quot;
-PASS Invalid: &quot;var x = ([x = 25]) =&gt; x =&gt; x =&gt; {;&quot;
-PASS Invalid: &quot;function f() { var x = ([x = 25]) =&gt; x =&gt; x =&gt; {; }&quot;
-PASS Invalid: &quot;var x ==&gt; x;&quot;
-PASS Invalid: &quot;function f() { var x ==&gt; x; }&quot;
-PASS Invalid: &quot;var x = x ==&gt; x;&quot;
-PASS Invalid: &quot;function f() { var x = x ==&gt; x; }&quot;
</del><ins>+PASS Invalid: &quot;var x = foo =&gt; x =&gt; x =&gt; {x} =&gt; x;&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '=&gt;'. Expected ';' after variable declaration.&quot;
+PASS Invalid: &quot;function f() { var x = foo =&gt; x =&gt; x =&gt; {x} =&gt; x; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '=&gt;'. Expected ';' after variable declaration.&quot;
+PASS Invalid: &quot;var x = {x} = 20 =&gt; x;&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '=&gt;'. Expected ';' after variable declaration.&quot;
+PASS Invalid: &quot;function f() { var x = {x} = 20 =&gt; x; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '=&gt;'. Expected ';' after variable declaration.&quot;
+PASS Invalid: &quot;var x = [x] = 20 =&gt; x;&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '=&gt;'. Expected ';' after variable declaration.&quot;
+PASS Invalid: &quot;function f() { var x = [x] = 20 =&gt; x; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '=&gt;'. Expected ';' after variable declaration.&quot;
+PASS Invalid: &quot;var x = [x = 25] = 20 =&gt; x;&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '=&gt;'. Expected ';' after variable declaration.&quot;
+PASS Invalid: &quot;function f() { var x = [x = 25] = 20 =&gt; x; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '=&gt;'. Expected ';' after variable declaration.&quot;
+PASS Invalid: &quot;var x = ([x = 25]) =&gt;;&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ';'&quot;
+PASS Invalid: &quot;function f() { var x = ([x = 25]) =&gt;; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ';'&quot;
+PASS Invalid: &quot;var x = ([x = 25]) =&gt; x =&gt;;&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ';'&quot;
+PASS Invalid: &quot;function f() { var x = ([x = 25]) =&gt; x =&gt;; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ';'&quot;
+PASS Invalid: &quot;var x = ([x = 25]) =&gt; x =&gt; x =&gt;;&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ';'&quot;
+PASS Invalid: &quot;function f() { var x = ([x = 25]) =&gt; x =&gt; x =&gt;; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ';'&quot;
+PASS Invalid: &quot;var x = ([x = 25]) =&gt; x =&gt; x =&gt; {;&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;function f() { var x = ([x = 25]) =&gt; x =&gt; x =&gt; {; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected end of script&quot;
+PASS Invalid: &quot;var x ==&gt; x;&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '=='. Expected ';' after variable declaration.&quot;
+PASS Invalid: &quot;function f() { var x ==&gt; x; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '=='. Expected ';' after variable declaration.&quot;
+PASS Invalid: &quot;var x = x ==&gt; x;&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '&gt;'&quot;
+PASS Invalid: &quot;function f() { var x = x ==&gt; x; }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '&gt;'&quot;
</ins><span class="cx"> PASS Valid:   &quot;foo((x) =&gt; x)&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { foo((x) =&gt; x) }&quot;
</span><span class="cx"> PASS Valid:   &quot;foo((x, y, z) =&gt; x)&quot; with ReferenceError
</span><span class="lines">@@ -1402,26 +1402,26 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { foo(foo =&gt; x =&gt; x =&gt; x =&gt; {x}) }&quot;
</span><span class="cx"> PASS Valid:   &quot;foo(([x = 25]) =&gt; x =&gt; x =&gt; ({x} = {}))&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { foo(([x = 25]) =&gt; x =&gt; x =&gt; ({x} = {})) }&quot;
</span><del>-PASS Invalid: &quot;foo(foo =&gt; x =&gt; x =&gt; {x} =&gt; x)&quot;
-PASS Invalid: &quot;function f() { foo(foo =&gt; x =&gt; x =&gt; {x} =&gt; x) }&quot;
-PASS Invalid: &quot;foo({x} = 20 =&gt; x)&quot;
-PASS Invalid: &quot;function f() { foo({x} = 20 =&gt; x) }&quot;
-PASS Invalid: &quot;foo([x] = 20 =&gt; x)&quot;
-PASS Invalid: &quot;function f() { foo([x] = 20 =&gt; x) }&quot;
-PASS Invalid: &quot;foo([x = 25] = 20 =&gt; x)&quot;
-PASS Invalid: &quot;function f() { foo([x = 25] = 20 =&gt; x) }&quot;
-PASS Invalid: &quot;foo(([x = 25]) =&gt;)&quot;
-PASS Invalid: &quot;function f() { foo(([x = 25]) =&gt;) }&quot;
-PASS Invalid: &quot;foo(([x = 25]) =&gt; x =&gt;)&quot;
-PASS Invalid: &quot;function f() { foo(([x = 25]) =&gt; x =&gt;) }&quot;
-PASS Invalid: &quot;foo(([x = 25]) =&gt; x =&gt; x =&gt;)&quot;
-PASS Invalid: &quot;function f() { foo(([x = 25]) =&gt; x =&gt; x =&gt;) }&quot;
-PASS Invalid: &quot;foo(([x = 25]) =&gt; x =&gt; x =&gt; {)&quot;
-PASS Invalid: &quot;function f() { foo(([x = 25]) =&gt; x =&gt; x =&gt; {) }&quot;
-PASS Invalid: &quot;foo(x ==&gt; x)&quot;
-PASS Invalid: &quot;function f() { foo(x ==&gt; x) }&quot;
-PASS Invalid: &quot;foo(x = x ==&gt; x)&quot;
-PASS Invalid: &quot;function f() { foo(x = x ==&gt; x) }&quot;
</del><ins>+PASS Invalid: &quot;foo(foo =&gt; x =&gt; x =&gt; {x} =&gt; x)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '=&gt;'. Expected ')' to end an argument list.&quot;
+PASS Invalid: &quot;function f() { foo(foo =&gt; x =&gt; x =&gt; {x} =&gt; x) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '=&gt;'. Expected ')' to end an argument list.&quot;
+PASS Invalid: &quot;foo({x} = 20 =&gt; x)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '=&gt;'. Expected ')' to end an argument list.&quot;
+PASS Invalid: &quot;function f() { foo({x} = 20 =&gt; x) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '=&gt;'. Expected ')' to end an argument list.&quot;
+PASS Invalid: &quot;foo([x] = 20 =&gt; x)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '=&gt;'. Expected ')' to end an argument list.&quot;
+PASS Invalid: &quot;function f() { foo([x] = 20 =&gt; x) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '=&gt;'. Expected ')' to end an argument list.&quot;
+PASS Invalid: &quot;foo([x = 25] = 20 =&gt; x)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '=&gt;'. Expected ')' to end an argument list.&quot;
+PASS Invalid: &quot;function f() { foo([x = 25] = 20 =&gt; x) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '=&gt;'. Expected ')' to end an argument list.&quot;
+PASS Invalid: &quot;foo(([x = 25]) =&gt;)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;function f() { foo(([x = 25]) =&gt;) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;foo(([x = 25]) =&gt; x =&gt;)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;function f() { foo(([x = 25]) =&gt; x =&gt;) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;foo(([x = 25]) =&gt; x =&gt; x =&gt;)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;function f() { foo(([x = 25]) =&gt; x =&gt; x =&gt;) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;foo(([x = 25]) =&gt; x =&gt; x =&gt; {)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;function f() { foo(([x = 25]) =&gt; x =&gt; x =&gt; {) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ')'&quot;
+PASS Invalid: &quot;foo(x ==&gt; x)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '&gt;'&quot;
+PASS Invalid: &quot;function f() { foo(x ==&gt; x) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '&gt;'&quot;
+PASS Invalid: &quot;foo(x = x ==&gt; x)&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '&gt;'&quot;
+PASS Invalid: &quot;function f() { foo(x = x ==&gt; x) }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '&gt;'&quot;
</ins><span class="cx"> PASS Valid:   &quot;var f = cond ? ()=&gt;20 : ()=&gt;20&quot; with ReferenceError
</span><span class="cx"> PASS Valid:   &quot;function f() { var f = cond ? ()=&gt;20 : ()=&gt;20 }&quot;
</span><span class="cx"> PASS Valid:   &quot;var f = cond ? (x)=&gt;{x} : ()=&gt;20&quot; with ReferenceError
</span><span class="lines">@@ -1442,14 +1442,14 @@
</span><span class="cx"> PASS Valid:   &quot;function f() { var f = cond ? x=&gt;{x.foo } : x=&gt;x + x + x + x + x + x + (x =&gt;x)  }&quot;
</span><span class="cx"> PASS Valid:   &quot;var f = (x) =&gt; x =&gt; (x) =&gt; ({y}) =&gt; y&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { var f = (x) =&gt; x =&gt; (x) =&gt; ({y}) =&gt; y }&quot;
</span><del>-PASS Invalid: &quot;var f = cond ? x=&gt;x.foo; : x=&gt;x + x + x + x + x + x + x&quot;
-PASS Invalid: &quot;function f() { var f = cond ? x=&gt;x.foo; : x=&gt;x + x + x + x + x + x + x }&quot;
-PASS Invalid: &quot;var f = cond ? x=&gt;x.foo : : x=&gt;x + x + x + x + x + x + x&quot;
-PASS Invalid: &quot;function f() { var f = cond ? x=&gt;x.foo : : x=&gt;x + x + x + x + x + x + x }&quot;
-PASS Invalid: &quot;var f = cond ? x=&gt;{x.foo :} : x=&gt;x + x + x + x + x + x + x&quot;
-PASS Invalid: &quot;function f() { var f = cond ? x=&gt;{x.foo :} : x=&gt;x + x + x + x + x + x + x }&quot;
-PASS Invalid: &quot;var f = cond ? x=&gt;{x.foo } =&gt; : x=&gt;x + x + x + x + x + x + x&quot;
-PASS Invalid: &quot;function f() { var f = cond ? x=&gt;{x.foo } =&gt; : x=&gt;x + x + x + x + x + x + x }&quot;
</del><ins>+PASS Invalid: &quot;var f = cond ? x=&gt;x.foo; : x=&gt;x + x + x + x + x + x + x&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ';'. Expected ':' in ternary operator.&quot;
+PASS Invalid: &quot;function f() { var f = cond ? x=&gt;x.foo; : x=&gt;x + x + x + x + x + x + x }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ';'. Expected ':' in ternary operator.&quot;
+PASS Invalid: &quot;var f = cond ? x=&gt;x.foo : : x=&gt;x + x + x + x + x + x + x&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ':'&quot;
+PASS Invalid: &quot;function f() { var f = cond ? x=&gt;x.foo : : x=&gt;x + x + x + x + x + x + x }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ':'&quot;
+PASS Invalid: &quot;var f = cond ? x=&gt;{x.foo :} : x=&gt;x + x + x + x + x + x + x&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ':'&quot;
+PASS Invalid: &quot;function f() { var f = cond ? x=&gt;{x.foo :} : x=&gt;x + x + x + x + x + x + x }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token ':'&quot;
+PASS Invalid: &quot;var f = cond ? x=&gt;{x.foo } =&gt; : x=&gt;x + x + x + x + x + x + x&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '=&gt;'. Expected ':' in ternary operator.&quot;
+PASS Invalid: &quot;function f() { var f = cond ? x=&gt;{x.foo } =&gt; : x=&gt;x + x + x + x + x + x + x }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '=&gt;'. Expected ':' in ternary operator.&quot;
</ins><span class="cx"> PASS Valid:   &quot;class C { constructor() { this._x = 45; } get foo() { return this._x;} } class D extends C { x(y = () =&gt; super.foo) { return y(); } }&quot;
</span><span class="cx"> PASS Valid:   &quot;function f() { class C { constructor() { this._x = 45; } get foo() { return this._x;} } class D extends C { x(y = () =&gt; super.foo) { return y(); } } }&quot;
</span><span class="cx"> PASS Valid:   &quot;class C { constructor() { this._x = 45; } get foo() { return this._x;} } class D extends C { x(y = () =&gt; {return super.foo}) { return y(); } }&quot;
</span><span class="lines">@@ -1465,10 +1465,10 @@
</span><span class="cx"> Weird things that used to crash.
</span><span class="cx"> PASS Invalid: &quot;or ([[{break //(elseifo (a=0;a&lt;2;a++)n=
</span><span class="cx">         [[{aFYY sga=
</span><del>-        [[{a=Yth FunctionRY&amp;=Ylet 'a'}V a&quot;
</del><ins>+        [[{a=Yth FunctionRY&amp;=Ylet 'a'}V a&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '//'. Expected a ':' following the property name 'break'.&quot;
</ins><span class="cx"> PASS Invalid: &quot;function f() { or ([[{break //(elseifo (a=0;a&lt;2;a++)n=
</span><span class="cx">         [[{aFYY sga=
</span><del>-        [[{a=Yth FunctionRY&amp;=Ylet 'a'}V a }&quot;
</del><ins>+        [[{a=Yth FunctionRY&amp;=Ylet 'a'}V a }&quot;. Produced the following syntax error: &quot;SyntaxError: Unexpected token '//'. Expected a ':' following the property name 'break'.&quot;
</ins><span class="cx"> PASS e.line is 1
</span><span class="cx"> PASS foo is 'PASS'
</span><span class="cx"> PASS bar is 'PASS'
</span></span></pre></div>
<a id="trunkLayoutTestsjsscripttestsparsersyntaxcheckjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/js/script-tests/parser-syntax-check.js (206593 => 206594)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/script-tests/parser-syntax-check.js        2016-09-29 18:19:31 UTC (rev 206593)
+++ trunk/LayoutTests/js/script-tests/parser-syntax-check.js        2016-09-29 18:44:14 UTC (rev 206594)
</span><span class="lines">@@ -21,7 +21,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (expectSyntaxError) {
</span><span class="cx">         if (error &amp;&amp; error instanceof SyntaxError)
</span><del>-            testPassed('Invalid: &quot;' + _a + '&quot;');
</del><ins>+            testPassed(`Invalid: &quot;${_a}&quot;. Produced the following syntax error: &quot;${error.toString()}&quot;`);
</ins><span class="cx">         else if (error)
</span><span class="cx">             testFailed('Invalid: &quot;' + _a + '&quot; should throw SyntaxError but got ' + (error.name || error));
</span><span class="cx">         else
</span></span></pre>
</div>
</div>

</body>
</html>