JS debugger: add registry options to set first line breakpoints (WEB-30471)

This commit is contained in:
Konstantin Ulitin
2018-01-25 12:25:48 +03:00
parent b3cc1f111e
commit 4cd1a0f29a
4 changed files with 19 additions and 3 deletions
@@ -80,6 +80,10 @@ interface BreakpointManager {
*/
fun enableBreakpoints(enabled: Boolean): Promise<*>
fun setBreakOnFirstStatement()
fun isBreakOnFirstStatement(context: SuspendContext<*>): Boolean
interface SetBreakpointResult
data class BreakpointExist(val existingBreakpoint: Breakpoint) : SetBreakpointResult
data class BreakpointCreated(val breakpoint: Breakpoint, val isResolved: Promise<out Breakpoint>) : SetBreakpointResult
@@ -113,6 +113,11 @@ abstract class BreakpointManagerBase<T : BreakpointBase<*>> : BreakpointManager
override fun flush(breakpoint: Breakpoint) = (breakpoint as T).flush(this)
override fun enableBreakpoints(enabled: Boolean): Promise<*> = rejectedPromise<Any?>("Unsupported")
override fun setBreakOnFirstStatement() {
}
override fun isBreakOnFirstStatement(context: SuspendContext<*>): Boolean = false
}
// used in goland
@@ -135,4 +140,9 @@ class DummyBreakpointManager : BreakpointManager {
override fun flush(breakpoint: Breakpoint) = nullPromise()
override fun enableBreakpoints(enabled: Boolean) = nullPromise()
override fun setBreakOnFirstStatement() {
}
override fun isBreakOnFirstStatement(context: SuspendContext<*>): Boolean = false
}
@@ -230,10 +230,8 @@ internal class Generator(outputDir: String, private val rootPackage: String, req
val READER_INTERFACE_NAME = "ProtocolResponseReader"
// todo DOMDebugger
private val INCLUDED_DOMAINS = arrayOf("CSS", "Debugger", "DOM", "Inspector", "Log", "Network", "Page", "Runtime", "ServiceWorker",
"Tracing", "Target", "Overlay",
"Console")
"Tracing", "Target", "Overlay", "Console", "DOMDebugger")
fun generateMethodNameSubstitute(originalName: String, out: TextOutput): String {
if (originalName != "this") {
@@ -863,6 +863,10 @@ js.debugger.use.vm.receiver=false
js.debugger.auto.expressions.all.qualifiers=false
js.debugger.async.call.stack.depth=10
js.debugger.async.call.stack.depth.description=Enables or disables async call stacks tracking in JS debugger
js.debugger.break.on.first.statement=false
js.debugger.break.on.first.statement.description=Puts instrumentation breakpoint on first statement of each script.
js.debugger.break.on.first.statement.with.regexp=false
js.debugger.break.on.first.statement.with.regexp.description=Puts regexp breakpoint on first statement of each script.
html.prefer.short.notation.of.boolean.attributes=true