All files / src/compiler state.js

100% Statements 40/40
100% Branches 4/4
100% Functions 3/3
100% Lines 39/39

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 402x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 55x 55x 55x 2x 2x 55x 55x 2x 2x 2x 2x 2x 2x 2x 2x 4952x 4952x 4952x 4952x 4952x  
import { getLocator } from 'locate-character';
 
/** @typedef {{ start?: number, end?: number }} NodeLike */
 
/** @type {import('#compiler').Warning[]} */
export let warnings = [];
 
/** @type {string | undefined} */
export let filename;
 
export let locator = getLocator('', { offsetLine: 1 });
 
/** @type {Set<string>[]} */
export let ignore_stack = [];
 
/**
 * @param {string[]} ignores
 */
export function push_ignore(ignores) {
	const next = new Set([...(ignore_stack.at(-1) || []), ...ignores]);
	ignore_stack.push(next);
}
 
export function pop_ignore() {
	ignore_stack.pop();
}
 
/**
 * @param {{
 *   source: string;
 *   filename: string | undefined;
 * }} options
 */
export function reset(options) {
	filename = options.filename;
	locator = getLocator(options.source, { offsetLine: 1 });
	warnings = [];
	ignore_stack = [];
}