• 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
Name
Last commit
Last update
..
resources Loading commit data...
access-obsolete-frame-expected.txt Loading commit data...
access-obsolete-frame.js Loading commit data...
asm-js-breakpoint-before-exec-expected.txt Loading commit data...
asm-js-breakpoint-before-exec.js Loading commit data...
asm-js-breakpoint-during-exec-expected.txt Loading commit data...
asm-js-breakpoint-during-exec.js Loading commit data...
asm-js-stack-expected.txt Loading commit data...
asm-js-stack.js Loading commit data...
async-chains-expected.txt Loading commit data...
async-chains.js Loading commit data...
async-console-count-doesnt-crash-expected.txt Loading commit data...
async-console-count-doesnt-crash.js Loading commit data...
async-for-await-of-promise-stack-expected.txt Loading commit data...
async-for-await-of-promise-stack.js Loading commit data...
async-instrumentation-expected.txt Loading commit data...
async-instrumentation.js Loading commit data...
async-promise-late-then-expected.txt Loading commit data...
async-promise-late-then.js Loading commit data...
async-set-timeout-expected.txt Loading commit data...
async-set-timeout.js Loading commit data...
async-stack-await-expected.txt Loading commit data...
async-stack-await.js Loading commit data...
async-stack-created-frame-expected.txt Loading commit data...
async-stack-created-frame.js Loading commit data...
async-stack-for-promise-expected.txt Loading commit data...
async-stack-for-promise.js Loading commit data...
async-stack-load-more-expected.txt Loading commit data...
async-stack-load-more.js Loading commit data...
break-location-function-calls-expected.txt Loading commit data...
break-location-function-calls.js Loading commit data...
break-locations-await-expected.txt Loading commit data...
break-locations-await.js Loading commit data...
break-locations-var-init-expected.txt Loading commit data...
break-locations-var-init.js Loading commit data...
break-on-exception-expected.txt Loading commit data...
break-on-exception.js Loading commit data...
breakpoints-expected.txt Loading commit data...
breakpoints.js Loading commit data...
call-frame-function-location-expected.txt Loading commit data...
call-frame-function-location.js Loading commit data...
call-frame-url-expected.txt Loading commit data...
call-frame-url.js Loading commit data...
caught-exception-from-framework-inside-async-expected.txt Loading commit data...
caught-exception-from-framework-inside-async.js Loading commit data...
caught-uncaught-exceptions-expected.txt Loading commit data...
caught-uncaught-exceptions.js Loading commit data...
change-return-value-expected.txt Loading commit data...
change-return-value.js Loading commit data...
clear-breakpoints-on-disable-expected.txt Loading commit data...
clear-breakpoints-on-disable.js Loading commit data...
collect-obsolete-async-tasks-expected.txt Loading commit data...
collect-obsolete-async-tasks.js Loading commit data...
collect-old-async-call-chains-expected.txt Loading commit data...
collect-old-async-call-chains.js Loading commit data...
command-line-api-with-bound-function-expected.txt Loading commit data...
command-line-api-with-bound-function.js Loading commit data...
continue-to-location-expected.txt Loading commit data...
continue-to-location-target-call-frames-expected.txt Loading commit data...
continue-to-location-target-call-frames.js Loading commit data...
continue-to-location.js Loading commit data...
destory-in-break-program-expected.txt Loading commit data...
destory-in-break-program.js Loading commit data...
doesnt-step-into-injected-script-expected.txt Loading commit data...
doesnt-step-into-injected-script.js Loading commit data...
es6-module-script-parsed-expected.txt Loading commit data...
es6-module-script-parsed.js Loading commit data...
es6-module-set-script-source-expected.txt Loading commit data...
es6-module-set-script-source.js Loading commit data...
eval-scopes-expected.txt Loading commit data...
eval-scopes.js Loading commit data...
evaluate-on-call-frame-in-module-expected.txt Loading commit data...
evaluate-on-call-frame-in-module.js Loading commit data...
external-stack-trace-expected.txt Loading commit data...
external-stack-trace.js Loading commit data...
for-of-loops-expected.txt Loading commit data...
for-of-loops.js Loading commit data...
framework-break-expected.txt Loading commit data...
framework-break.js Loading commit data...
framework-nested-scheduled-break-expected.txt Loading commit data...
framework-nested-scheduled-break.js Loading commit data...
framework-precise-ranges-expected.txt Loading commit data...
framework-precise-ranges.js Loading commit data...
framework-stepping-expected.txt Loading commit data...
framework-stepping.js Loading commit data...
get-possible-breakpoints-array-literal-expected.txt Loading commit data...
get-possible-breakpoints-array-literal.js Loading commit data...
get-possible-breakpoints-expected.txt Loading commit data...
get-possible-breakpoints-lazy-error-expected.txt Loading commit data...
get-possible-breakpoints-lazy-error.js Loading commit data...
get-possible-breakpoints-master-expected.txt Loading commit data...
get-possible-breakpoints-master.js Loading commit data...
get-possible-breakpoints-restrict-to-function-expected.txt Loading commit data...
get-possible-breakpoints-restrict-to-function.js Loading commit data...
get-possible-breakpoints.js Loading commit data...
inspector-break-api-expected.txt Loading commit data...
inspector-break-api.js Loading commit data...
max-async-call-chain-depth-expected.txt Loading commit data...
max-async-call-chain-depth.js Loading commit data...
max-async-call-stack-depth-changed-expected.txt Loading commit data...
max-async-call-stack-depth-changed.js Loading commit data...
not-hold-promises-expected.txt Loading commit data...
not-hold-promises.js Loading commit data...
object-preview-internal-properties-expected.txt Loading commit data...
object-preview-internal-properties.js Loading commit data...
pause-at-negative-offset-expected.txt Loading commit data...
pause-at-negative-offset.js Loading commit data...
pause-expected.txt Loading commit data...
pause-on-async-call-expected.txt Loading commit data...
pause-on-async-call.js Loading commit data...
pause-on-oom-expected.txt Loading commit data...
pause-on-oom.js Loading commit data...
pause.js Loading commit data...
promise-chain-when-limit-hit-expected.txt Loading commit data...
promise-chain-when-limit-hit.js Loading commit data...
protocol-string-to-double-locale-expected.txt Loading commit data...
protocol-string-to-double-locale.js Loading commit data...
provisional-breakpoint-for-anonymous-script-expected.txt Loading commit data...
provisional-breakpoint-for-anonymous-script.js Loading commit data...
restore-breakpoint-expected.txt Loading commit data...
restore-breakpoint.js Loading commit data...
return-break-locations-expected.txt Loading commit data...
return-break-locations.js Loading commit data...
schedule-step-into-async-expected.txt Loading commit data...
schedule-step-into-async-set-timeout-expected.txt Loading commit data...
schedule-step-into-async-set-timeout.js Loading commit data...
schedule-step-into-async.js Loading commit data...
scope-skip-variables-with-empty-name-expected.txt Loading commit data...
scope-skip-variables-with-empty-name.js Loading commit data...
script-end-location-expected.txt Loading commit data...
script-end-location.js Loading commit data...
script-on-after-compile-expected.txt Loading commit data...
script-on-after-compile.js Loading commit data...
script-parsed-for-runtime-evaluate-expected.txt Loading commit data...
script-parsed-for-runtime-evaluate.js Loading commit data...
script-parsed-hash-expected.txt Loading commit data...
script-parsed-hash.js Loading commit data...
set-async-call-stack-depth-expected.txt Loading commit data...
set-async-call-stack-depth.js Loading commit data...
set-blackbox-patterns-expected.txt Loading commit data...
set-blackbox-patterns.js Loading commit data...
set-breakpoint-at-last-line-expected.txt Loading commit data...
set-breakpoint-at-last-line.js Loading commit data...
set-breakpoint-before-enabling-expected.txt Loading commit data...
set-breakpoint-before-enabling.js Loading commit data...
set-breakpoint-ignore-hint-when-no-location-expected.txt Loading commit data...
set-breakpoint-ignore-hint-when-no-location.js Loading commit data...
set-script-source-2-expected.txt Loading commit data...
set-script-source-2.js Loading commit data...
set-script-source-exception-expected.txt Loading commit data...
set-script-source-exception.js Loading commit data...
set-script-source-expected.txt Loading commit data...
set-script-source.js Loading commit data...
set-skip-all-pauses-expected.txt Loading commit data...
set-skip-all-pauses.js Loading commit data...
side-effect-free-debug-evaluate-expected.txt Loading commit data...
side-effect-free-debug-evaluate.js Loading commit data...
step-into-break-on-async-call-expected.txt Loading commit data...
step-into-break-on-async-call.js Loading commit data...
step-into-expected.txt Loading commit data...
step-into-external-async-task-expected.txt Loading commit data...
step-into-external-async-task-same-context-expected.txt Loading commit data...
step-into-external-async-task-same-context.js Loading commit data...
step-into-external-async-task.js Loading commit data...
step-into-nested-arrow-expected.txt Loading commit data...
step-into-nested-arrow.js Loading commit data...
step-into-next-script-expected.txt Loading commit data...
step-into-next-script.js Loading commit data...
step-into.js Loading commit data...
step-out-async-await-expected.txt Loading commit data...
step-out-async-await.js Loading commit data...
step-over-another-context-group-expected.txt Loading commit data...
step-over-another-context-group.js Loading commit data...
step-over-caught-exception-expected.txt Loading commit data...
step-over-caught-exception.js Loading commit data...
step-snapshot-expected.txt Loading commit data...
step-snapshot.js Loading commit data...
stepping-after-get-possible-breakpoints-expected.txt Loading commit data...
stepping-after-get-possible-breakpoints.js Loading commit data...
stepping-and-break-program-api-expected.txt Loading commit data...
stepping-and-break-program-api.js Loading commit data...
stepping-ignores-injected-script-expected.txt Loading commit data...
stepping-ignores-injected-script.js Loading commit data...
stepping-tail-call-expected.txt Loading commit data...
stepping-tail-call.js Loading commit data...
stepping-with-blackboxed-ranges-expected.txt Loading commit data...
stepping-with-blackboxed-ranges.js Loading commit data...
stepping-with-exposed-injected-script-expected.txt Loading commit data...
stepping-with-exposed-injected-script.js Loading commit data...
stepping-with-natives-and-frameworks-expected.txt Loading commit data...
stepping-with-natives-and-frameworks.js Loading commit data...
suspended-generator-scopes-expected.txt Loading commit data...
suspended-generator-scopes.js Loading commit data...
this-in-arrow-function-expected.txt Loading commit data...
this-in-arrow-function.js Loading commit data...
update-call-frame-scopes-expected.txt Loading commit data...
update-call-frame-scopes.js Loading commit data...
wasm-get-breakable-locations-expected.txt Loading commit data...
wasm-get-breakable-locations.js Loading commit data...
wasm-imports-expected.txt Loading commit data...
wasm-imports.js Loading commit data...
wasm-scope-info-expected.txt Loading commit data...
wasm-scope-info.js Loading commit data...
wasm-scripts-expected.txt Loading commit data...
wasm-scripts.js Loading commit data...
wasm-source-expected.txt Loading commit data...
wasm-source.js Loading commit data...
wasm-stack-expected.txt Loading commit data...
wasm-stack.js Loading commit data...
wasm-stepping-expected.txt Loading commit data...
wasm-stepping.js Loading commit data...