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 1513x 1513x 1513x 1513x 1513x 4x 4x 1509x 1513x 4x 4x 4x 1505x 1513x 1x 1x 1504x 1513x 3x 3x 3x 3x 3x 3x 1501x 1513x 12x 12x 1489x 1489x 1489x | /** @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(); } |