MCPcopy Index your code
hub / github.com/nodejs/node / transformClassBody

Function transformClassBody

test/fixtures/snapshot/typescript.js:99017–99040  ·  view source on GitHub ↗

* Transforms a ClassExpression or ClassDeclaration into a function body. * * @param node A ClassExpression or ClassDeclaration node. * @param extendsClauseElement The expression for the class `extends` clause.

(node, extendsClauseElement)

Source from the content-addressed store, hash-verified

99015 * @param extendsClauseElement The expression for the class `extends` clause.
99016 */
99017 function transformClassBody(node, extendsClauseElement) {
99018 var statements = [];
99019 var name = factory.getInternalName(node);
99020 var constructorLikeName = ts.isIdentifierANonContextualKeyword(name) ? factory.getGeneratedNameForNode(name) : name;
99021 startLexicalEnvironment();
99022 addExtendsHelperIfNeeded(statements, node, extendsClauseElement);
99023 addConstructor(statements, node, constructorLikeName, extendsClauseElement);
99024 addClassMembers(statements, node);
99025 // Create a synthetic text range for the return statement.
99026 var closingBraceLocation = ts.createTokenRange(ts.skipTrivia(currentText, node.members.end), 19 /* SyntaxKind.CloseBraceToken */);
99027 // The following partially-emitted expression exists purely to align our sourcemap
99028 // emit with the original emitter.
99029 var outer = factory.createPartiallyEmittedExpression(constructorLikeName);
99030 ts.setTextRangeEnd(outer, closingBraceLocation.end);
99031 ts.setEmitFlags(outer, 1536 /* EmitFlags.NoComments */);
99032 var statement = factory.createReturnStatement(outer);
99033 ts.setTextRangePos(statement, closingBraceLocation.pos);
99034 ts.setEmitFlags(statement, 1536 /* EmitFlags.NoComments */ | 384 /* EmitFlags.NoTokenSourceMaps */);
99035 statements.push(statement);
99036 ts.insertStatementsAfterStandardPrologue(statements, endLexicalEnvironment());
99037 var block = factory.createBlock(ts.setTextRange(factory.createNodeArray(statements), /*location*/ node.members), /*multiLine*/ true);
99038 ts.setEmitFlags(block, 1536 /* EmitFlags.NoComments */);
99039 return block;
99040 }
99041 /**
99042 * Adds a call to the `__extends` helper if needed for a class.
99043 *

Calls 6

startLexicalEnvironmentFunction · 0.85
addExtendsHelperIfNeededFunction · 0.85
addConstructorFunction · 0.85
addClassMembersFunction · 0.85
endLexicalEnvironmentFunction · 0.85
pushMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…