| Index: lib/src/js/builder.dart
|
| diff --git a/lib/src/js/builder.dart b/lib/src/js/builder.dart
|
| index 5037a3f0ef142003125f4e83838acf2d5f2f8dba..f868e67a9f10175e7d762e1c7159891c20a1fc0e 100644
|
| --- a/lib/src/js/builder.dart
|
| +++ b/lib/src/js/builder.dart
|
| @@ -840,7 +840,7 @@ class MiniJsParser {
|
| return parseArrowFunctionBody(<Parameter>[]);
|
| }
|
| if (acceptCategory(ELLIPSIS)) {
|
| - var params = <Parameter>[new RestParameter(parseParameter())];
|
| + var params = <Parameter>[parseParameter(isRest: true)];
|
| expectCategory(RPAREN);
|
| expectCategory(ARROW);
|
| return parseArrowFunctionBody(params);
|
| @@ -850,7 +850,7 @@ class MiniJsParser {
|
| if (acceptCategory(ELLIPSIS)) {
|
| var params = <Parameter>[];
|
| _expressionToParameterList(expression, params);
|
| - params.add(new RestParameter(parseParameter()));
|
| + params.add(parseParameter(isRest: true));
|
| expectCategory(RPAREN);
|
| expectCategory(ARROW);
|
| return parseArrowFunctionBody(params);
|
| @@ -873,7 +873,7 @@ class MiniJsParser {
|
| */
|
| void _expressionToParameterList(Expression node, List<Parameter> params) {
|
| if (node is Identifier) {
|
| - params.add(node);
|
| + params.add(new Parameter(node));
|
| } else if (node is Binary && node.op == ',') {
|
| // TODO(jmesserly): this will allow illegal parens, such as
|
| // `((a, b), (c, d))`. Fixing it on the left side needs an explicit
|
| @@ -915,7 +915,7 @@ class MiniJsParser {
|
| if (!acceptCategory(RPAREN)) {
|
| for (;;) {
|
| if (acceptCategory(ELLIPSIS)) {
|
| - params.add(new RestParameter(parseParameter()));
|
| + params.add(parseParameter(isRest: true));
|
| expectCategory(RPAREN);
|
| break;
|
| }
|
| @@ -946,17 +946,17 @@ class MiniJsParser {
|
| }
|
|
|
| /** Parse parameter name or interpolated parameter. */
|
| - Identifier parseParameter() {
|
| + Parameter parseParameter({bool isRest: false}) {
|
| if (acceptCategory(HASH)) {
|
| var nameOrPosition = parseHash();
|
| - var parameter = new InterpolatedParameter(nameOrPosition);
|
| + var parameter = new InterpolatedParameter(nameOrPosition, isRest: isRest);
|
| interpolatedValues.add(parameter);
|
| return parameter;
|
| } else {
|
| // TODO(jmesserly): validate this is not a keyword
|
| String argumentName = lastToken;
|
| expectCategory(ALPHA);
|
| - return new Identifier(argumentName);
|
| + return new Parameter(new Identifier(argumentName), isRest: isRest);
|
| }
|
| }
|
|
|
|
|