Fix issue with emit flag reset in param initializers.

This commit is contained in:
Ron Buckton 2016-05-16 09:43:24 -07:00
parent e47c94e8ee
commit 80224d2dec
2 changed files with 7 additions and 2 deletions

View File

@ -210,7 +210,12 @@ namespace ts {
* Sets flags that control emit behavior of a node.
*/
function setNodeEmitFlags<T extends Node>(node: T, flags: NodeEmitFlags) {
getEmitOptions(node, /*create*/ true).flags = flags;
const options = getEmitOptions(node, /*create*/ true);
if (flags & NodeEmitFlags.Merge) {
flags = options.flags | (flags & ~NodeEmitFlags.Merge);
}
options.flags = flags;
return node;
}

View File

@ -959,7 +959,7 @@ namespace ts {
createStatement(
createAssignment(
setNodeEmitFlags(getMutableClone(name), NodeEmitFlags.NoSourceMap),
setNodeEmitFlags(visitNode(initializer, visitor, isExpression), NodeEmitFlags.NoSourceMap),
setNodeEmitFlags(visitNode(initializer, visitor, isExpression), NodeEmitFlags.NoSourceMap | NodeEmitFlags.Merge),
/*location*/ parameter
)
)