Title: [198233] trunk
Revision
198233
Author
[email protected]
Date
2016-03-15 15:38:29 -0700 (Tue, 15 Mar 2016)

Log Message

Unreviewed, rolling out r198148.
https://bugs.webkit.org/show_bug.cgi?id=155518

"Lets do this patch at a later time" (Requested by saamyjoon
on #webkit).

Reverted changeset:

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

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (198232 => 198233)


--- trunk/LayoutTests/ChangeLog	2016-03-15 22:22:55 UTC (rev 198232)
+++ trunk/LayoutTests/ChangeLog	2016-03-15 22:38:29 UTC (rev 198233)
@@ -1,3 +1,17 @@
+2016-03-15  Commit Queue  <[email protected]>
+
+        Unreviewed, rolling out r198148.
+        https://bugs.webkit.org/show_bug.cgi?id=155518
+
+        "Lets do this patch at a later time" (Requested by saamyjoon
+        on #webkit).
+
+        Reverted changeset:
+
+        "[ES6] Disallow var assignments in for-in loops"
+        https://bugs.webkit.org/show_bug.cgi?id=155451
+        http://trac.webkit.org/changeset/198148
+
 2016-03-15  Alexey Proskuryakov  <[email protected]>
 
         Test result gardening for

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


--- trunk/LayoutTests/js/parser-syntax-check-expected.txt	2016-03-15 22:22:55 UTC (rev 198232)
+++ trunk/LayoutTests/js/parser-syntax-check-expected.txt	2016-03-15 22:38:29 UTC (rev 198233)
@@ -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 (198232 => 198233)


--- trunk/LayoutTests/js/script-tests/parser-syntax-check.js	2016-03-15 22:22:55 UTC (rev 198232)
+++ trunk/LayoutTests/js/script-tests/parser-syntax-check.js	2016-03-15 22:38:29 UTC (rev 198233)
@@ -333,21 +333,21 @@
 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]++ ) {}");
 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 (198232 => 198233)


--- trunk/Source/_javascript_Core/ChangeLog	2016-03-15 22:22:55 UTC (rev 198232)
+++ trunk/Source/_javascript_Core/ChangeLog	2016-03-15 22:38:29 UTC (rev 198233)
@@ -1,3 +1,17 @@
+2016-03-15  Commit Queue  <[email protected]>
+
+        Unreviewed, rolling out r198148.
+        https://bugs.webkit.org/show_bug.cgi?id=155518
+
+        "Lets do this patch at a later time" (Requested by saamyjoon
+        on #webkit).
+
+        Reverted changeset:
+
+        "[ES6] Disallow var assignments in for-in loops"
+        https://bugs.webkit.org/show_bug.cgi?id=155451
+        http://trac.webkit.org/changeset/198148
+
 2016-03-15  Joseph Pecoraro  <[email protected]>
 
         REGRESSION: ASSERTION FAILED: !m_lastActiveBlock on js/function-apply.html

Modified: trunk/Source/_javascript_Core/parser/Parser.cpp (198232 => 198233)


--- trunk/Source/_javascript_Core/parser/Parser.cpp	2016-03-15 22:22:55 UTC (rev 198232)
+++ trunk/Source/_javascript_Core/parser/Parser.cpp	2016-03-15 22:38:29 UTC (rev 198233)
@@ -1169,7 +1169,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 (198232 => 198233)


--- trunk/Source/_javascript_Core/tests/es6.yaml	2016-03-15 22:22:55 UTC (rev 198232)
+++ trunk/Source/_javascript_Core/tests/es6.yaml	2016-03-15 22:38:29 UTC (rev 198233)
@@ -871,7 +871,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
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to