Fixed bugs in emit for more consistent output and missing hints for transformations.

This commit is contained in:
Ron Buckton
2015-10-28 13:33:03 -07:00
parent 686c94cd67
commit 74ac4c5b1c
15 changed files with 1580 additions and 2318 deletions

View File

@@ -70,24 +70,6 @@ namespace ts {${each(discovery.createableNodes, syntaxNode => `
}
return false;
}`)}
export function cloneNode<TNode extends Node>(node: TNode, location?: TextRange, flags?: NodeFlags): TNode;
export function cloneNode(node: Node, location?: TextRange, flags: NodeFlags = node.flags): Node {
if (node) {
let clone: Node;
switch (node.kind) {${each(discovery.createableNodes, syntaxNode => `
case SyntaxKind.${syntaxNode.kindName}:
clone = ${syntaxNode.createFunctionName}(${each(syntaxNode.createParameters, member =>
`(<${syntaxNode.typeName}>node).${member.propertyName}, `
)}location, flags);
break;`)}
}
if (clone) {
clone.original = node;
return clone;
}
}
return node;
}
export function acceptTransformer(transformer: Transformer, node: Node, visitor: (node: Node, write: (node: Node) => void) => void): Node {
if (node) {
switch (node.kind) {${each(discovery.updateableNodes, syntaxNode => `