From 8ae5a8cfcedaa840f8764ad1d3e58522115837a5 Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com> Date: Tue, 12 Nov 2019 10:15:30 -0800 Subject: [PATCH] useDefineForClassFields skips emit of ambient properties Previously: ```ts class C { declare p } ``` would incorrectly emit ```js class C { constructor() { Object.defineProperty(this, "p", { enumerable: true, configurable: true, writable: true, value: void 0 }); } } ``` when useDefineForClassFields was turned on (for targets m : Symbol(A.m, Decl(definePropertyES5.ts, 5, 13)) + + declare notEmitted: boolean; +>notEmitted : Symbol(A.notEmitted, Decl(definePropertyES5.ts, 6, 11)) } diff --git a/tests/baselines/reference/definePropertyES5.types b/tests/baselines/reference/definePropertyES5.types index 3f82787c13a..7fffb77b74c 100644 --- a/tests/baselines/reference/definePropertyES5.types +++ b/tests/baselines/reference/definePropertyES5.types @@ -25,5 +25,8 @@ class A { m() { } >m : () => void + + declare notEmitted: boolean; +>notEmitted : boolean } diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/definePropertyES5.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/definePropertyES5.ts index 73e1ee515d1..a2338889134 100644 --- a/tests/cases/conformance/classes/propertyMemberDeclarations/definePropertyES5.ts +++ b/tests/cases/conformance/classes/propertyMemberDeclarations/definePropertyES5.ts @@ -7,4 +7,5 @@ class A { ["computed"] = 13 ;[x] = 14 m() { } + declare notEmitted: boolean; }