| Index: lib/src/js/nodes.dart
|
| diff --git a/lib/src/js/nodes.dart b/lib/src/js/nodes.dart
|
| index 0ba181426578b19f97656189834b4847ce9d161d..5d0b3d172e7b5d96ae1e9cc0ee01b9290037217d 100644
|
| --- a/lib/src/js/nodes.dart
|
| +++ b/lib/src/js/nodes.dart
|
| @@ -92,6 +92,7 @@ abstract class NodeVisitor<T> {
|
| T visitArrayBindingPattern(ArrayBindingPattern node);
|
| T visitObjectBindingPattern(ObjectBindingPattern node);
|
| T visitDestructuredVariable(DestructuredVariable node);
|
| + T visitSimpleBindingPattern(SimpleBindingPattern node);
|
| }
|
|
|
| class BaseVisitor<T> implements NodeVisitor<T> {
|
| @@ -221,6 +222,7 @@ class BaseVisitor<T> implements NodeVisitor<T> {
|
| T visitObjectBindingPattern(ObjectBindingPattern node)
|
| => visitBindingPattern(node);
|
| T visitDestructuredVariable(DestructuredVariable node) => visitNode(node);
|
| + T visitSimpleBindingPattern(SimpleBindingPattern node) => visitNode(node);
|
| }
|
|
|
| abstract class Node {
|
| @@ -777,7 +779,8 @@ abstract class VariableBinding extends Expression {
|
| }
|
|
|
| class DestructuredVariable extends Expression implements Parameter {
|
| - final Identifier name;
|
| + /// [LiteralString] or [Identifier].
|
| + final Expression name;
|
| final BindingPattern structure;
|
| final Expression defaultValue;
|
| DestructuredVariable({this.name, this.structure, this.defaultValue}) {
|
| @@ -807,6 +810,17 @@ abstract class BindingPattern extends Expression implements VariableBinding {
|
| }
|
| }
|
|
|
| +class SimpleBindingPattern extends BindingPattern {
|
| + final Identifier name;
|
| + SimpleBindingPattern(Identifier name)
|
| + : super([new DestructuredVariable(name: name)]), this.name = name;
|
| + accept(NodeVisitor visitor) => visitor.visitSimpleBindingPattern(this);
|
| +
|
| + /// Avoid parenthesis when pretty-printing.
|
| + @override int get precedenceLevel => PRIMARY;
|
| + @override Node _clone() => new SimpleBindingPattern(name);
|
| +}
|
| +
|
| class ObjectBindingPattern extends BindingPattern {
|
| ObjectBindingPattern(List<DestructuredVariable> variables)
|
| : super(variables);
|
|
|