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 | 2x 2x 2x 2x 2x 2x 2x 2x 730x 730x 402x 730x 292x 292x 328x 36x 36x 730x 2x 2x 2x 2x 2x 2x 265x 265x 265x 119x 265x 146x 146x 265x 265x 229x 229x | /** @import { Ast } from '#compiler' */ /** @import { Node } from 'estree' */ const UNKNOWN = {}; /** * @param {Node} node * @param {Set<any>} set */ function gather_possible_values(node, set) { if (node.type === 'Literal') { set.add(String(node.value)); } else if (node.type === 'ConditionalExpression') { gather_possible_values(node.consequent, set); gather_possible_values(node.alternate, set); } else { set.add(UNKNOWN); } } /** * @param {Ast.Text | Ast.ExpressionTag} chunk * @returns {Set<string> | null} */ export function get_possible_values(chunk) { const values = new Set(); if (chunk.type === 'Text') { values.add(chunk.data); } else { gather_possible_values(chunk.expression, values); } if (values.has(UNKNOWN)) return null; return values; } |