import { parse } from '../../../packages/svelte/src/compiler/phases/1-parse/index.js'; import { fastest_test } from '../../utils.js'; const elements_source = Array.from( { length: 1000 }, (_, i) => `

Item ${i} has a reasonably long entity-free text value

` ).join('\n'); const script_style_source = ` `; const typescript_source = `${Array.from( { length: 1000 }, (_, i) => `
Item ${i}
` ).join('\n')} {value as number} ${' \n'.repeat(1000)}`; /** * @param {string} label * @param {string} source * @param {number} iterations */ function create_parser_benchmark(label, source, iterations) { return { label, fn: async () => { for (let i = 0; i < iterations; i++) { parse(source); } return await fastest_test(10, () => { for (let i = 0; i < iterations; i++) { parse(source); } }); } }; } export const parser_benchmarks = [ create_parser_benchmark('parser_elements', elements_source, 5), create_parser_benchmark('parser_script_style', script_style_source, 50), create_parser_benchmark('parser_typescript', typescript_source, 25) ];