From b087526b8c8984eaad7b9d806bb37acdf83f3df0 Mon Sep 17 00:00:00 2001 From: Ron Buckton Date: Wed, 20 Jul 2016 17:55:55 -0700 Subject: [PATCH] Fix several test failures. --- src/compiler/core.ts | 4 +++- src/compiler/factory.ts | 4 ++-- src/compiler/transformers/es6.ts | 27 +++++++++++++-------------- src/compiler/visitor.ts | 8 ++++---- 4 files changed, 22 insertions(+), 21 deletions(-) diff --git a/src/compiler/core.ts b/src/compiler/core.ts index cf2d85c018f..1d5717fce4d 100644 --- a/src/compiler/core.ts +++ b/src/compiler/core.ts @@ -355,7 +355,9 @@ namespace ts { export function addRange(to: T[], from: T[]): void { if (to && from) { for (const v of from) { - to.push(v); + if (v !== undefined) { + to.push(v); + } } } } diff --git a/src/compiler/factory.ts b/src/compiler/factory.ts index 13ca26c7835..1930481115c 100644 --- a/src/compiler/factory.ts +++ b/src/compiler/factory.ts @@ -2635,8 +2635,8 @@ namespace ts { return node; } - export function startOnNewLine(node: T, startsOnNewLine?: boolean): T { - node.startsOnNewLine = startsOnNewLine !== false; + export function startOnNewLine(node: T): T { + node.startsOnNewLine = true; return node; } diff --git a/src/compiler/transformers/es6.ts b/src/compiler/transformers/es6.ts index a347282afa0..e6c8355c878 100644 --- a/src/compiler/transformers/es6.ts +++ b/src/compiler/transformers/es6.ts @@ -1899,28 +1899,27 @@ namespace ts { // Write out the first non-computed properties, then emit the rest through indexing on the temp variable. const expressions: Expression[] = []; - expressions.push( - startOnNewLine( - createAssignment( - temp, - setNodeEmitFlags( - createObjectLiteral( - visitNodes(properties, visitor, isObjectLiteralElement, 0, numInitialProperties), - /*location*/ undefined, - node.multiLine - ), - NodeEmitFlags.Indented - ) + const assignment = createAssignment( + temp, + setNodeEmitFlags( + createObjectLiteral( + visitNodes(properties, visitor, isObjectLiteralElement, 0, numInitialProperties), + /*location*/ undefined, + node.multiLine ), - node.multiLine + NodeEmitFlags.Indented ) ); + if (node.multiLine) { + assignment.startsOnNewLine = true; + } + expressions.push(assignment); addObjectLiteralMembers(expressions, node, temp, numInitialProperties); // We need to clone the temporary identifier so that we can write it on a // new line - expressions.push(startOnNewLine(getMutableClone(temp), node.multiLine)); + expressions.push(node.multiLine ? startOnNewLine(getMutableClone(temp)) : temp); return inlineExpressions(expressions); } diff --git a/src/compiler/visitor.ts b/src/compiler/visitor.ts index 70789e22455..58f203a0a6f 100644 --- a/src/compiler/visitor.ts +++ b/src/compiler/visitor.ts @@ -827,19 +827,19 @@ namespace ts { case SyntaxKind.DeleteExpression: return updateDelete(node, - visitNode((node).expression, visitor, isUnaryExpression)); + visitNode((node).expression, visitor, isExpression)); case SyntaxKind.TypeOfExpression: return updateTypeOf(node, - visitNode((node).expression, visitor, isUnaryExpression)); + visitNode((node).expression, visitor, isExpression)); case SyntaxKind.VoidExpression: return updateVoid(node, - visitNode((node).expression, visitor, isUnaryExpression)); + visitNode((node).expression, visitor, isExpression)); case SyntaxKind.AwaitExpression: return updateAwait(node, - visitNode((node).expression, visitor, isUnaryExpression)); + visitNode((node).expression, visitor, isExpression)); case SyntaxKind.BinaryExpression: return updateBinary(node,