diff --git a/platform/script-debugger/backend/src/debugger/BreakpointTarget.java b/platform/script-debugger/backend/src/debugger/BreakpointTarget.java index 55b952b618c5..4e9485f8fd43 100644 --- a/platform/script-debugger/backend/src/debugger/BreakpointTarget.java +++ b/platform/script-debugger/backend/src/debugger/BreakpointTarget.java @@ -16,6 +16,7 @@ package org.jetbrains.debugger; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; /** * A reference to some JavaScript text that you can set breakpoints on. The reference may @@ -36,7 +37,7 @@ public abstract class BreakpointTarget { public abstract R accept(Visitor visitor); public interface Visitor { - R visitScriptName(String scriptName); + R visitScriptName(String scriptName, @Nullable Script script); R visitScript(Script script); @@ -87,10 +88,19 @@ public abstract class BreakpointTarget { * A target that refers to a script by its name. Breakpoint will be set on every matching script currently loaded in VM. */ public static final class ScriptName extends BreakpointTarget { + @NotNull private final String name; + @Nullable + private final Script script; public ScriptName(@NotNull String name) { this.name = name; + this.script = null; + } + + public ScriptName(@NotNull Script script) { + this.script = script; + this.name = script.getUrl().toDecodedForm(); } @NotNull @@ -98,6 +108,11 @@ public abstract class BreakpointTarget { return name; } + @Nullable + public Script getScript() { + return script; + } + @Override public String toString() { return name; @@ -105,7 +120,7 @@ public abstract class BreakpointTarget { @Override public R accept(@NotNull Visitor visitor) { - return visitor.visitScriptName(name); + return visitor.visitScriptName(name, script); } @Override