Closed Bug 1512292 Opened 6 years ago Closed 6 years ago

[meta] Better stacks in debugger when paused in async code

Categories

(DevTools :: Debugger, enhancement)

enhancement
Not set
normal

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 1523865

People

(Reporter: jorendorff, Unassigned)

References

Details

(Keywords: meta)

1. Suppose an async function g does `await f()`. f is an async function. In a later tick, the debugger breaks in f. Only one frame is on the stack (the frame for f), but the debugger should show: f() ------------ async boundary g() 2. Or, if g in turn was called with `await g()` from another async function h, then we should show that too: f() ------------ async boundary g() h() (Maybe with another async boundary; that's a UI decision we can defer.) 3. Another test case: g does `await f().then(m);`. The debugger should show: f() ------------ async boundary m() g()
Component: JavaScript Engine → Debugger
Product: Core → DevTools
Depends on: 1477063
What is hard here? - Identifying and documenting cases to test (but here we have 3 of them to start with) - Decrypting the promise object graph - Exposing all the bits required via Debugger - Implementing this in the server and making it maintainable - Determining how the server should present it to the client - Need a way to express "async boundary" - Need a way to express "this is like a call frame, only we're going to call it when we get to it (relax, this is fine)"
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.