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 | 2x 2x 2x 2x 2x 2x 2x 2x 2x 1390x 1390x 1390x 1390x 1390x 186x 186x 186x 1390x 1390x 208x 208x 208x 208x 208x 208x 208x 208x 1182x 1182x 1182x | /** @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, in_constructor: false }; if (node.type === 'FunctionExpression') { const parent = /** @type {Node} */ (context.path.at(-1)); state.in_constructor = parent.type === 'MethodDefinition' && parent.kind === 'constructor'; } 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); }; |