• littledan's avatar
    Reland of Fix async/await memory leak (patchset #1 id:1 of... · bf43f883
    littledan authored
    Reland of Fix async/await memory leak (patchset #1 id:1 of https://codereview.chromium.org/2348403003/ )
    
    This patch closes a memory leak in async/await where the desugaring
    was creating a situation analagous to that described in v8:5002.
    Intermediate Promises were being kept alive, so a long-running loop
    would cause linear memory usage on the heap. This patch returns
    undefined to the 'then' callback passed into PerformPromiseThen
    in order to avoid this hazard. Test expectations are fixed to remove
    expecting extraneous events which occurred on Promises that are
    now not given unnecessarily complex resolution paths before being
    thrown away.
    
    This patch is a reland; originally, tests which exercised the memory
    exhaustion were checked in. Although it's possible to find good parameters
    for running such tests locally, it is difficult to automate the tests
    between the rock of timeouts and the hard place of too-small heaps
    causing memory exhaustion in some modes even when there is no leak.
    
    BUG=v8:5390
    
    Review-Url: https://codereview.chromium.org/2352933002
    Cr-Commit-Position: refs/heads/master@{#39520}
    bf43f883
debug-async-function-async-task-event.js 1.72 KB