biomejs
biome
BlogDocsChangelog

feat(js_parser): add Glimmer template support for .gjs and .gts files

#8099
Comparing
wagenet:glimmer-1
(
46ea683
) with
next
(
7f5bcf4
)
CodSpeed Performance Gauge
0%
Untouched
53
Ignored
2
Skipped
85

Benchmarks

Skipped (85)

Passed

react.production.min_3378072959512366797.js[uncached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
+2%
2 ms2 ms
react-dom.production.min_7131952758041326366.js[cached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
+2%
34.8 ms34.2 ms
pixi.min_8151088792683739606.js[cached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
+2%
119.8 ms117.9 ms
js_formatter[vue.global.prod_4065256639735990520.js]
crates/biome_js_formatter/benches/js_formatter.rs::js_formatter::bench_js_formatter
CodSpeed Performance Gauge
+1%
177.3 ms174.8 ms
dojo_11880045762646467684.js[cached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
+1%
7.8 ms7.7 ms
checker_6456328407951392140.ts[cached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
+1%
246.1 ms243.4 ms
three.min_17199329737537001178.js[uncached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
+1%
141.5 ms140.7 ms
ios.d_12216376241674358710.d.ts[cached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
+1%
246.5 ms245.1 ms
js_formatter[parser_13571644119461115204.ts]
crates/biome_js_formatter/benches/js_formatter.rs::js_formatter::bench_js_formatter
CodSpeed Performance Gauge
0%
19.6 ms19.5 ms
dojo_11880045762646467684.js[uncached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
0%
8.6 ms8.6 ms
js_formatter[checker_6456328407951392140.ts]
crates/biome_js_formatter/benches/js_formatter.rs::js_formatter::bench_js_formatter
CodSpeed Performance Gauge
0%
913.8 ms910.1 ms
checker_6456328407951392140.ts[uncached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
0%
266.5 ms265.4 ms
pixi.min_8151088792683739606.js[uncached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
0%
125.2 ms124.7 ms
compiler_3469143416596620219.js[uncached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
0%
157.3 ms156.8 ms
d3.min_16009850199655599998.js[cached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
0%
101.3 ms101 ms
js_formatter[typescript_5583633924076080079.js]
crates/biome_js_formatter/benches/js_formatter.rs::js_formatter::bench_js_formatter
CodSpeed Performance Gauge
0%
3.5 s3.5 s
tex-chtml-full_561698452596513081.js[uncached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
0%
270.5 ms269.8 ms
d3.min_16009850199655599998.js[uncached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
0%
109.1 ms108.8 ms
jquery.min_16034160674129647344.js[cached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
0%
25.7 ms25.6 ms
jquery.min_16034160674129647344.js[uncached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
0%
27.2 ms27.2 ms
vue.global.prod_4065256639735990520.js[cached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
0%
41.3 ms41.2 ms
js_analyzer[css_16118272471217147034.js]
crates/biome_js_analyze/benches/js_analyzer.rs::js_analyzer::bench_analyzer
CodSpeed Performance Gauge
0%
24.3 ms24.2 ms
js_analyzer[parser_13571644119461115204.ts]
crates/biome_js_analyze/benches/js_analyzer.rs::js_analyzer::bench_analyzer
CodSpeed Performance Gauge
0%
100.6 ms100.5 ms
js_analyzer[lint_13640784270757307929.ts]
crates/biome_js_analyze/benches/js_analyzer.rs::js_analyzer::bench_analyzer
CodSpeed Performance Gauge
0%
57.1 ms57.1 ms
js_analyzer[index_3894593175024091846.js]
crates/biome_js_analyze/benches/js_analyzer.rs::js_analyzer::bench_analyzer
CodSpeed Performance Gauge
0%
59.4 ms59.4 ms
compiler_3469143416596620219.js[cached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
0%
139.2 ms139 ms
js_analyzer[router_17129688031671448157.ts]
crates/biome_js_analyze/benches/js_analyzer.rs::js_analyzer::bench_analyzer
CodSpeed Performance Gauge
0%
27.1 ms27 ms
parser_13571644119461115204.ts[cached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
0%
5.9 ms5.9 ms
js_formatter[ios.d_12216376241674358710.d.ts]
crates/biome_js_formatter/benches/js_formatter.rs::js_formatter::bench_js_formatter
CodSpeed Performance Gauge
0%
759.6 ms759.2 ms
js_analyzer[statement_263793315104667298.ts]
crates/biome_js_analyze/benches/js_analyzer.rs::js_analyzer::bench_analyzer
CodSpeed Performance Gauge
0%
85.3 ms85.3 ms
js_formatter[math_5920422916221598348.js]
crates/biome_js_formatter/benches/js_formatter.rs::js_formatter::bench_js_formatter
CodSpeed Performance Gauge
0%
849.6 ms849.2 ms
vue.global.prod_4065256639735990520.js[uncached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
0%
44.5 ms44.5 ms
js_analyzer[typescript_3735799142832611563.ts]
crates/biome_js_analyze/benches/js_analyzer.rs::js_analyzer::bench_analyzer
CodSpeed Performance Gauge
0%
135.2 ms135.1 ms
math_5920422916221598348.js[uncached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
0%
205.8 ms205.8 ms
js_formatter[pixi.min_8151088792683739606.js]
crates/biome_js_formatter/benches/js_formatter.rs::js_formatter::bench_js_formatter
CodSpeed Performance Gauge
0%
474.6 ms474.7 ms
three.min_17199329737537001178.js[cached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
0%
132.8 ms132.9 ms
tex-chtml-full_561698452596513081.js[cached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
0%
257.6 ms257.8 ms
typescript_5583633924076080079.js[uncached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
0%
998.5 ms1,000.1 ms
js_formatter[router_17129688031671448157.ts]
crates/biome_js_formatter/benches/js_formatter.rs::js_formatter::bench_js_formatter
CodSpeed Performance Gauge
0%
6.6 ms6.6 ms
js_formatter[compiler_3469143416596620219.js]
crates/biome_js_formatter/benches/js_formatter.rs::js_formatter::bench_js_formatter
CodSpeed Performance Gauge
0%
533.2 ms534.5 ms
js_formatter[d3.min_16009850199655599998.js]
crates/biome_js_formatter/benches/js_formatter.rs::js_formatter::bench_js_formatter
CodSpeed Performance Gauge
0%
433.5 ms434.6 ms
js_formatter[three.min_17199329737537001178.js]
crates/biome_js_formatter/benches/js_formatter.rs::js_formatter::bench_js_formatter
CodSpeed Performance Gauge
0%
576.5 ms578.7 ms
js_formatter[react.production.min_3378072959512366797.js]
crates/biome_js_formatter/benches/js_formatter.rs::js_formatter::bench_js_formatter
CodSpeed Performance Gauge
0%
6.9 ms6.9 ms
js_formatter[tex-chtml-full_561698452596513081.js]
crates/biome_js_formatter/benches/js_formatter.rs::js_formatter::bench_js_formatter
CodSpeed Performance Gauge
0%
1.1 s1.1 s
typescript_5583633924076080079.js[cached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
0%
915.3 ms919.1 ms
ios.d_12216376241674358710.d.ts[uncached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
0%
268.2 ms269.5 ms
js_formatter[dojo_11880045762646467684.js]
crates/biome_js_formatter/benches/js_formatter.rs::js_formatter::bench_js_formatter
CodSpeed Performance Gauge
-1%
27.3 ms27.5 ms
math_5920422916221598348.js[cached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
-1%
191.9 ms193 ms
js_formatter[jquery.min_16034160674129647344.js]
crates/biome_js_formatter/benches/js_formatter.rs::js_formatter::bench_js_formatter
CodSpeed Performance Gauge
-1%
113.2 ms114 ms
react.production.min_3378072959512366797.js[cached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
-1%
1.8 ms1.8 ms
parser_13571644119461115204.ts[uncached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
-1%
6.5 ms6.6 ms
react-dom.production.min_7131952758041326366.js[uncached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
CodSpeed Performance Gauge
-2%
36.7 ms37.3 ms
js_formatter[react-dom.production.min_7131952758041326366.js]
crates/biome_js_formatter/benches/js_formatter.rs::js_formatter::bench_js_formatter
CodSpeed Performance Gauge
-2%
136 ms138.9 ms

Ignored

router_17129688031671448157.ts[cached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
Ignored
CodSpeed Performance Gauge
0%
2 ms2 ms
router_17129688031671448157.ts[uncached]
crates/biome_js_parser/benches/js_parser.rs::js_parser::bench_parser::js_parser
Ignored
CodSpeed Performance Gauge
+1%
2.3 ms2.3 ms

Commits

Click on a commit to change the comparison range
Base
next
7f5bcf4
+0.01%
[autofix.ci] apply automated fixes
c69b8cf
24 days ago
by autofix-ci[bot]
+0.07%
Apply feedback
97f64dd
23 days ago
by wagenet
-0.01%
fix(js_parser): address CodeRabbit review suggestions for Glimmer template support This PR was written primarily by Claude Code. Fixes three critical issues identified in CodeRabbit review of PR #8099: 1. **Template tag detection bug**: Fixed byte slice comparison in lexer that was checking `b"template>"` but using incorrect offset. Changed to `b"template"` to properly validate characters after `<template`. Now supports whitespace in opening tags (e.g., `<template >`, `<template\t>`). 2. **Missing lookahead support**: Added `GLIMMER_TEMPLATE` to `is_nth_at_expression()` to properly recognize templates in expression contexts like `yield <template>...`, `await <template>...`, etc. 3. **LSP language ID support**: Added "gjs" and "gts" language identifiers to `try_from_language_id()` for proper LSP integration. Also enhanced changeset documentation to clarify Phase 1 implementation treats templates as opaque tokens without internal parsing/linting. All changes follow TDD approach with tests written first to verify failures, then fixes applied, and verification that tests pass. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
46ea683
23 days ago
by wagenet
© 2025 CodSpeed Technology
Home Terms Privacy Docs