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 | 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 1592x 1592x 1592x 1592x 1592x 4x 4x 1588x 1592x 4x 4x 4x 1584x 1592x 1x 1x 1583x 1592x 3x 3x 3x 3x 3x 3x 1580x 1592x 12x 12x 1568x 1568x 1568x | /** @import { CallExpression, Expression } from 'estree' */ /** @import { Context } from '../types.js' */ import { get_rune } from '../../../scope.js'; import * as b from '../../../../utils/builders.js'; import { transform_inspect_rune } from '../../utils.js'; /** * @param {CallExpression} node * @param {Context} context */ export function CallExpression(node, context) { const rune = get_rune(node, context.state.scope); if (rune === '$host') { return b.id('undefined'); } if (rune === '$effect.tracking') { return b.literal(false); } if (rune === '$effect.root') { // ignore $effect.root() calls, just return a noop which mimics the cleanup function return b.arrow([], b.block([])); } if (rune === '$state.snapshot') { return b.call('$.snapshot', /** @type {Expression} */ (context.visit(node.arguments[0]))); } if (rune === '$state.is') { return b.call( 'Object.is', /** @type {Expression} */ (context.visit(node.arguments[0])), /** @type {Expression} */ (context.visit(node.arguments[1])) ); } if (rune === '$inspect' || rune === '$inspect().with') { return transform_inspect_rune(node, context); } context.next(); } |