• littledan's avatar
    Reland Async/await Promise dependency graph · 1b414e28
    littledan authored
    This patch knits together Promises returned by async/await such that when
    one async function awaits the result of another one, catch prediction works
    across the boundaries, whether the exception comes synchronously or
    asynchronously. Edges are added in three places:
    - When a locally uncaught await happens, if the value passed into await
      is a Promise, from the awaited value to the Promise under construction
      in the broader async function
    - From a "throwaway" Promise, which may be found on the Promise debug
      stack, to the Promise under construction in the async function that
      surrounds it
    - When a Promise is resolved with another Promise (e.g., when returning a
      Promise from an async function)
    
    In this reland, the caught tests are broken up into four parts to avoid
    timeouts.
    
    BUG=v8:5167
    
    Review-Url: https://codereview.chromium.org/2346363004
    Cr-Commit-Position: refs/heads/master@{#39564}
    1b414e28
async-debug-caught-exception-cases2.js 329 Bytes