NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #4647 most downloaded on npm
lezer-based JavaScript grammar
Last release 3 days ago
01 Oct 2026
Ships unpredictably
gaps range from 1 weeks to 12 months
Nearly every release is documented
notes for 43 of 43 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
43 releases · first in 2021
One column per quarter.
Fix a regression that broke parsing of short-hand properties in object patterns with a default value.
Fix a regression that broke parsing of short-hand properties in object patterns with a default value.
Parse short-hand properties in object patterns as VariableDefinition nodes for consistency.
Parse short-hand properties in object patterns as VariableDefinition nodes for consistency.
Support this parameters in function types.
Support this parameters in function types.
Fix missing highlight tag for defer contextual keyword.
Fix missing highlight tag for defer contextual keyword.
Allow const casts with old angle-bracket cast syntax.
Allow const casts with old angle-bracket cast syntax.
Add support for import defer syntax.
Properly highlight satisfies as a keyword.
Properly highlight satisfies as a keyword.
Support in/out modifiers on TypeScript type parameters.
Support in/out modifiers on TypeScript type parameters.
Support the TypeScript satisfies operator.
Add support for const modifiers on TypeScript type parameters.
Add support for const modifiers on TypeScript type parameters.
Allow TypeScript syntax, where the condition is just a variable.
Fix a bug where some TypeScript < tokens didn't appear in the syntax tree.
Use the className style tag for variable names used as constructors with new.
Use the className style tag for variable names used as constructors with new.
Add support for asserts syntax in function return types.
Support question marks after method names in TypeScript object type notation.
Support question marks after method names in TypeScript object type notation.
Support bracketed property names in TypeScript object types.
Allow TypeScript interface declarations to extend multiple types.
Support as syntax in mapped object types.
Support as syntax in mapped object types.
Make sure the parser doesn't get confused when a template interpolation is missing its expression.
Add support for {-readonly [K in T]-?: U} TypeScript syntax.
Add support for {-readonly [K in T]-?: U} TypeScript syntax.
Don't consume ?. tokens when followed by a digit.
Don't consume ?. tokens when followed by a digit.
Support type arguments on non-call expressions.
Add support for new.target syntax.
Add support for new.target syntax.
Recognize the d and v RegExp flags. Support destructured parameters in function types
Recognize the d and v RegExp flags. Support destructured parameters in function types
Allow destructured parameters in function signature types.
Fix inverted relative precedence of &, |, and ^ bitwise operators.
Fix inverted relative precedence of &, |, and ^ bitwise operators.
Add an explicit dependency on @lezer/common ^1.2.0.
Mark strings, comments, and interpolations as isolating for bidirectional text.
Mark strings, comments, and interpolations as isolating for bidirectional text.
In TSX mode, parse or as type parameters, not JSX tags.
In TSX mode, parse <T,> or <T extends U> as type parameters, not JSX tags.
Support | and & as prefixes in TypeScript types.
Support | and & as prefixes in TypeScript types.
Allow default to be used in import/export binding sets.
Allow default to be used in import/export binding sets.
Properly highlight using as a keyword.
Properly highlight using as a keyword.
Properly parse hashbang comments.
Properly parse hashbang comments.
Make sure that, in TypeScript, type argument lists are prefered over comparison operators when both produce valid parses.
Make sure that, in TypeScript, type argument lists are prefered over comparison operators when both produce valid parses.
Allow the index in a TypeScript indexed type to be any kind of type.
Allow the index in a TypeScript indexed type to be any kind of type.
Make the package work with new TS resolution styles.
Add support for using syntax.
Make the package work with new TS resolution styles.
Properly parse this: Type within parameter lists for TypeScript.
Properly parse this: Type within parameter lists for TypeScript.
Properly parse declare in front of class properties and methods in TypeScript.
Properly parse declare in front of class properties and methods in TypeScript.
Fix a bug where something like yield [1] (or await) was parsed as a member expression.
Fix a bug where something like yield [1] (or await) was parsed as a member expression.
Add support for yield* syntax.
Escapes in strings are now parsed as their own tokens (and styled with the escape tag).
The new "SingleClassItem" top-level rule can be used to parse only a class item (method, property, or static block).
The new "SingleClassItem" top-level rule can be used to parse only a class item (method, property, or static block).
Typescript allows override on all class elements, not just methods.
Typescript allows override on all class elements, not just methods.
Allow expressions in class extends clauses in TypeScript.
Actually emit a tree node for the @ characters in decorators.
Actually emit a tree node for the @ characters in decorators.
Add support for decorator syntax.
Add support for decorator syntax.
The grammar now supports top: "SingleExpression" to parse an expression rather than a script.
The grammar now supports top: "SingleExpression" to parse an expression rather than a script.
Fix parsing of computed properties in class declarations.
Fix parsing of computed properties in class declarations.
Fix parsing of 'null' as type in TypeScript.
Fix parsing of 'null' as type in TypeScript.
Allow computed properties in object destructuring patterns.
Add TypeScript 4.9's satisfies operator.
Support accessor syntax on class properties.
Add support for optional call syntax.
Distinguish lower-case JSX element names syntactically, give them a standard(tagName) highlight tag.
Properly assign a highlighting tag to the super keyword.
Properly assign a highlighting tag to the super keyword.
Fix parsing of TypeScript conditional types.
Fix parsing of TypeScript conditional types.
Support type parameters in TypeScript function type syntax.
### New features First stable version.
First stable version.
Move to 0.16 serialized parser format.
Move to 0.16 serialized parser format.
Allow commas as separators in TypeScript object type syntax.
Add CatchClause and FinallyClause nodes wrapping parts of TryStatement.
The parser now includes syntax highlighting information in its node types.
Support missing values in array pattern syntax.
Support missing values in array pattern syntax.
Support quoted module export names.
Template string interpolations now get their own nodes in the syntax tree.
Fix a typo in the TaggedTemplateExpression node name. Support n suffixes after non-decimal integers
Fix a typo in the TaggedTemplateExpression node name. Support n suffixes after non-decimal integers
Add support for non-decimal bignum literals ().
Add support for static class initialization blocks.
Add support for TypeScript import {type X} from y syntax.
Add support for TypeScript import {type X} from y syntax.
Indexed TypeScript types can now take type parameters.
Add support for private field syntax.
Rename PropertyNameDefinition node to PropertyDefinition for consistency with other names.
Recognize TypeScript 4.3's override keyword.
The module's name changed from lezer-javascript to @lezer/javascript.
The module's name changed from lezer-javascript to @lezer/javascript.
Upgrade to the 0.15.0 lezer interfaces.
Your coding agent can read these notes before it upgrades. Set up the MCP server →