From 80224d2deccba39d4bd49b5953cb08012274fc0b Mon Sep 17 00:00:00 2001 From: Ron Buckton Date: Mon, 16 May 2016 09:43:24 -0700 Subject: [PATCH] Fix issue with emit flag reset in param initializers. --- src/compiler/transformer.ts | 7 ++++++- src/compiler/transformers/es6.ts | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) 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 ) )