From 17f6f77de5dc6629b487d4a9d060b48811e46882 Mon Sep 17 00:00:00 2001 From: Andrew Branch Date: Wed, 26 Jun 2019 11:49:45 -0700 Subject: [PATCH] Fix declaration emit for negative number property declarations --- src/compiler/checker.ts | 3 +++ .../computedPropertyNamesDeclarationEmit6_ES5.ts | 5 +++++ .../computedPropertyNamesDeclarationEmit6_ES6.ts | 5 +++++ 3 files changed, 13 insertions(+) create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit6_ES5.ts create mode 100644 tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit6_ES6.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 64bf09d8b37..61bdee79e39 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4652,6 +4652,9 @@ namespace ts { if (!isIdentifierText(name, compilerOptions.target) && !isNumericLiteralName(name)) { return `"${escapeString(name, CharacterCodes.doubleQuote)}"`; } + if (isNumericLiteralName(name) && startsWith(name, "-")) { + return `[${name}]`; + } return name; } if (nameType.flags & TypeFlags.UniqueESSymbol) { diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit6_ES5.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit6_ES5.ts new file mode 100644 index 00000000000..cb120d70822 --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit6_ES5.ts @@ -0,0 +1,5 @@ +// @target: es5 +// @declaration: true +var v = { + [-1]: {} +} diff --git a/tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit6_ES6.ts b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit6_ES6.ts new file mode 100644 index 00000000000..8d904244f3f --- /dev/null +++ b/tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit6_ES6.ts @@ -0,0 +1,5 @@ +// @target: es6 +// @declaration: true +var v = { + [-1]: {} +} \ No newline at end of file