From 90c809ee75db5a9f2b1bea4079eacf275759d895 Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Sun, 5 Oct 2014 08:16:55 +0200 Subject: [PATCH] =?UTF-8?q?js=20debug=20auto=20expressions=20=E2=80=94=20s?= =?UTF-8?q?upport=20sub=20references=20(var.push=20->=20don't=20allow=20fu?= =?UTF-8?q?nction=20push=20->=20try=20to=20use=20var=20->=20show=20var)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/tastejs/todomvc/tree/master/architecture-examples/angularjs-perf breakpoint todoCtrl.js --- .../org/jetbrains/debugger/VariableView.java | 2 +- .../src/org/jetbrains/debugger/Variables.java | 21 ++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/platform/script-debugger/debugger-ui/src/org/jetbrains/debugger/VariableView.java b/platform/script-debugger/debugger-ui/src/org/jetbrains/debugger/VariableView.java index 9ee54199ff8c..1cf196ca45dd 100644 --- a/platform/script-debugger/debugger-ui/src/org/jetbrains/debugger/VariableView.java +++ b/platform/script-debugger/debugger-ui/src/org/jetbrains/debugger/VariableView.java @@ -398,7 +398,7 @@ public final class VariableView extends XNamedValue implements VariableContext { }); } - private void computeArrayRanges(@NotNull List properties, @NotNull XCompositeNode node) { + private void computeArrayRanges(@NotNull List properties, @NotNull XCompositeNode node) { final List variables = Variables.filterAndSort(properties, this, false); int count = variables.size(); int bucketSize = XCompositeNode.MAX_CHILDREN_TO_SHOW; diff --git a/platform/script-debugger/debugger-ui/src/org/jetbrains/debugger/Variables.java b/platform/script-debugger/debugger-ui/src/org/jetbrains/debugger/Variables.java index e85091320bfb..eda93197ee94 100644 --- a/platform/script-debugger/debugger-ui/src/org/jetbrains/debugger/Variables.java +++ b/platform/script-debugger/debugger-ui/src/org/jetbrains/debugger/Variables.java @@ -62,9 +62,7 @@ public final class Variables { } : NATURAL_NAME_COMPARATOR); sort(functions); - for (Variable variable : additionalVariables) { - properties.add(variable); - } + addAditionalVariables(variables, additionalVariables, properties); if (!properties.isEmpty()) { node.addChildren(createVariablesList(properties, context, memberFilter), functions.isEmpty() && isLast); @@ -88,7 +86,7 @@ public final class Variables { } @Nullable - public static List sortFilterAndAddValueList(@NotNull List variables, + public static List sortFilterAndAddValueList(@NotNull List variables, @NotNull XCompositeNode node, @NotNull VariableContext context, int maxChildrenToAdd, @@ -114,7 +112,7 @@ public final class Variables { } @NotNull - public static List filterAndSort(@NotNull List variables, @NotNull VariableContext context, boolean filterFunctions) { + public static List filterAndSort(@NotNull List variables, @NotNull VariableContext context, boolean filterFunctions) { if (variables.isEmpty()) { return Collections.emptyList(); } @@ -129,10 +127,19 @@ public final class Variables { } sort(result); - for (Variable variable : additionalVariables) { + addAditionalVariables(variables, additionalVariables, result); + return result; + } + + private static void addAditionalVariables(@NotNull List variables, @NotNull Collection additionalVariables, @NotNull List result) { + ol: for (Variable variable : additionalVariables) { + for (Variable frameVariable : variables) { + if (frameVariable.getName().equals(variable.getName())) { + continue ol; + } + } result.add(variable); } - return result; } private static void sort(@NotNull List result) {