fix(compiler): short-circut expressions with an index (#13263)

Fixes #13254
This commit is contained in:
Chuck Jazdzewski
2016-12-06 10:40:15 -08:00
committed by Alex Rickabaugh
parent 4bd8f58552
commit f31c9470fa
2 changed files with 14 additions and 2 deletions

View File

@ -284,8 +284,13 @@ class _AstToIrVisitor implements cdAst.AstVisitor {
}
visitKeyedRead(ast: cdAst.KeyedRead, mode: _Mode): any {
return convertToStatementIfNeeded(
mode, this.visit(ast.obj, _Mode.Expression).key(this.visit(ast.key, _Mode.Expression)));
const leftMostSafe = this.leftMostSafeNode(ast);
if (leftMostSafe) {
return this.convertSafeAccess(ast, leftMostSafe, mode);
} else {
return convertToStatementIfNeeded(
mode, this.visit(ast.obj, _Mode.Expression).key(this.visit(ast.key, _Mode.Expression)));
}
}
visitKeyedWrite(ast: cdAst.KeyedWrite, mode: _Mode): any {