NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2584 most downloaded on npm
Oxc Parser Node API
Last release 5 days ago
29 Sep 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 54 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
186 releases · first in 2023
02331c8 str: Add JSStr , JSChar and JSStrBuilder types ( #26435 ) (Dunqing)
JSStr, JSChar and JSStrBuilder types (#26435) (Dunqing)reportDiagnostics option to expose recoverable React Compiler diagnostics (#26624) (Jack)JSXExpressionContainer example (#26975) (camc314)JSXAttribute value description (#26974) (camc314)TSNumberKeyword example (#26973) (camc314)RegExpFlags::V flag features (#26972) (camc314)JSXText example (#26970) (camc314)TSIntrinsicKeyword example (#26967) (camc314)TSTupleType example syntax (#26966) (camc314)TSPropertySignature usage example (#26964) (camc314)Class abstract example values (#26963) (camc314)TSTypeParameter (#26962) (camc314)pure comment to NewExpression field (#26961) (camc314)TSNonNullExpression docs (#26960) (camc314)TSInstantiationExpression (#26908) (camchenry)One column per month.
1fac655 coverage: Support new TypeScript fixture layout ( #26226 ) (camc314)
await tokens (#26619) (camc314)await tokens (#26619) (camc314)ca649e0 ecma: Define math constants as known globals and resolve their types ( #26585 ) (Armano)
ascii_only option (#25994) (Samuel Attard)typeof x < 'u' (#26367) (Armano)accessor modifiers on methods (#26617) (camc314)readonly modifier on constructors (#26612) (camc314)in expressions in class static blocks (#26423) (camc314)in in arrow block bodies within for initializers (#26395) (camc314)Ident (#26380) (Dunqing)66744f0 parser: [ BREAKING ] Rename panicked to fatal_error in ParserReturn ( #26382 ) (overlookmotel)
panicked to fatal_error in ParserReturn (#26382) (overlookmotel)MAX_LEN to 256 bytes below u32::MAX (#26352) (overlookmotel)ArenaHashSet with any Default hasher (#26372) (Dunqing)GetNodeId trait (#26145) (camc314)export ... from (#26389) (camc314)< token opening type argument list (#26328) (overlookmotel)Allocator::data_end_ptr behind fixed_size feature (#26248) (camc314)charAt panic on 32-bit (#26244) (camc314)Ident for property mangler (#26334) (sapphi-red)Ident for variable names to keep (#26333) (sapphi-red)Ident instead of Str in KeepVar (#26332) (sapphi-red)IdentHashSet in PrivateMemberUsageStack (#26331) (sapphi-red)parse_jsx_element_name (#26355) (overlookmotel)parse_jsx_element_name (#26354) (overlookmotel)token field from LexerCheckpoint (#26350) (overlookmotel)panicked to fatal_error in ParserReturn (#26382) (overlookmotel)MAX_LEN to 256 bytes below u32::MAX (#26352) (overlookmotel)export ... from (#26389) (camc314)< token opening type argument list (#26328) (overlookmotel)parse_jsx_element_name (#26355) (overlookmotel)parse_jsx_element_name (#26354) (overlookmotel)token field from LexerCheckpoint (#26350) (overlookmotel)a31567a allocator: [ BREAKING ] Make Allocator::cursor_ptr and data_end_ptr private ( #26081 ) (overlookmotel)
Allocator::cursor_ptr and data_end_ptr private (#26081) (overlookmotel)!0 and !1 in place for boolean context to 1 and 0 (#26050) (Armano)! (#25930) (Armano)this param (#26169) (Dunqing)Math.round only exact half ties (#26150) (camc314)indexOf search argument (#26149) (camc314)Program when sending AST to JS plugins (#26077) (overlookmotel)Int32Array (#26085) (overlookmotel)2cde1f6 rust: Address nightly deprecations ( #25998 ) (Boshen)
FormalParameterRest spans (#26021) (camc314)if to for in sloppy mode when containing function declaration (#25638) (sapphi-red)PrivateIdentifiers which have changed (#25958) (overlookmotel)if to for when the body contains a function declaration (#25637) (sapphi-red)# before private identifier in TS signature key (#25938) (overlookmotel)+ when the other operand has side effects (#25645) (Kotaro Chikuba)node param from write and markMap functions in sourcemap builds (#25989) (overlookmotel)start and end to write and mark functions (#25986) (overlookmotel)write calls with writeIdent (#25984) (overlookmotel)last param from writeWithMapNamed (#25983) (overlookmotel)mapNames (#25979) (overlookmotel)mark and write calls in printImportAttributes (#25972) (overlookmotel)node param from printString and printNonNegativeFloat (#25971) (overlookmotel)printNonNegativeFloat write mapping directly (#25968) (overlookmotel)lastWasPostfixClose (#25888) (overlookmotel)526c2b3 codegen: Remove deprecated test APIs ( #25889 ) (camc314)
sourceText only once (#25887) (overlookmotel)growMappingBuffer (#25886) (overlookmotel)location passed to recordSourceMapping always a number (#25884) (overlookmotel)recordSourceMapping (#25883) (overlookmotel)last in printImportAttributes and printIf (#25882) (overlookmotel)printJSXElement (#25881) (overlookmotel)printParams (#25880) (overlookmotel)365274e packages/codegen: [ BREAKING ] printSync return an object ( #25720 ) (overlookmotel)
sourceFilename option (#25854) (overlookmotel)oxc-codegen package (#25488) (overlookmotel)** with Number::exponentiate, not IEEE pow (#25644) (Kotaro Chikuba)Infinity and NaN in enum evaluation (#25604) (camc314)ToNumber of !x from ToBoolean (#25595) (Kotaro Chikuba)decorators on FormalParameterRest (#25582) (camc314)unsafe (#25551) (camc314)export default interface (#25487) (overlookmotel)< tokens (#25564) (camc314)printSync (#25722) (overlookmotel)a33788e ast: [ BREAKING ] Group class heritage into ClassHeritage ( #25360 ) (camc314)
ClassHeritage (#25360) (camc314)TSInterfaceHeritage::expression to TSTypeName (#24360) (camc314)VariableDeclarator::kind (#25319) (camc314)ArenaVec::push_mut (#25338) (overlookmotel)Parser::parse_expression (#25371) (camc314)ClassHeritage (#25360) (camc314)TSInterfaceHeritage::expression to TSTypeName (#24360) (camc314)VariableDeclarator::kind (#25319) (camc314)Parser::parse_expression (#25371) (camc314)067da8c ast: [BREAKING] Store single parameter in TSIndexSignature::parameter (#25154) (camc314)
TSIndexSignature::parameter (#25154) (camc314)ExportDeclaration, ExportFromDeclaration (#25095) (camc314)ArrowFunctionBody enum (#24987) (camc314)Box from AST builder methods (#25038) (overlookmotel)4d6f623 parser: Emit error for type args in JS files (#24896) (camc314)
await using in bare switch case (#24798) (camc314)54cc121 ast: [BREAKING] Split MetaProperty into ImportMeta and NewTarget (#24557) (camc314)
MetaProperty into ImportMeta and NewTarget (#24557) (camc314)ParseOptions::enable_ident_hashes (#24491) (Boshen)as span for imported name (#24537) (leaysgur)b47585c parser: Use ReplaceWith instead of TakeIn (#24018) (overlookmotel)
ReplaceWith instead of TakeIn (#24018) (overlookmotel)Nothing published for this version
94fbacb ast: [BREAKING] Only export AstBuilder and NONE in builder module (#23876) (overlookmotel)
AstBuilder and NONE in builder module (#23876) (overlookmotel)Str and Ident methods take &GetAllocator (#23781) (overlookmotel)GetAllocator::allocator take &self (#23676) (overlookmotel)AstBuilders (#23875) (overlookmotel)AstBuilder method for Expression::V8IntrinsicExpression (#23766) (overlookmotel)7a76cd3 estree: [BREAKING] Make whether to include TS fields a runtime option (#23574) (overlookmotel)
1d3af58 parser: Add TS2398 parameter property diagnostic (#23216) (camc314)
const modifier on interface type parameter (#23173) (camc314)infer T extends U constraint in disallow context (#23128) (Boshen)export default modifier (#23124) (Boshen)AGENTS.md test guidance for agents (#23440) (camc314)byte_handlers! (#23313) (Dunqing)4c35362 ast: [BREAKING] Add AstBuilder::template_element_escape_raw and template_element_escape_raw_with_lone_surrogates methods (#23047) (overlookmot
AstBuilder::template_element_escape_raw and template_element_escape_raw_with_lone_surrogates methods (#23047) (overlookmotel)import type alias to a non-external reference in the parser (#23032) (Boshen)abstract private class field in the parser (#23029) (Boshen)super.#field private access in the parser (#23014) (Boshen)default clause in the parser (#23012) (Boshen)new.target and import.meta syntax errors in the parser (#23003) (Boshen)as/satisfies assertions (#22986) (Boshen)asserts type predicate (#23058) (Boshen)cf5769c parser: Reject TypeScript declarations in single-statement context (#22827) (Boshen)
declare in an already-ambient context (TS1038) (#22850) (Boshen)export as namespace inside a namespace body (TS1316) (#22846) (Boshen)class implements with implements as the class name (#22801) (Boshen)661132d parser: More friendly error messages for rest assignment target and rest binding element (#22719) (sapphi-red)
import property access diagnostic (#22693) (camc314)export (#22684) (Boshen)e431a0e parser: Break extends clause loop on fatal error (#22517) (Boshen)
83679ea parser: Split TriviaBuilder::handle_token hot/cold paths (#22415) (Boshen)
2 for sequence expressions vec (#22374) (camc314)9fa2122 parser: Parse array computed class keys (#22159) (camc314)
81e834c parser: Prevent multiple Parser instances in binary (#22120) (overlookmotel)
Parser instances in binary (#22120) (overlookmotel)502e804 ast: [BREAKING] Reduce size of TSTypePredicateName (#21711) (overlookmotel)
TSTypePredicateName (#21711) (overlookmotel)JSXExpression (#21710) (overlookmotel)TriviaBuilder comments in the arena (#21512) (Boshen)Token::set_* methods on Rust 1.95.0 (#21659) (overlookmotel)e45efc5 parser: Reduce try_parse usage in favour of lookahead (#21532) (Boshen)
try_parse usage in favour of lookahead (#21532) (Boshen)IdentifierReference clone in shorthand property (#21511) (Boshen)ce5072d parser: Support turbopack magic comments (#20803) (Kane Wang)
turbopack magic comments (#20803) (Kane Wang)LexerContext (#21275) (Ulrich Stark)382958a span: [BREAKING] Remove re-exports of string types from oxc_span crate (#21246) (overlookmotel)
oxc_span crate (#21246) (overlookmotel)Nothing published for this version
59fd797 parser: Mark pure comments that cannot be applied (#20687) (Boshen)
kinds field of Modifiers to first (#20833) (overlookmotel)Modifiers::contains_accessibility (#20832) (overlookmotel)Modifiers::accessibility branchless (#20827) (overlookmotel)#[inline] to trivial modifier methods (#20826) (overlookmotel)Modifier spans (#20823) (overlookmotel)parse_modifiers (#20821) (overlookmotel)Kind to ModifierKind conversions in eat_modifiers_before_declaration (#20820) (overlookmotel)eat_modifiers_before_declaration (#20755) (overlookmotel)Modifiers on stack (#20742) (overlookmotel)Modifiers::get method (#20741) (overlookmotel)extends vec with 1 cap (#20667) (camc314)parse_heritage_clause (#20665) (camc314)Nothing published for this version
ed5a7fb parser: Report syntax error for new super() (#20384) (Boshen)
new super() (#20384) (Boshen)78c264a parser: Fix conditional expressions with arrow-function alternates in TS (#20356) (camc314)
Nothing published for this version
e8547cc parser: Report error for using declarations in ambient contexts (#19934) (camc314)
Vec (#19967) (overlookmotel)ee4982b parser: Add VARIANTS const to Kind via fieldless_enum! macro (#19877) (overlookmotel)
VARIANTS const to Kind via fieldless_enum! macro (#19877) (overlookmotel)Kind::is_* methods const (#19874) (overlookmotel)mutate_tokens Cargo feature (#19853) (overlookmotel)implements clause in non-ts files (#19820) (Cameron)LexerConfig::TOKENS_METHOD_IS_STATIC const (#19683) (overlookmotel)finish_next_inner (#19695) (overlookmotel)finish_next_inner (#19684) (overlookmotel)ParserConfig (#19637) (overlookmotel)ParserConfig and LexerConfig (#19682) (overlookmotel)Nothing published for this version
569aa61 rust: Add missing rustdocs and remove missing_docs lint attrs (#19306) (Boshen)
8670b18 parser: Error on ambient class accessor implementations (#18592) (camc314)
777fc40 ast: [BREAKING] Add Ident type (#18354) (Boshen)
Ident type (#18354) (Boshen)ThisExpression from TSModuleReference (#18489) (Boshen)Nothing published for this version
8a1cbbd parser: Add syntax errors for constructor declarations (#18220) (Boshen)
TSTupleElement (#18146) (Sysix)TSTupleElement (#18145) (Sysix)TSTupleElement (#18144) (Sysix)sourceType: 'commonjs' support (#18089) (Boshen)TSNamedTupleMember for ts error 1266 &1257 (#18178) (Sysix)for (using of = ...) as using declaration (#18142) (Boshen)export (#17992) (Boshen)7422b7e parser/trivia: Correctly mark whether a block comment is on a newline (#17754) (camc314)
@__NO_SIDE_EFFECTS__ annotation with parenthesized expressions (#17711) (camc314)6870b64 parser: Add TS1363 error code (#17609) (Sysix)
4ac23e1 parser: Produce syntax error for ({ foo(bar) }) (#17267) (Boshen)
({ foo(bar) }) (#17267) (Boshen)d99134d parser: Improve diagnostic message for phase imports (#17092) (camc314)
cb515fa parser: Improve error message for yield as identifier usage (#16950) (sapphi-red)
yield as identifier usage (#16950) (sapphi-red)new_dynamic_import error (#16949) (sapphi-red)320c09f ast, parser, linter, codegen, formatter: [BREAKING] Rename CommentKind::Block to CommentKind::SinglelineBlock (#16501) (Dunqing)
CommentKind::Block to CommentKind::SinglelineBlock (#16501) (Dunqing)CommentKind::MultilineBlock (#16479) (Dunqing)let.x and let?.x (#16857) (Copilot)let?.x (#16840) (Copilot)7a2afee parser: Add TS1174 error for classes extending multiple base classes (#15993) (sapphi-red)
165f59d parser: Report empty expression in JSX attribute error (#16378) (leaysgur)
cbb27fd ast: [BREAKING] Add TSGlobalDeclaration type (#15712) (overlookmotel)
TSGlobalDeclaration type (#15712) (overlookmotel)module and global (#15723) (overlookmotel)77efb76 parser: Improve error message for invalid switch clauses (#15728) (sapphi-red)
import source from error message (#15727) (sapphi-red)import something 'source' (#15746) (sapphi-red)8951953 parser: Improve diagnostic messages for merge conflicts (#15443) (camc314)
export (#15266) (sapphi-red)using / await using in a switch case / default clause (#15225) (sapphi-red)using / await using in single statement contexts (#15224) (sapphi-red)async await => {} in scripts (#15222) (sapphi-red)yield and await in object destructing shorthand property parameters (#15221) (sapphi-red)for (let.something of ...) (#15220) (sapphi-red)read_next_token (#15513) (overlookmotel)handle_byte into read_next_token (#15520) (overlookmotel)384ea3c parser: Report err on missing function body in expression (#14946) (camc314)
496dd62 parser: Introduce context_add and context_remove functions (#14567) (Ulrich Stark)
context_add and context_remove functions (#14567) (Ulrich Stark)has_separator() result in literal parsing (#14403) (Boshen)81a28d4 parser: Forbid abstract class members with implementation in parser instead of semantic (#14325) (Ulrich Stark)
check_method_definition by method kind (#14364) (Ulrich Stark)5b74a81 parser: Apply #[cold] attribute to error handling functions (#14188) (Boshen)
f4d6790 parser: Forbid accessors named constructor (#14017) (Don Isaac)
constructor (#14017) (Don Isaac)a14aa79 npm/oxlint: Convert to ES modules (#13876) (Boshen)
parse_simple_arrow_function_expression (#13965) (Ulrich Stark)00e4477 parser: Update ident reference check in jsx (#13819) (camc314)
Token::read_bool (#13873) (overlookmotel)Your coding agent can read these notes before it upgrades. Set up the MCP server →