summaryrefslogtreecommitdiff
path: root/platform/script-debugger/backend/src/org/jetbrains/debugger/ValueModifierUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/script-debugger/backend/src/org/jetbrains/debugger/ValueModifierUtil.java')
-rw-r--r--platform/script-debugger/backend/src/org/jetbrains/debugger/ValueModifierUtil.java53
1 files changed, 2 insertions, 51 deletions
diff --git a/platform/script-debugger/backend/src/org/jetbrains/debugger/ValueModifierUtil.java b/platform/script-debugger/backend/src/org/jetbrains/debugger/ValueModifierUtil.java
index b5edb7fa3282..d71261c5286b 100644
--- a/platform/script-debugger/backend/src/org/jetbrains/debugger/ValueModifierUtil.java
+++ b/platform/script-debugger/backend/src/org/jetbrains/debugger/ValueModifierUtil.java
@@ -5,6 +5,7 @@ import com.intellij.openapi.util.AsyncResult;
import com.intellij.util.Consumer;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.debugger.values.Value;
+import org.jetbrains.io.JsonUtil;
import java.util.Collections;
import java.util.List;
@@ -12,21 +13,6 @@ import java.util.regex.Pattern;
public final class ValueModifierUtil {
private static final Pattern KEY_NOTATION_PROPERTY_NAME_PATTERN = Pattern.compile("[\\p{L}_$]+[\\d\\p{L}_$]*");
- private static final String[] REPLACEMENT_CHARS;
-
- static {
- REPLACEMENT_CHARS = new String[128];
- for (int i = 0; i <= 31; i++) {
- REPLACEMENT_CHARS[i] = String.format("\\u%04x", (int)i);
- }
- REPLACEMENT_CHARS['"'] = "\\\"";
- REPLACEMENT_CHARS['\\'] = "\\\\";
- REPLACEMENT_CHARS['\t'] = "\\t";
- REPLACEMENT_CHARS['\b'] = "\\b";
- REPLACEMENT_CHARS['\n'] = "\\n";
- REPLACEMENT_CHARS['\r'] = "\\r";
- REPLACEMENT_CHARS['\f'] = "\\f";
- }
public static ActionCallback setValue(@NotNull final Variable variable, String newValue, @NotNull final EvaluateContext evaluateContext, @NotNull final ValueModifier modifier) {
final ActionCallback callback = new ActionCallback();
@@ -77,44 +63,9 @@ public final class ValueModifierUtil {
builder.append(name);
}
else {
- escape(name, builder);
+ JsonUtil.escape(name, builder);
}
builder.append(']');
}
}
-
- public static void escape(CharSequence value, StringBuilder sb) {
- int length = value.length();
- sb.ensureCapacity(sb.capacity() + length + 2);
- sb.append('"');
- int last = 0;
- for (int i = 0; i < length; i++) {
- char c = value.charAt(i);
- String replacement;
- if (c < 128) {
- replacement = REPLACEMENT_CHARS[c];
- if (replacement == null) {
- continue;
- }
- }
- else if (c == '\u2028') {
- replacement = "\\u2028";
- }
- else if (c == '\u2029') {
- replacement = "\\u2029";
- }
- else {
- continue;
- }
- if (last < i) {
- sb.append(value, last, i);
- }
- sb.append(replacement);
- last = i + 1;
- }
- if (last < length) {
- sb.append(value, last, length);
- }
- sb.append('"');
- }
} \ No newline at end of file