Chromium Code Reviews| Index: compiler/java/com/google/dart/compiler/backend/js/GenerateJavascriptAST.java |
| =================================================================== |
| --- compiler/java/com/google/dart/compiler/backend/js/GenerateJavascriptAST.java (revision 418) |
| +++ compiler/java/com/google/dart/compiler/backend/js/GenerateJavascriptAST.java (working copy) |
| @@ -1188,7 +1188,8 @@ |
| continue; |
| } |
| - JsExpression paramName = string(jsParam.getName().getShortIdent()); |
| + String paramNameStr = getPropNameForNamedParameter(jsParam); |
| + JsExpression paramName = string(getPropNameForNamedParameter(jsParam)); |
| if (generateClosureCompatibleCode) { |
| paramName = AstUtil.call(null, |
| AstUtil.nameref(null, "JSCompiler_renameProperty"), paramName); |
| @@ -1197,7 +1198,7 @@ |
| JsExpression ppSeen = AstUtil.preinc(null, seen.makeRef()); |
| JsBinaryOperation thenExpr = AstUtil.comma(null, ppSeen, |
| - AstUtil.newNameRef(namedParam.getName().makeRef(), jsParam.getName())); |
| + AstUtil.newNameRef(namedParam.getName().makeRef(), paramNameStr)); |
| DartExpression defaultValue = param.getDefaultExpr(); |
| JsExpression elseExpr = (defaultValue != null) |
| @@ -1250,6 +1251,18 @@ |
| return tramp; |
| } |
| + private String mangleNamedParameterName(String name) { |
| + return "$p_" + name; |
| + } |
| + |
| + private String getPropNameForNamedParameter(JsParameter jsParam) { |
| + return mangleNamedParameterName(jsParam.getName().getShortIdent()); |
| + } |
| + |
| + private String getPropNameForNameParameter(DartNamedExpression namedExpr) { |
|
jgw
2011/10/17 19:12:07
Name[d]Parameter?
John Lenz
2011/10/17 19:19:39
Done.
|
| + return mangleNamedParameterName(namedExpr.getName().getTargetName()); |
| + } |
| + |
| /** |
| * If necessary, add object holding aliases for any parameters |
| * captured by function closures. |
| @@ -2711,9 +2724,9 @@ |
| for (DartExpression arg : args) { |
| if (arg instanceof DartNamedExpression) { |
| DartNamedExpression namedExpr = ((DartNamedExpression) arg); |
| - String targetName = namedExpr.getName().getTargetName(); |
| + JsExpression targetName = string(getPropNameForNameParameter(namedExpr)); |
| JsPropertyInitializer propInit = new JsPropertyInitializer( |
| - string(targetName), |
| + targetName, |
| (JsExpression) generate(namedExpr.getExpression())); |
| bag.getPropertyInitializers().add(propInit); |
| } |