From de8b2fabb9f6b381ff271bb2a91f40f1c02a8561 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Tue, 12 May 2015 16:53:53 -0700 Subject: [PATCH] Optimize spread to not generate x.slice() when x is an array literal --- src/compiler/emitter.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 37e1f231bcf..4c979486ff3 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -1383,7 +1383,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) { e = (e).expression; emitParenthesizedIf(e, /*parenthesized*/ group === 0 && needsParenthesisForPropertyAccessOrInvocation(e)); pos++; - if (pos === length && group === 0 && alwaysCopy) { + if (pos === length && group === 0 && alwaysCopy && e.kind !== SyntaxKind.ArrayLiteralExpression) { write(".slice()"); } }