| Summary: | Web Inspector: Debugger: add a Step next that steps by expression | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Devin Rousso <hi> | ||||||||||
| Component: | Web Inspector | Assignee: | Devin Rousso <hi> | ||||||||||
| Status: | RESOLVED FIXED | ||||||||||||
| Severity: | Normal | CC: | ews-watchlist, hi, inspector-bugzilla-changes, joepeck, keith_miller, mark.lam, msaboff, saam, timothy, tzagallo, webkit-bug-importer | ||||||||||
| Priority: | P2 | Keywords: | InRadar | ||||||||||
| Version: | WebKit Local Build | ||||||||||||
| Hardware: | All | ||||||||||||
| OS: | All | ||||||||||||
| Bug Depends on: | |||||||||||||
| Bug Blocks: | 210588 | ||||||||||||
| Attachments: |
|
||||||||||||
Created attachment 396055 [details]
Patch
This patch modifies the inspector protocol. Please ensure that any frontend changes appropriately use feature checks for new protocol features. Created attachment 396056 [details]
[Video] After Patch is applied
Created attachment 396057 [details]
Patch
oops, forgot the new image 😅
Comment on attachment 396057 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=396057&action=review > Source/JavaScriptCore/inspector/protocol/Debugger.json:199 > + "name": "stepNext", stepToNextExpression? stepOverExpression? Created attachment 396469 [details]
Patch
rename "Step next" to just "Step"
Committed r260113: <https://trac.webkit.org/changeset/260113> All reviewed patches have been landed. Closing bug and clearing flags on attachment 396469 [details]. |
When debugging minified code, if statement trees are often squished together with parenthesis and logical operators. To give an example, ``` a() && b() && c(); ``` with the current set of stepping actions available right now, the only way to reach `c()` is to Step into and Step out of each function until `c()` is reached, which is a process that has many opportunities for a mistake. Step next would act like Step over, except that instead of stepping statement-by-statement (e.g. Step next would step over the entire line until whatever is after the `;`) it would step expression-by-expression, but without stepping into any function calls. Basically, it's a hybrid of Step over and Step into in that it steps to the next pause opportunity within the current (or ancestor) call frame.