From 9ff01674288d3121c8fbfd28266558989e36df70 Mon Sep 17 00:00:00 2001 From: Andy Hanson Date: Wed, 6 Dec 2017 14:11:12 -0800 Subject: [PATCH] In createNodeArray, create a fresh array --- src/compiler/factory.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/compiler/factory.ts b/src/compiler/factory.ts index ec19d2c906c12..53a4940e61c4c 100644 --- a/src/compiler/factory.ts +++ b/src/compiler/factory.ts @@ -21,11 +21,15 @@ namespace ts { * Make `elements` into a `NodeArray`. If `elements` is `undefined`, returns an empty `NodeArray`. */ export function createNodeArray(elements?: ReadonlyArray, hasTrailingComma?: boolean): NodeArray { - if (!elements || elements === emptyArray) { - elements = []; + if (elements) { + if (isNodeArray(elements)) { + return elements; + } + // elements is a ReadonlyArray, so create a fresh array before adding properties. + elements = elements.slice(); } - else if (isNodeArray(elements)) { - return elements; + else { + elements = []; } const array = >elements;