computeArguments method
List
computeArguments(
- List<Node> args, {
- bool resolveNames = false,
})
Implementation
List computeArguments(List<Node> args, {bool resolveNames = false}) {
List l = [];
for (Node node in args) {
if (resolveNames) {
if (node is Expression) {
if (node is SpreadExpression) {
dynamic spreadValue = getValueFromExpression(node.argument);
if (spreadValue is List) {
l.addAll(spreadValue);
continue;
}
throw JSException(node.line ?? 1,
'Spread in function calls requires a list value.');
}
dynamic v = getValueFromExpression(node);
if (v is JavascriptFunction) {
l.add(v._onCall);
} else {
l.add(v);
}
} else if (node is Name) {
l.add(getValue(node));
}
} else {
l.add(node.visitBy(this));
}
}
return l;
}