Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1193)

Unified Diff: lib/src/js/nodes.dart

Issue 1677863002: Use default params when --destructure-named-params + fix renaming of reserved destructured params (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/src/codegen/js_codegen.dart ('k') | lib/src/js/printer.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « lib/src/codegen/js_codegen.dart ('k') | lib/src/js/printer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698