• littledan's avatar
    Change which ExceptionEvents are triggered by Promises · 013e49f7
    littledan authored
    To make async/await catch prediction work well, this patch regularizes
    the exception events sent to DevTools from various places in the Promise
    lifecycle. The core is that there should be an exception event when the
    rejection first starts, rather than when it is propagated.
    
    - Several cases within Promise code which propagate errors are
      modified to not trigger a new ExceptionEvent in that case, such
      as .then on a rejected Promise and returning a rejected Promise
      from .then, as well as Promise.race and Promise.all.
    - Make Promise.reject() create an ExceptionEvent, subject to catch
      prediction based on the Promise stack. This is important
      so that, e.g., if "await Promise.reject()" will trigger a new
      throw (rather than a silent rethrow of something that never
      triggered an event in the first place).
    
    BUG=v8:5167
    
    Review-Url: https://codereview.chromium.org/2244003003
    Cr-Commit-Position: refs/heads/master@{#38847}
    013e49f7
Name
Last commit
Last update
..
async-task-event.js Loading commit data...
evaluate-across-microtasks.js Loading commit data...
promise-all-caught.js Loading commit data...
promise-all-uncaught.js Loading commit data...
promise-race-caught.js Loading commit data...
promise-race-uncaught.js Loading commit data...
reentry.js Loading commit data...
reject-after-resolve.js Loading commit data...
reject-caught-all.js Loading commit data...
reject-caught-by-default-reject-handler.js Loading commit data...
reject-caught-late.js Loading commit data...
reject-caught-uncaught.js Loading commit data...
reject-in-constructor.js Loading commit data...
reject-uncaught-all.js Loading commit data...
reject-uncaught-late.js Loading commit data...
reject-uncaught-uncaught.js Loading commit data...
reject-with-invalid-reject.js Loading commit data...
reject-with-throw-in-reject.js Loading commit data...
reject-with-undefined-reject.js Loading commit data...
stepin-constructor.js Loading commit data...
stepin-handler.js Loading commit data...
throw-caught-all.js Loading commit data...
throw-caught-by-default-reject-handler.js Loading commit data...
throw-caught-late.js Loading commit data...
throw-caught-uncaught.js Loading commit data...
throw-eventually-caught.js Loading commit data...
throw-finally-caught-all.js Loading commit data...
throw-in-constructor.js Loading commit data...
throw-uncaught-all.js Loading commit data...
throw-uncaught-uncaught.js Loading commit data...
throw-with-throw-in-reject.js Loading commit data...
throw-with-undefined-reject.js Loading commit data...
try-reject-in-constructor.js Loading commit data...
try-throw-reject-in-constructor.js Loading commit data...