Bug 258662 - Promise rejections in top-level await can't be handled
Summary: Promise rejections in top-level await can't be handled
Status: RESOLVED DUPLICATE of bug 259439
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Nightly Build
Hardware: All All
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2023-06-29 02:13 PDT by Peter Gassner
Modified: 2024-04-06 20:22 PDT (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Peter Gassner 2023-06-29 02:13:25 PDT
When a Promise is rejected in a JavaScript module in a top-level await position, there is no way to handle the error in WebKit.

Given an HTML document

    <html>
      <script src="test.js" type="module"></script>
    </html>

and a script

    // test.js
    window.onerror = console.log;
    window.addEventListener('unhandledrejection', console.log)
    await Promise.reject(new Error('This should be handled'));
    export {};

WebKit doesn't propagate the rejected Promise to the error handlers on window and instead crashes silently.

Both Gecko and Chromium let us handle this kind of error with `window.onerror`.
Comment 1 Radar WebKit Bug Importer 2023-07-06 02:14:16 PDT
<rdar://problem/111837095>
Comment 2 Alexey Shvayka 2024-04-06 20:22:54 PDT

*** This bug has been marked as a duplicate of bug 259439 ***