| Index: lib/src/codegen/js_codegen.dart
|
| diff --git a/lib/src/codegen/js_codegen.dart b/lib/src/codegen/js_codegen.dart
|
| index afbeb695f176f000612fd3b1258acf8bf09396d4..1a218daabc442e012ac6716277692100fa2a7234 100644
|
| --- a/lib/src/codegen/js_codegen.dart
|
| +++ b/lib/src/codegen/js_codegen.dart
|
| @@ -885,23 +885,25 @@ class JSCodegenVisitor extends GeneralizingAstVisitor with ConversionVisitor {
|
|
|
| var body = [];
|
| for (var param in parameters.parameters) {
|
| - // TODO(justinfagnani): rename identifier if necessary
|
| - var name = param.identifier.name;
|
| + var jsParam = _visit(param.identifier);
|
|
|
| if (param.kind == ParameterKind.NAMED) {
|
| + // Parameters will be passed using their real names, not the (possibly
|
| + // renamed) local variable.
|
| + var paramName = js.string(param.identifier.name, "'");
|
| body.add(js.statement('let # = # && # in # ? #.# : #;', [
|
| - name,
|
| + jsParam,
|
| _namedArgTemp,
|
| - js.string(name, "'"),
|
| + paramName,
|
| _namedArgTemp,
|
| _namedArgTemp,
|
| - name,
|
| + paramName,
|
| _defaultParamValue(param),
|
| ]));
|
| } else if (param.kind == ParameterKind.POSITIONAL) {
|
| body.add(js.statement('if (# === void 0) # = #;', [
|
| - name,
|
| - name,
|
| + jsParam,
|
| + jsParam,
|
| _defaultParamValue(param)
|
| ]));
|
| }
|
|
|