Chromium Code Reviews| Index: lib/src/codegen/js_codegen.dart |
| diff --git a/lib/src/codegen/js_codegen.dart b/lib/src/codegen/js_codegen.dart |
| index dda805bcf8fdd0fcb8ed805b5732cf9836ae6b07..aff737702c0c62a0fd6560c8963284c43e5dbb0a 100644 |
| --- a/lib/src/codegen/js_codegen.dart |
| +++ b/lib/src/codegen/js_codegen.dart |
| @@ -1760,8 +1760,8 @@ class JSCodegenVisitor extends GeneralizingAstVisitor with ConversionVisitor { |
| } else if (expr is PropertyAccess) { |
| PropertyAccess prop = expr; |
| return new PropertyAccess( |
| - _bindValue(scope, 'o', prop.target, context: context), prop.operator, |
| - prop.propertyName)..staticType = expr.staticType; |
| + _bindValue(scope, 'o', prop.realTarget, context: context), |
|
Jennifer Messerly
2015/04/10 20:32:33
realTarget isn't right, it should be: _getTarget(p
vsm
2015/04/10 20:41:35
Done.
|
| + prop.operator, prop.propertyName)..staticType = expr.staticType; |
| } else if (expr is PrefixedIdentifier) { |
| PrefixedIdentifier ident = expr; |
| return new PrefixedIdentifier( |
| @@ -2022,14 +2022,14 @@ class JSCodegenVisitor extends GeneralizingAstVisitor with ConversionVisitor { |
| // This could incorrectly shadow a user's name. |
| var savedCatch = _catchParameter; |
| - if (clauses.length == 1) { |
| + if (clauses.length == 1 && clauses.single.exceptionParameter != null) { |
| // Special case for a single catch. |
| _catchParameter = clauses.single.exceptionParameter; |
| } else { |
| _catchParameter = _createTemporary('e', rules.provider.dynamicType); |
| } |
| - JS.Statement catchBody = null; |
| + JS.Statement catchBody = js.statement('throw #;', _visit(_catchParameter)); |
|
Jennifer Messerly
2015/04/10 20:32:33
wow, good catch... I thought we were doing this...
|
| for (var clause in clauses.reversed) { |
| catchBody = _catchClauseGuard(clause, catchBody); |
| } |