Title: [202865] trunk
Revision
202865
Author
commit-qu...@webkit.org
Date
2016-07-06 11:22:17 -0700 (Wed, 06 Jul 2016)

Log Message

Unreviewed, rolling out r198928 and r198985.
https://bugs.webkit.org/show_bug.cgi?id=159478

"It's breaking some websites" (Requested by saamyjoon on
#webkit).

Reverted changesets:

"[ES6] Disallow var assignments in for-in loops"
https://bugs.webkit.org/show_bug.cgi?id=155451
http://trac.webkit.org/changeset/198928

"Unreviewed, turn ES6 for-in loop test success"
https://bugs.webkit.org/show_bug.cgi?id=155451
http://trac.webkit.org/changeset/198985

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (202864 => 202865)


--- trunk/LayoutTests/ChangeLog	2016-07-06 18:15:23 UTC (rev 202864)
+++ trunk/LayoutTests/ChangeLog	2016-07-06 18:22:17 UTC (rev 202865)
@@ -1,3 +1,21 @@
+2016-07-06  Commit Queue  <commit-qu...@webkit.org>
+
+        Unreviewed, rolling out r198928 and r198985.
+        https://bugs.webkit.org/show_bug.cgi?id=159478
+
+        "It's breaking some websites" (Requested by saamyjoon on
+        #webkit).
+
+        Reverted changesets:
+
+        "[ES6] Disallow var assignments in for-in loops"
+        https://bugs.webkit.org/show_bug.cgi?id=155451
+        http://trac.webkit.org/changeset/198928
+
+        "Unreviewed, turn ES6 for-in loop test success"
+        https://bugs.webkit.org/show_bug.cgi?id=155451
+        http://trac.webkit.org/changeset/198985
+
 2016-07-06  Ryan Haddad  <ryanhad...@apple.com>
 
         Marking inspector/debugger/tail-deleted-frames-from-vm-entry.html as flaky on mac-wk2 debug

Modified: trunk/LayoutTests/js/parser-syntax-check-expected.txt (202864 => 202865)


--- trunk/LayoutTests/js/parser-syntax-check-expected.txt	2016-07-06 18:15:23 UTC (rev 202864)
+++ trunk/LayoutTests/js/parser-syntax-check-expected.txt	2016-07-06 18:22:17 UTC (rev 202865)
@@ -504,10 +504,10 @@
 PASS Valid:   "function f() { for ((a ? b : c) in c) break }"
 PASS Valid:   "for (var a in b in c) break" with ReferenceError
 PASS Valid:   "function f() { for (var a in b in c) break }"
-PASS Invalid: "for (var a = 5 += 6 in b) break"
-PASS Invalid: "function f() { for (var a = 5 += 6 in b) break }"
-PASS Invalid: "for (var a = debug('should not be hit') in b) break"
-PASS Invalid: "function f() { for (var a = debug('should not be hit') in b) break }"
+PASS Valid:   "for (var a = 5 += 6 in b) break" with ReferenceError
+PASS Valid:   "function f() { for (var a = 5 += 6 in b) break }"
+PASS Valid:   "for (var a = debug('should not be hit') in b) break" with ReferenceError
+PASS Valid:   "function f() { for (var a = debug('should not be hit') in b) break }"
 PASS Invalid: "for (var a += 5 in b) break"
 PASS Invalid: "function f() { for (var a += 5 in b) break }"
 PASS Invalid: "for (var a = in b) break"
@@ -518,8 +518,8 @@
 PASS Invalid: "function f() { for (var a = -6, b in b) break }"
 PASS Invalid: "for (var a, b = 8 in b) break"
 PASS Invalid: "function f() { for (var a, b = 8 in b) break }"
-PASS Invalid: "for (var a = (b in c) in d) break"
-PASS Invalid: "function f() { for (var a = (b in c) in d) break }"
+PASS Valid:   "for (var a = (b in c) in d) break" with ReferenceError
+PASS Valid:   "function f() { for (var a = (b in c) in d) break }"
 PASS Invalid: "for (var a = (b in c in d) break"
 PASS Invalid: "function f() { for (var a = (b in c in d) break }"
 PASS Invalid: "for (var (a) in b) { }"
@@ -532,8 +532,8 @@
 PASS Invalid: "function f() { for (var {a} = 20 of b) { } }"
 PASS Invalid: "for (var {a} = 20 in b) { }"
 PASS Invalid: "function f() { for (var {a} = 20 in b) { } }"
-PASS Invalid: "for (var i = 20 in b) { }"
-PASS Invalid: "function f() { for (var i = 20 in b) { } }"
+PASS Valid:   "for (var i = 20 in b) { }" with ReferenceError
+PASS Valid:   "function f() { for (var i = 20 in b) { } }"
 PASS Invalid: "for (var i = 20 of b) { }"
 PASS Invalid: "function f() { for (var i = 20 of b) { } }"
 PASS Invalid: "for (var {i} = 20 of b) { }"

Modified: trunk/LayoutTests/js/script-tests/parser-syntax-check.js (202864 => 202865)


--- trunk/LayoutTests/js/script-tests/parser-syntax-check.js	2016-07-06 18:15:23 UTC (rev 202864)
+++ trunk/LayoutTests/js/script-tests/parser-syntax-check.js	2016-07-06 18:22:17 UTC (rev 202865)
@@ -345,14 +345,14 @@
 invalid("for (a ? b : c in c) break");
 valid  ("for ((a ? b : c) in c) break");
 valid  ("for (var a in b in c) break");
-invalid("for (var a = 5 += 6 in b) break");
-invalid("for (var a = debug('should not be hit') in b) break");
+valid("for (var a = 5 += 6 in b) break");
+valid("for (var a = debug('should not be hit') in b) break");
 invalid("for (var a += 5 in b) break");
 invalid("for (var a = in b) break");
 invalid("for (var a, b in b) break");
 invalid("for (var a = -6, b in b) break");
 invalid("for (var a, b = 8 in b) break");
-invalid("for (var a = (b in c) in d) break");
+valid("for (var a = (b in c) in d) break");
 invalid("for (var a = (b in c in d) break");
 invalid("for (var (a) in b) { }");
 valid  ("for (var a = 7, b = c < d >= d ; f()[6]++ ; --i()[1]++ ) {}");
@@ -359,7 +359,7 @@
 invalid("for (var {a} = 20 in b) { }");
 invalid("for (var {a} = 20 of b) { }");
 invalid("for (var {a} = 20 in b) { }");
-invalid("for (var i = 20 in b) { }");
+valid("for (var i = 20 in b) { }");
 invalid("for (var i = 20 of b) { }");
 invalid("for (var {i} = 20 of b) { }");
 invalid("for (var [i] = 20 of b) { }");

Modified: trunk/Source/_javascript_Core/ChangeLog (202864 => 202865)


--- trunk/Source/_javascript_Core/ChangeLog	2016-07-06 18:15:23 UTC (rev 202864)
+++ trunk/Source/_javascript_Core/ChangeLog	2016-07-06 18:22:17 UTC (rev 202865)
@@ -1,3 +1,21 @@
+2016-07-06  Commit Queue  <commit-qu...@webkit.org>
+
+        Unreviewed, rolling out r198928 and r198985.
+        https://bugs.webkit.org/show_bug.cgi?id=159478
+
+        "It's breaking some websites" (Requested by saamyjoon on
+        #webkit).
+
+        Reverted changesets:
+
+        "[ES6] Disallow var assignments in for-in loops"
+        https://bugs.webkit.org/show_bug.cgi?id=155451
+        http://trac.webkit.org/changeset/198928
+
+        "Unreviewed, turn ES6 for-in loop test success"
+        https://bugs.webkit.org/show_bug.cgi?id=155451
+        http://trac.webkit.org/changeset/198985
+
 2016-07-05  Mark Lam  <mark....@apple.com>
 
         Rename VM stack limit fields to better describe their purpose.

Modified: trunk/Source/_javascript_Core/parser/Parser.cpp (202864 => 202865)


--- trunk/Source/_javascript_Core/parser/Parser.cpp	2016-07-06 18:15:23 UTC (rev 202864)
+++ trunk/Source/_javascript_Core/parser/Parser.cpp	2016-07-06 18:22:17 UTC (rev 202865)
@@ -1180,7 +1180,8 @@
         if (hasAnyAssignments) {
             if (isOfEnumeration)
                 internalFailWithMessage(false, "Cannot assign to the loop variable inside a for-of loop header");
-            internalFailWithMessage(false, "Cannot assign to the loop variable inside a for-in loop header");
+            if (strictMode() || (isLetDeclaration || isConstDeclaration) || !context.isBindingNode(forInTarget))
+                internalFailWithMessage(false, "Cannot assign to the loop variable inside a for-in loop header");
         }
         TreeExpression expr = parseExpression(context);
         failIfFalse(expr, "Expected _expression_ to enumerate");

Modified: trunk/Source/_javascript_Core/tests/es6.yaml (202864 => 202865)


--- trunk/Source/_javascript_Core/tests/es6.yaml	2016-07-06 18:15:23 UTC (rev 202864)
+++ trunk/Source/_javascript_Core/tests/es6.yaml	2016-07-06 18:22:17 UTC (rev 202865)
@@ -875,7 +875,7 @@
 - path: es6/miscellaneous_function_length_is_configurable.js
   cmd: runES6 :normal
 - path: es6/miscellaneous_no_assignments_allowed_in_for-in_head.js
-  cmd: runES6 :normal
+  cmd: runES6 :fail
 - path: es6/miscellaneous_RegExp_constructor_can_alter_flags.js
   cmd: runES6 :normal
 - path: es6/new.target_assignment_is_an_early_error.js
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to