[Webkit-unassigned] [Bug 243668] New: Error stack is incomplete for async call

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Aug 8 06:29:03 PDT 2022


https://bugs.webkit.org/show_bug.cgi?id=243668

            Bug ID: 243668
           Summary: Error stack is incomplete for async call
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: JavaScriptCore
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: xidorn-webkit at upsuper.org

Created attachment 461484

  --> https://bugs.webkit.org/attachment.cgi?id=461484&action=review

testcase

Please see the attached testcase. There is a series of async functions, c() calls b() calls a(), but if you open it on Safari, the stack shows:
> throwError at async-error.html:4:18
> @async-error.html:8:13
> asyncFunctionResume@[native code]
> @[native code]
> promiseReactionJobWithoutPromise@[native code]
> promiseReactionJob@[native code]
which is not very useful.

Firefox has a similar issue, but at least it doesn't show things from native code:
> throwError at async-error.html:4:9
> a at async-error.html:8:3

Chrome has the best behavior that it can properly track across async frame:
> Error
>     at throwError (async-error.html:4:9)
>     at a (async-error.html:8:3)
>     at async b (async-error.html:11:3)
>     at async c (async-error.html:14:3)

Being able to track across async frame is important for knowing what is the right place to handle an error. Not being able to go across async frame means it is very hard to track the stack for any network errors.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20220808/3eccc71e/attachment.htm>


More information about the webkit-unassigned mailing list