Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | 2x 2x 2x 2x 2x 2x 2x 2x 2x 1316x 1316x 1316x 1316x 1316x 168x 168x 168x 168x 1316x 1148x 1148x 1316x 1316x 181x 181x 181x 181x 181x 181x 181x 181x 1135x 1135x 1135x | /** @import { ArrowFunctionExpression, FunctionExpression, Node } from 'estree' */ /** @import { ComponentContext } from '../../types' */ import { build_hoisted_params } from '../../utils.js'; /** * @param {ArrowFunctionExpression | FunctionExpression} node * @param {ComponentContext} context */ export const visit_function = (node, context) => { const metadata = node.metadata; let state = context.state; if (node.type === 'FunctionExpression') { const parent = /** @type {Node} */ (context.path.at(-1)); const in_constructor = parent.type === 'MethodDefinition' && parent.kind === 'constructor'; state = { ...context.state, in_constructor }; } else { state = { ...context.state, in_constructor: false }; } if (metadata?.hoisted === true) { const params = build_hoisted_params(node, context); return /** @type {FunctionExpression} */ ({ ...node, params, body: context.visit(node.body, state) }); } context.next(state); }; |