• Michael Achenbach's avatar
    Revert "[esnext] load `iterator.next` only once at beginning of iteration" · 163b5d70
    Michael Achenbach authored
    This reverts commit bf4cc9ee.
    
    Reason for revert: Breaks windows with msvc and linux with gcc
    https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20msvc/builds/841
    https://build.chromium.org/p/client.v8/builders/V8%20Linux%20gcc%204.8/builds/17265
    
    Original change's description:
    > [esnext] load `iterator.next` only once at beginning of iteration
    > 
    > https://github.com/tc39/ecma262/pull/988 gained concensus during the
    > september 2017 TC39 meetings. This moves the load of the "next" method
    > to the very beginning of the iteration protocol, rather than during
    > each iteration step.
    > 
    > This impacts:
    > 
    > - yield*
    > - for-of loops
    > - spread arguments
    > - array spreads
    > 
    > In the v8 implementation, this also affects async iteration versions of
    > these things (the sole exception being the Async-From-Sync iterator,
    > which requires a few more changes to work with this, likely done in a
    > followup patch).
    > 
    > This change introduces a new AST node, ResolvedProperty, which can be used
    > as a callee by Call nodes to produce the same bytecode as Property calls,
    > without observably re-loading the property. This is used in several
    > AST-desugarings involving the iteration protocol.
    > 
    > BUG=v8:6861, v8:5699
    > R=​rmcilroy@chromium.org, neis@chromium.org, adamk@chromium.org
    > 
    > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
    > Change-Id: Ib81106a0182687fc5efea0bc32302ad06376773b
    > Reviewed-on: https://chromium-review.googlesource.com/687997
    > Commit-Queue: Caitlin Potter <caitp@igalia.com>
    > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
    > Reviewed-by: Adam Klein <adamk@chromium.org>
    > Reviewed-by: Georg Neis <neis@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#50452}
    
    TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,caitp@igalia.com,caitp@chromium.org
    
    Change-Id: I1797c0d596dfd6850d6f0f505f591a7a990dd1f1
    No-Presubmit: true
    No-Tree-Checks: true
    No-Try: true
    Bug: v8:6861, v8:5699
    Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
    Reviewed-on: https://chromium-review.googlesource.com/857616Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
    Commit-Queue: Michael Achenbach <machenbach@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#50454}
    163b5d70
ast.cc 30 KB