Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
[0.49.0] - 2025-02-10
bec8fee data_structures: [BREAKING] Rename
Stack::last_unchecked_mut
method (refactor(data_structures)!: renameStack::last_unchecked_mut
method #8911) (overlookmotel)bbb075d ast: [BREAKING] Name
AstBuilder
enum builders after variant name not type name (refactor(ast)!: nameAstBuilder
enum builders after variant name not type name #8890) (overlookmotel)b7ff7e1 span: [BREAKING] Export
ContentEq
trait from root ofoxc_span
crate (refactor(span)!: exportContentEq
trait from root ofoxc_span
crate #8869) (overlookmotel)Features
#[visit(args)]
attr (feat(ast_tools): get extra params for visitor methods from#[visit(args)]
attr #8887) (overlookmotel)oxc_ast_macros
(feat(ast_tools): generate mapping of trait name to crate inoxc_ast_macros
#8870) (overlookmotel)oxc_ast_macros
crate (feat(ast_tools): generate list of helper attributes inoxc_ast_macros
crate #8852) (overlookmotel)first
andfirst_mut
methods to stack types (feat(data_structures): addfirst
andfirst_mut
methods to stack types #8908) (overlookmotel)toString
/valueOf
/Symbol.toPrimitive
(feat(ecmascript): detect objects without overriddentoString
/valueOf
/Symbol.toPrimitive
#8993) (sapphi-red)ValueType::from
for PrivateInExpression (feat(ecmascript):ValueType::from
for PrivateInExpression #8964) (sapphi-red)ValueType::from
for parenthesized expressions (feat(ecmascript):ValueType::from
for parenthesized expressions #8962) (sapphi-red)ValueType::from
(feat(ecmascript): support more simple expressions byValueType::from
#8961) (sapphi-red)ValueType::from
for bitwise not operator (feat(ecmascript):ValueType::from
for bitwise not operator #8955) (sapphi-red)!x
->x
(feat(minifier): minimize expression statement!x
->x
#9012) (Boshen)optimizeImplicitJump
(feat(minifier): implementoptimizeImplicitJump
#8984) (Boshen)mangleFor
(feat(minifier): improvemangleFor
#8901) (Boshen)typeof class {}
to'function'
(feat(minifier): foldtypeof class {}
to'function'
#8949) (sapphi-red)typeof (() => {})
to'function'
(feat(minifier): foldtypeof (() => {})
to'function'
#8948) (sapphi-red){ foo }
whenfoo
is declared (feat(minifier): fold typeof{ foo }
whenfoo
is declared #8947) (sapphi-red)+
(feat(minifier): fold complicated array literals passed to unary+
#8944) (sapphi-red)+
(feat(minifier): fold simple literals passed to unary+
#8943) (sapphi-red)+
inside numeric binary operators (feat(minifier): remove unnecessary unary+
inside numeric binary operators #8957) (sapphi-red)!!(boolean_expr)
->boolean_expr
(feat(minifier): minimize!!(boolean_expr)
->boolean_expr
#8849) (Boshen)for (;;) { var x }
->for (;;) var x;
(feat(minifier):for (;;) { var x }
->for (;;) var x;
#8847) (Boshen)String::concat
into template literal (feat(minifier): minifyString::concat
into template literal #8443) (sapphi-red)@oxc-project/runtime
package (feat(npm/runtime): add@oxc-project/runtime
package #8595) (Boshen)Bug Fixes
AssignmentTargetPropertyProperty
(fix(ast): estree compatAssignmentTargetPropertyProperty
#9005) (hi-ogawa)ArrayAssignmentTarget
(fix(ast): estree compatArrayAssignmentTarget
#8998) (hi-ogawa)ArrowFunctionExpression.body: FunctionBody | Expression
(fix(ast): serializeArrowFunctionExpression.body: FunctionBody | Expression
#8988) (Hiroshi Ogawa)directives
inbody
(fix(ast): includedirectives
inbody
#8981) (hi-ogawa)ArrowFunctionExpression
(fix(ast): add missing estree props forArrowFunctionExpression
#8980) (camchenry)CatchClause
(fix(ast): estree compatCatchClause
#8975) (hi-ogawa)Property
(fix(ast): estree compatProperty
#8974) (hi-ogawa)UnaryExpression
(fix(ast): estree compatUnaryExpression
#8973) (hi-ogawa)Function
(fix(ast): estree compatFunction
#8972) (hi-ogawa)Program.sourceType
(fix(ast): estree compatProgram.sourceType
#8919) (Hiroshi Ogawa)MemberExpression
(fix(ast): estree compatMemberExpression
#8921) (Hiroshi Ogawa)Serialize
impls (fix(ast): fix lifetimes on customSerialize
impls #8899) (overlookmotel)Function.params
like estree (fix(ast): serializeFunction.params
like estree #8772) (Hiroshi Ogawa)ValueType::from
forAssignmentExpression
(fix(ecmascript): fixValueType::from
forAssignmentExpression
#8959) (sapphi-red)ValueType::from
for numeric binary operators (fix(ecmascript): fixValueType::from
for numeric binary operators #8956) (sapphi-red)ValueType::from
for unknown value should return Undetermined instead of Number (fix(ecmascript):ValueType::from
for unknown value should return Undetermined instead of Number #8954) (sapphi-red)f64::content_eq
returnfalse
for0
and-0
(fix(span):f64::content_eq
returnfalse
for0
and-0
#9007) (overlookmotel)Performance
serde_json
output is valid UTF8 string (perf(ast): assumeserde_json
output is valid UTF8 string #8928) (overlookmotel)Documentation
r#
prefix in doc comments forAstBuilder
methods (docs(ast): do not includer#
prefix in doc comments forAstBuilder
methods #8873) (overlookmotel)SparseStack
(docs(data_structures): correct doc comments forSparseStack
#8907) (overlookmotel)Refactor
NULL
value for serializing null types (refactor(ast): addNULL
value for serializing null types #8987) (camchenry)#[estree(ts_alias)]
attr on enums and use it onRegExpPattern
andRegExpFlags
(refactor(ast): support#[estree(ts_alias)]
attr on enums and use it onRegExpPattern
andRegExpFlags
#8953) (overlookmotel)impl Serialize for Elision
(refactor(ast): shorten code forimpl Serialize for Elision
#8940) (overlookmotel)#[estree(ts_alias)]
attr and use it onElision
(refactor(ast): introduce#[estree(ts_alias)]
attr and use it onElision
#8939) (overlookmotel)SourceType
(refactor(ast): simplify serializingSourceType
#8936) (overlookmotel)#[estree(add_entry)]
to#[estree(add_fields)]
(refactor(ast): rename#[estree(add_entry)]
to#[estree(add_fields)]
#8926) (overlookmotel)Serialize
impls flatten struct fields (refactor(ast): generatedSerialize
impls flatten struct fields #8904) (overlookmotel)via
on struct fields implementFrom
(refactor(ast): estreevia
on struct fields implementFrom
#8898) (overlookmotel)#[estree(custom_ts_def)]
attribute on type (refactor(ast): override TS type defs with#[estree(custom_ts_def)]
attribute on type #8897) (overlookmotel)Visit
methods in order of type definitions (refactor(ast): generateVisit
methods in order of type definitions #8891) (overlookmotel)#[plural]
attr (refactor(ast): record plural names in#[plural]
attr #8889) (overlookmotel)GetSpan
(refactor(ast): shorten generated code forGetSpan
#8883) (overlookmotel)ContentEq
on literal types (refactor(ast): deriveContentEq
on literal types #8880) (overlookmotel)=
syntax for#[scope]
attrs (refactor(ast): use=
syntax for#[scope]
attrs #8878) (overlookmotel)#[estree(skip)]
to types (refactor(ast): move#[estree(skip)]
to types #8877) (overlookmotel)#[clone_in(default)]
to types (refactor(ast): move#[clone_in(default)]
to types #8876) (overlookmotel)#[content_eq(skip)]
attr (refactor(ast):#[content_eq(skip)]
attr #8875) (overlookmotel)#[estree(always_flatten)]
attr to#[estree(flatten)]
(refactor(ast): rename#[estree(always_flatten)]
attr to#[estree(flatten)]
#8871) (overlookmotel)RegExpFlags
tooxc_ast_tools
with alias type (refactor(ast): communicate type ofRegExpFlags
tooxc_ast_tools
with alias type #8868) (overlookmotel)oxc_ast_tools
(refactor(ast_tools): re-vampoxc_ast_tools
#8844) (overlookmotel)typeof
comparison to non-strict equality compression (refactor(minifier): remove duplicatedtypeof
comparison to non-strict equality compression #9010) (sapphi-red)symbols().symbol_is_used(symbol_id)
(refactor(minifier): extractsymbols().symbol_is_used(symbol_id)
#8995) (sapphi-red)Span
type and impls in 1 file (refactor(span): combineSpan
type and impls in 1 file #8900) (overlookmotel)#[ast]
attr to semantic ID types (refactor(syntax): add#[ast]
attr to semantic ID types #8867) (overlookmotel)Styling
#[allow]
with#[expect]
(style(all): replace#[allow]
with#[expect]
#8930) (overlookmotel)Testing
NonEmptyStack::as_slice
andas_slice_mut
(test(data_structures): add tests forNonEmptyStack::as_slice
andas_slice_mut
#8912) (overlookmotel)ValueType
for undetermined cases (test(ecmascript): add tests forValueType
for undetermined cases #8960) (sapphi-red)ValueType
and update document (test(ecmascript): add test forValueType
and update document #8951) (sapphi-red)