Skip to content

Commit 0c79ea1

Browse files
author
Joseph Watts
committed
Fix uninitialized private properties constructor initialization
Signed-off-by: Joseph Watts <[email protected]>
1 parent 666a02c commit 0c79ea1

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/compiler/transformers/esnext.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -380,8 +380,11 @@ namespace ts {
380380

381381
function transformConstructor(node: ClassDeclaration | ClassExpression, isDerivedClass: boolean) {
382382
const constructor = visitNode(getFirstConstructorWithBody(node), visitor, isConstructorDeclaration);
383-
const containsPropertyInitializer = forEach(node.members, isInitializedProperty);
384-
if (!containsPropertyInitializer) {
383+
const containsPropertyInitializerOrPrivateProperty = forEach(
384+
node.members,
385+
member => isInitializedProperty(member) || isPrivatePropertyDeclaration(member)
386+
);
387+
if (!containsPropertyInitializerOrPrivateProperty) {
385388
return constructor;
386389
}
387390
const parameters = visitParameterList(constructor ? constructor.parameters : undefined, visitor, context);
@@ -595,7 +598,7 @@ namespace ts {
595598
setTextRange(
596599
createClassPrivateFieldGetHelper(
597600
context,
598-
visitNode(node.expression, visitor, isExpression),
601+
visitNode(node.expression, visitor, isExpression),
599602
privateNameInfo.weakMapName
600603
),
601604
node

0 commit comments

Comments
 (0)