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.
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].
<rdar://problem/61802875>