Skip to content

Commit 7490a36

Browse files
authored
do not allocate a node if not needed in visitMehodDeclaration (#55)
1 parent 2de8a43 commit 7490a36

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

src/compiler/transformers/classFields.ts

+8-9
Original file line numberDiff line numberDiff line change
@@ -278,10 +278,9 @@ namespace ts {
278278

279279
function visitMethodOrAccessorDeclaration(node: MethodDeclaration | AccessorDeclaration) {
280280
Debug.assert(!some(node.decorators));
281-
const transformedMethod = visitEachChild(node, classElementVisitor, context);
282281

283-
if (!shouldTransformPrivateElements || !isPrivateIdentifier(node.name) || !transformedMethod.body) {
284-
return transformedMethod;
282+
if (!shouldTransformPrivateElements || !isPrivateIdentifier(node.name)) {
283+
return visitEachChild(node, classElementVisitor, context);
285284
}
286285

287286
const functionName = getHoistedFunctionName(node);
@@ -290,13 +289,13 @@ namespace ts {
290289
factory.createAssignment(
291290
functionName,
292291
factory.createFunctionExpression(
293-
filter(transformedMethod.modifiers, m => !isStaticModifier(m)),
294-
transformedMethod.asteriskToken,
292+
filter(node.modifiers, m => !isStaticModifier(m)),
293+
node.asteriskToken,
295294
functionName,
296-
transformedMethod.typeParameters,
297-
transformedMethod.parameters,
298-
transformedMethod.type,
299-
transformedMethod.body
295+
/* typeParameters */ undefined,
296+
visitParameterList(node.parameters, classElementVisitor, context),
297+
/* type */ undefined,
298+
visitFunctionBody(node.body!, classElementVisitor, context)
300299
)
301300
)
302301
);

0 commit comments

Comments
 (0)