js debug auto expressions — support sub references (var.push -> don't allow function push -> try to use var -> show var)

https://github.com/tastejs/todomvc/tree/master/architecture-examples/angularjs-perf

breakpoint todoCtrl.js
This commit is contained in:
Vladimir Krivosheev
2014-10-05 08:22:06 +02:00
parent 6598b0ffbe
commit 90c809ee75
2 changed files with 15 additions and 8 deletions
@@ -398,7 +398,7 @@ public final class VariableView extends XNamedValue implements VariableContext {
});
}
private void computeArrayRanges(@NotNull List<? extends Variable> properties, @NotNull XCompositeNode node) {
private void computeArrayRanges(@NotNull List<Variable> properties, @NotNull XCompositeNode node) {
final List<Variable> variables = Variables.filterAndSort(properties, this, false);
int count = variables.size();
int bucketSize = XCompositeNode.MAX_CHILDREN_TO_SHOW;
@@ -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<Variable> sortFilterAndAddValueList(@NotNull List<? extends Variable> variables,
public static List<Variable> sortFilterAndAddValueList(@NotNull List<Variable> variables,
@NotNull XCompositeNode node,
@NotNull VariableContext context,
int maxChildrenToAdd,
@@ -114,7 +112,7 @@ public final class Variables {
}
@NotNull
public static List<Variable> filterAndSort(@NotNull List<? extends Variable> variables, @NotNull VariableContext context, boolean filterFunctions) {
public static List<Variable> filterAndSort(@NotNull List<Variable> 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<? extends Variable> variables, @NotNull Collection<Variable> additionalVariables, @NotNull List<Variable> 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<Variable> result) {