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 36 37 38 39 40 41 42 43 44 45 46 47 | 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 1968x 1968x 1968x 1968x 7x 1968x 1968x 6x 6x 6x 6x 6x 1968x 1968x 1x 1x 1x 1x 1x 1968x 1968x 7x 7x 7x 7x 1968x 1968x 1968x 13x 1968x 1934x 1934x 1934x | /** @import { CallExpression, Expression } from 'estree' */ /** @import { Context } from '../types' */ import { is_ignored } from '../../../../state.js'; import * as b from '../../../../utils/builders.js'; import { get_rune } from '../../../scope.js'; import { transform_inspect_rune } from '../../utils.js'; /** * @param {CallExpression} node * @param {Context} context */ export function CallExpression(node, context) { switch (get_rune(node, context.state.scope)) { case '$host': return b.id('$$props.$$host'); case '$effect.tracking': return b.call('$.effect_tracking'); case '$state.snapshot': return b.call( '$.snapshot', /** @type {Expression} */ (context.visit(node.arguments[0])), is_ignored(node, 'state_snapshot_uncloneable') && b.true ); case '$state.is': return b.call( '$.is', /** @type {Expression} */ (context.visit(node.arguments[0])), /** @type {Expression} */ (context.visit(node.arguments[1])) ); case '$effect.root': return b.call( '$.effect_root', .../** @type {Expression[]} */ (node.arguments.map((arg) => context.visit(arg))) ); case '$inspect': case '$inspect().with': return transform_inspect_rune(node, context); } context.next(); } |