Changeset 202865 in webkit


Ignore:
Timestamp:
Jul 6, 2016 11:22:17 AM (8 years ago)
Author:
commit-queue@webkit.org
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

Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r202864 r202865  
     12016-07-06  Commit Queue  <commit-queue@webkit.org>
     2
     3        Unreviewed, rolling out r198928 and r198985.
     4        https://bugs.webkit.org/show_bug.cgi?id=159478
     5
     6        "It's breaking some websites" (Requested by saamyjoon on
     7        #webkit).
     8
     9        Reverted changesets:
     10
     11        "[ES6] Disallow var assignments in for-in loops"
     12        https://bugs.webkit.org/show_bug.cgi?id=155451
     13        http://trac.webkit.org/changeset/198928
     14
     15        "Unreviewed, turn ES6 for-in loop test success"
     16        https://bugs.webkit.org/show_bug.cgi?id=155451
     17        http://trac.webkit.org/changeset/198985
     18
    1192016-07-06  Ryan Haddad  <ryanhaddad@apple.com>
    220
  • trunk/LayoutTests/js/parser-syntax-check-expected.txt

    r202768 r202865  
    505505PASS Valid:   "for (var a in b in c) break" with ReferenceError
    506506PASS Valid:   "function f() { for (var a in b in c) break }"
    507 PASS Invalid: "for (var a = 5 += 6 in b) break"
    508 PASS Invalid: "function f() { for (var a = 5 += 6 in b) break }"
    509 PASS Invalid: "for (var a = debug('should not be hit') in b) break"
    510 PASS Invalid: "function f() { for (var a = debug('should not be hit') in b) break }"
     507PASS Valid:   "for (var a = 5 += 6 in b) break" with ReferenceError
     508PASS Valid:  "function f() { for (var a = 5 += 6 in b) break }"
     509PASS Valid:   "for (var a = debug('should not be hit') in b) break" with ReferenceError
     510PASS Valid:  "function f() { for (var a = debug('should not be hit') in b) break }"
    511511PASS Invalid: "for (var a += 5 in b) break"
    512512PASS Invalid: "function f() { for (var a += 5 in b) break }"
     
    519519PASS Invalid: "for (var a, b = 8 in b) break"
    520520PASS Invalid: "function f() { for (var a, b = 8 in b) break }"
    521 PASS Invalid: "for (var a = (b in c) in d) break"
    522 PASS Invalid: "function f() { for (var a = (b in c) in d) break }"
     521PASS Valid:   "for (var a = (b in c) in d) break" with ReferenceError
     522PASS Valid:  "function f() { for (var a = (b in c) in d) break }"
    523523PASS Invalid: "for (var a = (b in c in d) break"
    524524PASS Invalid: "function f() { for (var a = (b in c in d) break }"
     
    533533PASS Invalid: "for (var {a} = 20 in b) { }"
    534534PASS Invalid: "function f() { for (var {a} = 20 in b) { } }"
    535 PASS Invalid: "for (var i = 20 in b) { }"
    536 PASS Invalid: "function f() { for (var i = 20 in b) { } }"
     535PASS Valid:   "for (var i = 20 in b) { }" with ReferenceError
     536PASS Valid:  "function f() { for (var i = 20 in b) { } }"
    537537PASS Invalid: "for (var i = 20 of b) { }"
    538538PASS Invalid: "function f() { for (var i = 20 of b) { } }"
  • trunk/LayoutTests/js/script-tests/parser-syntax-check.js

    r202768 r202865  
    346346valid  ("for ((a ? b : c) in c) break");
    347347valid  ("for (var a in b in c) break");
    348 invalid("for (var a = 5 += 6 in b) break");
    349 invalid("for (var a = debug('should not be hit') in b) break");
     348valid("for (var a = 5 += 6 in b) break");
     349valid("for (var a = debug('should not be hit') in b) break");
    350350invalid("for (var a += 5 in b) break");
    351351invalid("for (var a = in b) break");
     
    353353invalid("for (var a = -6, b in b) break");
    354354invalid("for (var a, b = 8 in b) break");
    355 invalid("for (var a = (b in c) in d) break");
     355valid("for (var a = (b in c) in d) break");
    356356invalid("for (var a = (b in c in d) break");
    357357invalid("for (var (a) in b) { }");
     
    360360invalid("for (var {a} = 20 of b) { }");
    361361invalid("for (var {a} = 20 in b) { }");
    362 invalid("for (var i = 20 in b) { }");
     362valid("for (var i = 20 in b) { }");
    363363invalid("for (var i = 20 of b) { }");
    364364invalid("for (var {i} = 20 of b) { }");
  • trunk/Source/JavaScriptCore/ChangeLog

    r202862 r202865  
     12016-07-06  Commit Queue  <commit-queue@webkit.org>
     2
     3        Unreviewed, rolling out r198928 and r198985.
     4        https://bugs.webkit.org/show_bug.cgi?id=159478
     5
     6        "It's breaking some websites" (Requested by saamyjoon on
     7        #webkit).
     8
     9        Reverted changesets:
     10
     11        "[ES6] Disallow var assignments in for-in loops"
     12        https://bugs.webkit.org/show_bug.cgi?id=155451
     13        http://trac.webkit.org/changeset/198928
     14
     15        "Unreviewed, turn ES6 for-in loop test success"
     16        https://bugs.webkit.org/show_bug.cgi?id=155451
     17        http://trac.webkit.org/changeset/198985
     18
    1192016-07-05  Mark Lam  <mark.lam@apple.com>
    220
  • trunk/Source/JavaScriptCore/parser/Parser.cpp

    r202828 r202865  
    11811181            if (isOfEnumeration)
    11821182                internalFailWithMessage(false, "Cannot assign to the loop variable inside a for-of loop header");
    1183             internalFailWithMessage(false, "Cannot assign to the loop variable inside a for-in loop header");
     1183            if (strictMode() || (isLetDeclaration || isConstDeclaration) || !context.isBindingNode(forInTarget))
     1184                internalFailWithMessage(false, "Cannot assign to the loop variable inside a for-in loop header");
    11841185        }
    11851186        TreeExpression expr = parseExpression(context);
  • trunk/Source/JavaScriptCore/tests/es6.yaml

    r202125 r202865  
    876876  cmd: runES6 :normal
    877877- path: es6/miscellaneous_no_assignments_allowed_in_for-in_head.js
    878   cmd: runES6 :normal
     878  cmd: runES6 :fail
    879879- path: es6/miscellaneous_RegExp_constructor_can_alter_flags.js
    880880  cmd: runES6 :normal
Note: See TracChangeset for help on using the changeset viewer.