diff --git a/src/compiler/transformer.ts b/src/compiler/transformer.ts index 53a07872621..a18b8546db8 100644 --- a/src/compiler/transformer.ts +++ b/src/compiler/transformer.ts @@ -210,7 +210,12 @@ namespace ts { * Sets flags that control emit behavior of a node. */ function setNodeEmitFlags(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; } diff --git a/src/compiler/transformers/es6.ts b/src/compiler/transformers/es6.ts index 4c4e65e7910..ef9f4f29d1d 100644 --- a/src/compiler/transformers/es6.ts +++ b/src/compiler/transformers/es6.ts @@ -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 ) )