Skip to content

Releases: oxc-project/oxc

oxc crates_v0.150.0

Choose a tag to compare

@github-actions github-actions released this 14 Sep 11:37
Immutable release. Only release title and notes can be modified.

🚀 Features

  • ca649e0 ecma: Define math constants as known globals and resolve their types (#26585) (Armano)
  • 9ef028c codegen: Add ascii_only option (#25994) (Samuel Attard)
  • 80a76a0 minifier: Negate binary comparison for typeof x < 'u' (#26367) (Armano)

🐛 Bug Fixes

  • 8ca76da parser: Reject accessor modifiers on methods (#26617) (camc314)
  • 1916f31 parser: Reject readonly modifier on constructors (#26612) (camc314)
  • 1c42008 parser: Handle escaped let in for loops (#26583) (camc314)
  • d21d5cf parser: Recognize annotated empty arrows in conditionals (#26537) (camc314)
  • d7713ad parser: Classify Unicode line breaks in block comments (#26536) (camc314)
  • 75cd919 transformer: Preserve receivers in private optional chains (#26535) (camc314)
  • b32d25d parser: Reject escaped import-phase keywords (#26534) (camc314)
  • 47b8311 parser: Recognize contextual binding names in type lookaheads (#26532) (camc314)
  • d6b6705 parser: Require arrow separator in TypeScript function types (#26529) (camc314)
  • e98beef parser: Disambiguate await using in for initializers (#26527) (camc314)
  • 92afee6 parser: Allow parenthesized JSX comma expressions with preserve_parens=false (#26524) (camc314)
  • 31508b1 parser: Reject return types on constructor overloads (#26523) (camc314)
  • a091fc4 parser: Validate await context for await using declarations (#26495) (camc314)
  • 5501e86 parser: Disallow in expressions in using for-loop initializers (#26490) (camc314)
  • c8e5fa7 parser: Allow escaped type names in import and export specifiers (#26487) (camc314)
  • 2dcee2f parser: Reject async modifiers on class fields (#26486) (camc314)
  • 973d58e parser: Require comma after TypeScript this parameter (#26480) (camc314)
  • 32d00c5 codegen: Preserve instantiation expression precedence (#26424) (camc314)
  • cfa47ab parser: Allow in expressions in class static blocks (#26423) (camc314)
  • 5986187 packages/codegen: Preserve private-in right operand precedence (#26420) (camc314)
  • f8e6c6c packages/codegen: Preserve in restriction through yield arguments (#26421) (camc314)
  • d61e3bf parser: Validate TS named tuple rest elements (#26419) (camc314)
  • ae6c386 codegen: Preserve in restriction through yield arguments (#26413) (camc314)
  • 42ac916 codegen: Preserve private-in right operand precedence (#26411) (camc314)
  • 10521b2 parser: Allow escaped type default import bindings (#26409) (camc314)
  • 72cb5e3 parser: Reject rest parameters in getters (#26400) (camc314)
  • 6e15ad5 packages/codegen: Print matching quoted import names as identifiers (#26404) (camc314)
  • bbbb4bc packages/codegen: Preserve private-in left operand precedence (#26403) (camc314)
  • a111b5b packages/codegen: Print accessibility modifiers before abstract (#26402) (camc314)
  • 4e76602 parser: Allow in in arrow block bodies within for initializers (#26395) (camc314)
  • b20fc19 parser: Reject partially parenthesized mixed coalesce expressions (#26394) (camc314)

⚡ Performance

  • 1f902a6 isolated_declarations: Key scope maps by Ident (#26380) (Dunqing)
  • a242469 minfiier: Reduce allocs when creating indirect access (#26601) (Armano)
  • 5b4787f minifier: Update chain expressions in place (#26544) (Armano)
  • 0bc1661 minifier: Try merging before creating new expression statements (#26556) (Armano)
  • c78d707 minifier: Process newly created stmt in handle_if_statement (#26541) (Armano)
  • 029c84b minfier: Update expressions in place when substituting alternate syntax (#26460) (Armano)
  • d198982 codegen: Outline postfix source mapping work (#26450) (camc314)
  • 53f006e ecmascript: Format small integer literals with itoa (#26446) (camc314)
  • 8bfb8c0 codegen: Avoid duplicate sourcemap name lookups (#26441) (camc314)

📚 Documentation

  • 38533ac ast: Move type annotation span comment to span field (#26522) (camc314)

oxlint v1.83.0 & oxfmt v0.68.0

Choose a tag to compare

@github-actions github-actions released this 14 Sep 12:12
Immutable release. Only release title and notes can be modified.

Table of Contents

Oxlint v1.83.0

🚀 Features

  • afe950d linter/react: Update lint rules to accomodate changes in React 19.3 (#26571) (Connor Shea)

🐛 Bug Fixes

  • fb87ed7 linter/unicorn/prefer-array-flat-map: Report .filter().flatMap() chains (#26626) (camc314)
  • 336b654 linter/unicorn/prefer-at: Report single-character substring calls (#26623) (camc314)
  • a5bba6d linter/eslint/no-unused-vars: Respect rest params after-used option (#26579) (Bartok)
  • c1470a2 linter/eslint/no-unused-vars: Preserve ambient implicit exports (#26582) (Dex Hunter)
  • 9a469d2 linter/unicorn/prefer-global-this: Preserve window event method references (#26611) (Dex Hunter)
  • aaff758 linter/unicorn/prefer-default-parameters: Report violation for ??= and ||= (#26607) (Bartok)
  • 2bed25a linter/unicorn/prefer-array-flat: Skip plain concat normalization (#26604) (im10furry)
  • 72bc7f2 oxlint: Replace backlashes path for "no js runtime" diagnostic (#26599) (Sysix)
  • 1aa5ec1 linter/typescript/prefer-for-of: Handle computed collections (#26584) (camc314)
  • 1e90019 linter/typescript: Mark no-unnecessary-type-parameters and prefer-find suggestions as implemented (#26586) (Mikhail Baev)
  • 4231536 linter: Compare label text in runtime optimization assertion (#26526) (camc314)
  • 36d5534 linter: Include file path in diagnostic assertion (#26525) (camc314)
  • 31508b1 parser: Reject return types on constructor overloads (#26523) (camc314)

⚡ Performance

  • 1d681b0 linter/react/jsx-pascal-case: Avoid temporary name segment vector (#26531) (camc314)
  • 2ad7d49 linter/promise/catch-or-return: Avoid temporary formatting vectors (#26505) (camc314)
  • 203235b linter/jsx-a11y/no-static-element-interactions: Avoid role vector (#26504) (camc314)
  • 2e95167 linter/jsx-a11y/anchor-is-valid: Avoid temporary attribute vector (#26501) (camc314)
  • deafdba linter/react/exhaustive-deps: Avoid temporary dependency vector (#26502) (camc314)
  • 4f1627f linter/oxc/branches-sharing-code: Compute deletion spans lazily (#26500) (camc314)
  • c068fd2 linter/react/jsx-curly-brace-presence: Avoid newline position allocation (#26499) (camc314)
  • ed4357c linter/eslint/no-restricted-properties: Skip empty configurations (#26497) (camc314)
  • 92e41b7 linter/oxc/no-barrel-file: Iterate module requests directly (#26498) (camc314)
  • 5255ee3 linter/unicorn/prefer-single-call: Avoid temporary argument vector (#26494) (camc314)
  • 96ef365 linter/unicorn/prefer-includes: Reduce suggestion allocations (#26492) (camc314)
  • a71fd7f linter/unicorn/no-new-buffer: Avoid temporary argument vector (#26491) (camc314)
  • 11085e7 linter/jsdoc/require-yields: Short-circuit JSDoc checks (#26488) (camc314)
  • 9b1aff8 linter/unicorn/no-useless-undefined: Skip calls without trailing undefined (#26481) (camc314)
  • 1e5d5d7 linter/eslint/no-unused-vars: Skip absent global declaration checks (#26457) (camc314)
  • 403f899 linter/eslint/no-undef: Check globals once per unresolved name (#26456) (camc314)
  • 118adb0 linter/eslint/no-restricted-imports: Avoid redundant import scans (#26455) (camc314)
  • ab848f2 linter/eslint/no-useless-assignment: Skip tracking exported symbols (#26449) (camc314)
  • 1b6e409 linter/unicorn/prefer-object-from-entries: Avoid allocating configured paths (#26448) (camc314)
  • 2206875 linter/eslint/new-cap: Avoid unnecessary callee name allocations (#26447) (camc314)

📚 Documentation

  • b927e0a linter/typescript/await-thenable: Add missing lang for markdown doc comment (#26438) (Ari Perkkiö)

Oxfmt v0.68.0

🚀 Features

  • 586f27a formatter_core: Add prefix_align builder and Tag::(Start|End)Prefix (#26520) (leaysgur)
  • dc45cc3 formatter_test: Test Prettier dynamic snippet tests (#26469) (leaysgur)

🐛 Bug Fixes

  • d7e0c82 formatter: Keep an enum member's trailing suppress comment (#26549) (leaysgur)
  • d2fe01e formatter: Unify suppress comment behavior (#26547) (leaysgur)
  • d35d89f oxfmt: Skip shutdown delay on fixed Node 24 releases (#26518) (Pablo García)
  • aef8b4a formatter_css: Handle less-test-suites failures (#26513) (leaysgur)
  • 9dbddca formatter: Keep group flat for own-line comment in JSX (#26475) (leaysgur)
  • d226e6f formatter_yaml: Bump oxc-yaml-parser to 0.0.6 (#26472) (leaysgur)
  • 8b41fc0 formatter_yaml: Clamp tab_width: 0 to 1 to keep semantics (#26471) (leaysgur)
  • dea2ba0 formatter_core: Do not panic with align(0) (#26468) (leaysgur)
  • bf1d3f6 formatter: Check this_param for simple parameters test (#26474) (leaysgur)
  • 33cdc84 formatter: Keep cast-target assignment and commented parameter patterns (#26429) (leaysgur)
  • 876fbe3 oxfmt: Expand Fill parts in tsx-in-vue (#26427) (leaysgur)

📚 Documentation

  • 66fda4f formatter: Update AGENTS.md comment handling (#26551) (leaysgur)
  • 41abcba formatter: Note why jsx-test-suite snippets stay off (#26515) (leaysgur)

oxc crates_v0.149.0

Choose a tag to compare

@github-actions github-actions released this 07 Sep 14:41
Immutable release. Only release title and notes can be modified.

💥 BREAKING CHANGES

  • 66744f0 parser: [BREAKING] Rename panicked to fatal_error in ParserReturn (#26382) (overlookmotel)
  • 2c9a947 parser: [BREAKING] Reduce MAX_LEN to 256 bytes below u32::MAX (#26352) (overlookmotel)

🚀 Features

  • 32bdc5b allocator: Construct ArenaHashSet with any Default hasher (#26372) (Dunqing)
  • a17de58 minifier: Process of return/throw in non last position and fix async * inlining (#26214) (Armano)
  • bfb4c57 parser: Distinguish unapplied no-side-effects comments (#26120) (碳苯 Carbon)
  • 1d9b9d3 ast: Add GetNodeId trait (#26145) (camc314)

🐛 Bug Fixes

  • b156333 codegen: Order accessibility before abstract on accessors (#26392) (camc314)
  • 116c8b8 transformer/class-properties: Keep private methods in class-expression scope (#26308) (Changsu Seong)
  • 1400a0f parser: Require a string source after export ... from (#26389) (camc314)
  • 2da73b7 codegen: Print matching quoted import names as identifiers (#26386) (camc314)
  • 0a81d29 codegen: Preserve private-in left operand precedence (#26383) (camc314)
  • 9a02337 parser: Correctly round large nondecimal literals (#26379) (camc314)
  • 3d95477 transformer: Gate async-only rewrites by owning transform (#26326) (Dunqing)
  • f45a9ee transformer: Limit arguments capture to lowered async functions (#26317) (Dunqing)
  • 789969f transformer: Gate this capture by owning async transform (#26227) (Dunqing)
  • affeb14 minifier: Mangle class private members in Node API (#26118) (碳苯 Carbon)
  • 8b35abd semantic: Detect duplicate private class elements (#26361) (camc314)
  • 457ed57 semantic: Reject await and yield in rest parameter defaults (#26359) (camc314)
  • 4b89c7b semantic: Reject jumps across arrow functions (#26357) (camc314)
  • c966aca parser: Do not omit < token opening type argument list (#26328) (overlookmotel)
  • f07dca5 ast_visit: Add the trimmed prefix length to translation table offsets (#26173) (Bharadwaj Pendyala)
  • 3ab9bd1 parser: Do not re-lex template substitution tail after fatal error (#26230) (overlookmotel)
  • 07851b9 parser: Fix debug assert failure when lexer error with tokens enabled (#26229) (overlookmotel)
  • 00dea7a allocator: Gate Allocator::data_end_ptr behind fixed_size feature (#26248) (camc314)
  • 853ffab ecmascript: Avoid charAt panic on 32-bit (#26244) (camc314)
  • 34feccb runtime: Remove stale regenerator exports (#26243) (camc314)

⚡ Performance

  • 34a242e minifier: Use Ident for property mangler (#26334) (sapphi-red)
  • 5303f5c minifier: Unify merging of last expression into target sequence (#26264) (Armano)
  • 2ca7d29 minifier: Consume nodes in minimize_statements in reverse order (#26258) (Armano)
  • d2354b4 mangler: Use Ident for variable names to keep (#26333) (sapphi-red)
  • 5b3e335 minifier: Use Ident instead of Str in KeepVar (#26332) (sapphi-red)
  • 51366fb minifier: Use IdentHashSet in PrivateMemberUsageStack (#26331) (sapphi-red)
  • d19c42a minifier: Merge nested if stmt in place instead of creating dummies (#26351) (Armano)
  • 356def6 parser: Shrink annotation comment ranges (#26356) (overlookmotel)
  • a5be474 parser: Shave instruction off parse_jsx_element_name (#26355) (overlookmotel)
  • 9780663 parser: Remove fatal error guard from parse_jsx_element_name (#26354) (overlookmotel)
  • 766e12f parser: Remove token field from LexerCheckpoint (#26350) (overlookmotel)

📚 Documentation

  • d4b4e61 transformer: Document ES2015 target floor (#26378) (Dunqing)
  • 67dd054 ast_visit: Correct out-of-date comments on Utf8ToUtf16 converter (#26285) (overlookmotel)
  • a8ed2a7 minifier: Fix stale validation instructions (#26251) (camc314)

oxlint v1.82.0 & oxfmt v0.67.0

Choose a tag to compare

@github-actions github-actions released this 07 Sep 14:57
Immutable release. Only release title and notes can be modified.

Table of Contents

Oxlint v1.82.0

💥 BREAKING CHANGES

  • 66744f0 parser: [BREAKING] Rename panicked to fatal_error in ParserReturn (#26382) (overlookmotel)

🚀 Features

  • 6a0e19c linter/eslint/no-unmodified-loop-condition: Support checkConditionalExpressions option (#26249) (camc314)

🐛 Bug Fixes

  • aa38ddf linter/unicorn/numeric-separators-style: Correct schema defaults (#26393) (camc314)
  • 562dd14 jsx-a11y/anchor-has-content: Allow anchors passed as custom component props (#26360) (Mikhail Baev)
  • 253cdb2 linter/eslint/id-length: Exempt TS interface/type-literal members with never (#26310) (Pearce Ropion)
  • 8c7ea76 ast_visit: Account for trimmed source offsets (#26223) (Cameron)
  • 5f9cffc linter/typescript/no-explicit-any: Fix rest parameter to unknown[] (#26279) (camc314)
  • 4de9fa3 linter/react/jsx-no-literals: Check nested JSX expression literals (#26253) (camc314)
  • 07851b9 parser: Fix debug assert failure when lexer error with tokens enabled (#26229) (overlookmotel)
  • 9cee146 oxlint/lsp: Don't try to parse fix message, always fallback (#26204) (Sysix)
  • a662c40 linter/eslint/no-useless-assignment: Handle destructuring assignments (#25925) (camc314)
  • 304bd9a linter/eslint/no-array-constructor: Handle ASI hazards in fixer (#26166) (Hamody We)
  • b41bb35 linter: Qualify rules in rules output (#26250) (camc314)
  • 895c685 linter/typescript/no-extraneous-class: Avoid deleting class expressions (#26231) (camc314)
  • 4ba33c8 linter/eslint/no-unused-vars: Handle stored arrow references (#26225) (camc314)

🛡️ Security

  • 9a612d5 deps: Update npm packages (#26178) (renovate[bot])

Oxfmt v0.67.0

💥 BREAKING CHANGES

  • 66744f0 parser: [BREAKING] Rename panicked to fatal_error in ParserReturn (#26382) (overlookmotel)
  • 2c9a947 parser: [BREAKING] Reduce MAX_LEN to 256 bytes below u32::MAX (#26352) (overlookmotel)

🚀 Features

  • 68e12ab formatter_css: Follow the oxc-css-parser's acceptance line (#26337) (leaysgur)

🐛 Bug Fixes

  • f7acdc0 formatter: Treat a JSDoc cast target as opaque in chain layouts (#26375) (leaysgur)
  • 104061b formatter: Keep JSDoc cast parens with a comment inside them (#26374) (leaysgur)
  • 3d00a76 formatter_css: Keep comment inside important and simple-vars colon (#26370) (leaysgur)
  • 172ddb6 formatter_css: Keep a same-line line comment on its line (#26321) (leaysgur)
  • cafaf32 formatter_css: Never drop comments inside an at-rule prelude (#26320) (leaysgur)
  • 534a0fe formatter_css: Keep a line comment on its comma's line (#26319) (leaysgur)
  • 99cfd75 formatter_css: Hide raw comment printing API, use strcut instead (#26316) (leaysgur)
  • 2028896 formatter_css: Preserve comments around SCSS/Less variable values (#26276) (leaysgur)
  • 6752abc formatter_css: Keep leading comments before (#26272) (leaysgur)
  • 3b054de formatter_graphql: Align comment printing after open { (#26271) (leaysgur)
  • b3c287a formatter_css: Fix SCSS bracket list printing (#26270) (leaysgur)
  • bac770a formatter_css: Preserve comment in SCSS paren comma list (#26269) (leaysgur)
  • c7b57ef formatter_css: Print SCSS map consisntent with and without comment (#26268) (leaysgur)
  • 063e2b6 formatter_css: Preserve trailing comma in single-item scss lists (#26245) (leaysgur)
  • 5f9580d oxfmt: Bump prettier-plugin-tailwindcss (#26273) (leaysgur)

⚡ Performance

  • 1cad286 oxfmt: Match editorconfig once per file (#26239) (Yuji Sugiura)
  • 260c5eb oxfmt: Match overrides once per file (#26238) (leaysgur)
  • 61565bc oxfmt: Share resolved FormatConfig via Arc instead of cloning per file (#26237) (leaysgur)

📚 Documentation

  • 32084d4 formatter_core: Clarify printer hard_line compression (#26312) (leaysgur)
  • 4fabdcc formatter,formatter_css,formatter_graphql,formatter_yaml: Update DIVERGENCES.md (#26267) (leaysgur)
  • 26a1fa4 formatter_core: Refine FORMATTER_POLICY (#26266) (leaysgur)

🛡️ Security

  • 9a612d5 deps: Update npm packages (#26178) (renovate[bot])

oxc crates_v0.148.0

Choose a tag to compare

@github-actions github-actions released this 01 Sep 08:27
Immutable release. Only release title and notes can be modified.

💥 BREAKING CHANGES

  • a31567a allocator: [BREAKING] Make Allocator::cursor_ptr and data_end_ptr private (#26081) (overlookmotel)

🚀 Features

  • 115955d minifier: Drop cases whose condition is statically false (#26172) (Armano)
  • 784e9fa minifier: Invert !0 and !1 in place for boolean context to 1 and 0 (#26050) (Armano)
  • 1e902cc minifier: Expand fold leading assignments into the var decl (#26142) (Armano)
  • 3ed4f6a minifier: Expand de morgan's optimization to allow move of ! (#25930) (Armano)
  • 5672585 parser: Attach all comments to nodes (#25944) (camc314)

🐛 Bug Fixes

  • a3d33dd semantic: Skip body bindings in type parameters and this param (#26169) (Dunqing)
  • 4adfb4c semantic: Validate chained continue labels (#26157) (camc314)
  • b874f48 ecmascript: Math.round only exact half ties (#26150) (camc314)
  • a625378 minifier: Coerce omitted indexOf search argument (#26149) (camc314)
  • dc7398b ecmascript: Trim trailing whitespace in string to number (#26148) (camc314)
  • 243b685 transformer/object-rest: Lower multiple declarators correctly (#26147) (camc314)
  • dc09a3a parser: Avoid panic on escaped string export names (#26146) (camc314)
  • e412cf2 linter: Clamp invalid JS plugin locations (#26144) (camc314)
  • c3dedc9 semantic: Skip function body bindings in parameters (#26099) (Dunqing)
  • e74de61 transform-react: Match Babel diagnostic reporting (#26128) (Boshen)
  • d5163d0 parser: Correctly classify unapplied pure annotations (#26084) (camc314)
  • 8531b9b linter/plugins: Alter method for obtaining mutable Program when sending AST to JS plugins (#26077) (overlookmotel)
  • 9b51658 regular_expression: Allow oversized decimal escape for Annex B (#26070) (leaysgur)
  • c8de4df regular_expression: Reject oversized backreferences (#26055) (camc314)

⚡ Performance

  • ac4785a diagnostics: Use fixed ANSI styles (#26130) (Boshen)
  • 07a0793 packages/codegen: Flatten output in chunks (#26109) (overlookmotel)
  • 487427a packages/codegen: Faster string flattening (#26108) (overlookmotel)
  • 7785583 packages/codegen: Ensure indent strings are flattened (#26107) (overlookmotel)
  • 0dd4db3 packages/codegen: Store mapping positions in an Int32Array (#26085) (overlookmotel)

oxlint v1.81.0 & oxfmt v0.66.0

Choose a tag to compare

@github-actions github-actions released this 01 Sep 15:17
Immutable release. Only release title and notes can be modified.

Table of Contents

Oxlint v1.81.0

🚀 Features

  • 60b945d linter/nextjs/no-typos: Implement suggestion (#26091) (Mikhail Baev)

🐛 Bug Fixes

  • 33ac4b0 linter/lsp: Prevent tsgolint from holding onto processes (#25570) (Adrian Schaedle)
  • baf4b1e linter/import/no-empty-named-blocks: Make empty value import removal a suggestion (#26155) (camc314)
  • 77cfaec linter/eslint/object-shorthand: Preserve __proto__ semantics (#26154) (camc314)
  • fa3c082 linter/unicorn/prefer-set-size: Ignore shadowed Set constructors (#26153) (camc314)
  • e412cf2 linter: Clamp invalid JS plugin locations (#26144) (camc314)
  • d86c113 linter: Normalize reversed JS plugin locations (#26138) (camc314)
  • 73c09b2 linter/eslint/no-use-before-define: Run on JS, JSX files (#26114) (camc314)
  • 03ef0f2 linter/unicorn/no-useless-spread: Treat typed arrays as a distinct value hint (#26067) (Aadharsh Pannirselvam)
  • bd15905 linter/react/no-unstable-nested-components: Check nested component object property names (#26101) (camc314)
  • 3910e2b linter/eslint/no-unassigned-vars: Skip Svelte and Vue files (#26042) (Hamody We)
  • 047f7ca linter/plugins: Fix interaction between JS plugins and Vue rules (#26080) (overlookmotel)
  • 8531b9b linter/plugins: Alter method for obtaining mutable Program when sending AST to JS plugins (#26077) (overlookmotel)
  • dc464ff linter/unicorn/prefer-math-min-max: Avoid unsafe autofix (#26060) (camc314)

📚 Documentation

  • 464ddd1 linter: Support a shared short description for jest/vitest rules (#26186) (connorshea)
  • 9db5ad3 linter: Add short description to vue/no-dupe-keys (#26183) (connorshea)
  • db66f58 linter: Correct export/import mismatch in bar and foo example (#25927) (billychannnnnn)
  • d5be037 linter/typescript/switch-exhaustiveness-check: Clarify default case comment pattern (#26100) (camc314)

Oxfmt v0.66.0

🚀 Features

  • 1fb37b6 formatter/css: Format declaration-shaped raw-prelude rules (postcss nested config blocks) (#26194) (leaysgur)

🐛 Bug Fixes

  • 9f81002 formatter: Re-add suppressed statement terminators per options.semi (#26220) (leaysgur)
  • 769ffd5 formatter: Print suppressed typecast parens (#26218) (leaysgur)
  • 5ff57f8 formatter/sort-imports: Handle custom side effect groups (#26217) (leaysgur)
  • 2f4d759 formatter: Do not skip cast comment lookup (#26216) (leaysgur)
  • 1213e12 formatter: Preserve comment for statement terminators and binary casts (#26213) (leaysgur)
  • 57e8e22 formatter_css: Space a folded sign after a call in Less operations (#26134) (leaysgur)
  • e4298fb formatter/jsdoc: Follow CommonMark for interrupting lists and guard wrapping from creating them (#26098) (leaysgur)
  • a1e21c2 formatter: Apply head body policy everywhere (#26074) (leaysgur)
  • 676b7e1 formatter: Keep comments in their for-head slot, before an empty-statement body and do-while (#26073) (leaysgur)
  • 3bbcea6 formatter: Keep comments between a head and its body out of the braces across all constructs (#26071) (leaysgur)
  • 57537a2 formatter: Place comments between a head and open paren (#26058) (leaysgur)
  • e2d53e7 formatter: Place comments between a statement head and its body (#26043) (leaysgur)
  • 662556c formatter: Print the idempotent placement for comments in dropped parens (#26041) (leaysgur)
  • faf11d9 formatter_yaml: Keep trailing whitespace in block scalars (#26072) (leaysgur)

⚡ Performance

  • ac4785a diagnostics: Use fixed ANSI styles (#26130) (Boshen)

📚 Documentation

  • b879608 formatter,formatter_graphql,formatter_yaml: Annotate own-line comment inlining as known policy violation (#26131) (leaysgur)
  • 181953b oxfmt,formatter_core,formatter,formatter_yaml,formatter_css,formatter_graphql: Extract DIVERGENCES.md out from AGENTS.md (#26121) (leaysgur)
  • a67cb9d formatter,formatter_core: Document comment moving policy (#26075) (leaysgur)
  • fc175b0 formatter_core: Clarify idempotency test infra (#26069) (leaysgur)

oxc crates_v0.147.0

Choose a tag to compare

@github-actions github-actions released this 24 Aug 11:31
Immutable release. Only release title and notes can be modified.

🚀 Features

  • b6e9e5e minifier: Fold switch stmt whose parent is not block stmt (#25403) (Armano)

🐛 Bug Fixes

  • 8db1053 codegen: Require sourcemap for example (#26047) (camc314)
  • 8a9bdbd estree: Include decorators in FormalParameterRest spans (#26021) (camc314)
  • 6f0c7cf minifier: Avoid merging if to for in sloppy mode when containing function declaration (#25638) (sapphi-red)
  • 2cde1f6 rust: Address nightly deprecations (#25998) (Boshen)
  • 6c5ad1b codegen: Only add mapping names for PrivateIdentifiers which have changed (#25958) (overlookmotel)
  • 2dad1e0 parser: Track irregular line terminators in trivia (#25947) (camc314)
  • 58ba651 minifier: Avoid merging if to for when the body contains a function declaration (#25637) (sapphi-red)
  • a185ac3 codegen: Print # before private identifier in TS signature key (#25938) (overlookmotel)
  • af82a07 minifier: Keep unary + when the other operand has side effects (#25645) (Kotaro Chikuba)

⚡ Performance

  • 20711f4 packages/codegen: Remove node param from write and markMap functions in sourcemap builds (#25989) (overlookmotel)
  • 29a7749 packages/codegen: Pass start and end to write and mark functions (#25986) (overlookmotel)
  • 8ae741b packages/codegen: Replace write calls with writeIdent (#25984) (overlookmotel)
  • a78ed30 packages/codegen: Remove last param from writeWithMapNamed (#25983) (overlookmotel)
  • 53f6270 packages/codegen: Eagerly initialize mapNames (#25979) (overlookmotel)
  • 5b43c60 packages/codegen: Split recording mappings into multiple functions (#25978) (overlookmotel)
  • cc947b5 packages/codegen: Reduce property lookups (#25977) (overlookmotel)
  • c22a9cc packages/codegen: Combine condition checks (#25976) (overlookmotel)
  • 215a6a5 packages/codegen: Add functions for writing/marking unnamed mappings (#25975) (overlookmotel)
  • fe444cc codegen: Avoid allocations for single comment anchors (#25598) (camc314)
  • a0aee81 minifier: Do not rebuild expression when substituting void to null (#25964) (Armano)
  • 1004439 packages/codegen: Merge mark and write calls in printImportAttributes (#25972) (overlookmotel)
  • 94c8a34 packages/codegen: Remove node param from printString and printNonNegativeFloat (#25971) (overlookmotel)
  • 7e2b4b3 packages/codegen: printNonNegativeFloat write mapping directly (#25968) (overlookmotel)
  • f09c8ab minifier: Avoid creation of unnecessary conditional expressions (#25931) (Armano)
  • 53ff080 packages/codegen: Remove lastWasPostfixClose (#25888) (overlookmotel)

📚 Documentation

  • 07de646 packages/codegen: Fix JSDoc comments on write* methods (#25966) (overlookmotel)
  • 3b09c04 packages/codegen: Clarify comment (#25959) (overlookmotel)

oxlint v1.80.0 & oxfmt v0.65.0

Choose a tag to compare

@github-actions github-actions released this 24 Aug 13:39
Immutable release. Only release title and notes can be modified.

Table of Contents

Oxlint v1.80.0

🚀 Features

  • 70c3e35 linter/typescript/no-confusing-non-null-assertion: Implement suggestion (#26012) (Mikhail Baev)

🐛 Bug Fixes

  • 17ae11c linter/oxc/double-comparisons: Handle grouped logical expressions (#26044) (camc314)
  • 8a353a7 linter/eslint/no-control-regex: Refine help message text (#25996) (Rahul Mishra)
  • 8a9bdbd estree: Include decorators in FormalParameterRest spans (#26021) (camc314)
  • 8d94cd1 linter/eslint/no-useless-rename: Preserve type modifiers (#26020) (Cameron)
  • 2cde1f6 rust: Address nightly deprecations (#25998) (Boshen)
  • 51d36d7 linter/vue: Resolve vue imports via shared import helpers (#25903) (Connor Shea)
  • 83a68d2 linter/react/no-react-children: Resolve react imports by symbol (#25901) (Connor Shea)
  • 124e196 linter: Resolve globals by reference, not by name (#25905) (Connor Shea)
  • a701bcc linter: Remove invalid React compiler doc links (#25900) (Boshen)

📚 Documentation

  • 9b7e153 linter: Set version to 1.79.0 for rules shipped in 1.79.0 (#25902) (connorshea)

Oxfmt v0.65.0

🐛 Bug Fixes

  • bf37dd5 formatter: Preserve class decorators before export when the statement is suppressed (#26034) (leaysgur)

oxc crates_v0.146.0

Choose a tag to compare

@github-actions github-actions released this 19 Aug 08:40
Immutable release. Only release title and notes can be modified.

🚀 Features

  • 83cb516 minifier: Improve negation of expressions in boolean context (#25755) (Armano)

🐛 Bug Fixes

  • 82a790d codegen: Narrow printSync input type (#25871) (camc314)
  • 134fb22 isolated-declarations: Preserve unresolved parameter types (#25909) (Dunqing)
  • 526c2b3 codegen: Remove deprecated test APIs (#25889) (camc314)
  • 344a9b2 codegen: Align enum template sourcemaps (#25872) (camc314)

⚡ Performance

  • 603b904 packages/codegen: Check sourceText only once (#25887) (overlookmotel)
  • 5ef0c93 minifier: Unwrap all unary exprs without creating dummy expressions (#25891) (Armano)
  • 8783524 packages/codegen: Remove loop from growMappingBuffer (#25886) (overlookmotel)
  • b6b14c0 packages/codegen: Remove redundant branch (#25885) (overlookmotel)
  • be6adf0 packages/sourcemap: Make location passed to recordSourceMapping always a number (#25884) (overlookmotel)
  • f720f15 packages/codegen: Take named-mapping only code off hot path in recordSourceMapping (#25883) (overlookmotel)
  • a734af5 packages/codegen: Remove redundant setting of last in printImportAttributes and printIf (#25882) (overlookmotel)
  • c6e44c6 packages/codegen: Combine 2 writes in printJSXElement (#25881) (overlookmotel)
  • 8801662 packages/codegen: Remove redundant mapping from printParams (#25880) (overlookmotel)

📚 Documentation

  • 5ad330e packages/codegen: Reformat comments (#25876) (overlookmotel)

oxc crates_v0.145.0

Choose a tag to compare

@github-actions github-actions released this 18 Aug 14:33
Immutable release. Only release title and notes can be modified.
4a4a1fb

💥 BREAKING CHANGES

  • 365274e packages/codegen: [BREAKING] printSync return an object (#25720) (overlookmotel)

🚀 Features

  • 6a7eb60 packages/codegen: Alter capitalization of sourceFilename option (#25854) (overlookmotel)
  • 300763f packages/codegen: Add full source map support (#25585) (camc314)
  • a169e4a napi/minify: Expose property name mangling options (#24741) (Dunqing)
  • 2f5cdb1 minifier: Add property name mangling (#24740) (Dunqing)
  • 4922141 mangler: Deduplicate private accessor names (#25601) (camc314)
  • 1c4f519 napi: Add Relay transform plugin (#25503) (Boshen)
  • a4478e9 codegen: Add oxc-codegen package (#25488) (overlookmotel)

🐛 Bug Fixes

  • 0fbcf64 codegen: Validate sourcemap options (#25860) (camc314)
  • 345f981 react_compiler: Skip node_modules by default (#25859) (Boshen)
  • ab81f3f minifier: Drop side-effect-free additions (#25639) (Dunqing)
  • 241c559 napi/minify: Accept RegExp for property filters (#25827) (Dunqing)
  • 4cc7ea4 codegen: Reject invalid indent options (#25807) (camc314)
  • 53f9295 isolated-declarations: Preserve undefined for defaulted any (#25292) (camc314)
  • 8ab883a codegen: Preserve property key annotations (#25766) (Dunqing)
  • b13fd48 minifier: Model uninitialized module vars as undefined (#25497) (Dunqing)
  • f6000ac ecmascript: Fold ** with Number::exponentiate, not IEEE pow (#25644) (Kotaro Chikuba)
  • b846abc isolated-declarations: Handle ambient expando properties (#25655) (camc314)
  • dec0a86 react-compiler: Standardize diagnostics (#25702) (Boshen)
  • fca2e0c parser: Reject initialized lexical declarations in for-in (#25700) (Boshen)
  • ae9be8f parser: Forbid type parameters on quoted constructors (#25696) (Boshen)
  • c5f188a react-compiler: Use Babel v1 validation defaults (#25676) (Boshen)
  • db44651 napi: Disable reuseWorker in browser bindings (#25640) (leaysgur)
  • ce35d47 react_compiler: Preserve JSX import source pragmas (#25592) (Boshen)
  • 059784d semantic: Respect shadowed Infinity and NaN in enum evaluation (#25604) (camc314)
  • bb5a232 minifier: Keep variable declaration initilized with class when keepNames is enabled (#25584) (sapphi-red)
  • f49229d minifier: Keep side effects when rotating bitwise operands (#25596) (Kotaro Chikuba)
  • e82495b ecmascript: Derive ToNumber of !x from ToBoolean (#25595) (Kotaro Chikuba)
  • 509931b semantic: Classify global references per identifier (#25608) (camc314)
  • 80484ce mangler: Correct base54 safety comment (#25606) (camc314)
  • c1369a7 codegen: Resolve private names in class heritage (#25588) (camc314)
  • c002f29 codegen: Escape sources for empty import specifiers (#25586) (camc314)
  • 0c68b7f estree: Emit decorators on FormalParameterRest (#25582) (camc314)
  • cdf1846 semantic: Allow legacy escapes in JSX attributes (#25576) (Boshen)
  • e75e102 minifier: Preserve block statement in labeled iteration statements (#25162) (Armano)
  • 771d79a mangler: Exclude non-manglable symbols from slot assignment (#25539) (sapphi-red)
  • 76b19f5 minifier: Avoid duplicating large folded strings (#25532) (Dunqing)
  • 59e8895 codegen: Validate starting indent level (#25550) (camc314)
  • 88b34f2 clippy: Remove unneeded unsafe (#25551) (camc314)
  • 23a7ad0 parser: Stop delimited lists at end of file (#25542) (Boshen)
  • 73acba9 parser: Preserve fatal errors during await reparse (#25541) (Boshen)
  • c3e99d1 minifier: Avoid invalid octal escapes in template folds (#25495) (Dunqing)
  • b4e6a9e codegen: Output newline after export default interface (#25487) (overlookmotel)
  • 5fcf683 minifier: Correct issue with try finally termination (#25185) (Armano)
  • 1645d93 react_compiler: Preserve source spans (#25462) (Boshen)
  • 8d7f9cf react_compiler: Honor eslint suppressions (#25394) (Boshen)

⚡ Performance

  • 568203e ecmascript: Use binary search for known globals (#25817) (Boshen)
  • c84ede3 estree_tokens: Share JS token update entry point (#25826) (Boshen)
  • 9a6e862 minifier: Move owned statements directly (#25835) (Dunqing)
  • 61b2aef minifier: Move owned AST nodes directly (#25837) (Dunqing)
  • 673b04b minifier: Replace expressions without take_in dummies (#25836) (Dunqing)
  • 63ff8ef linter: Outline diagnostic construction (#25762) (Boshen)
  • 621808e diagnostics: Measure graphemes lazily (#25723) (Boshen)
  • f62ed0e diagnostics: Optimize graphical number rendering (#25715) (Boshen)
  • 7152834 diagnostics: Reduce graphical formatting overhead (#25714) (Boshen)
  • 10fc4b7 diagnostics: Reduce graphical rendering allocations (#25711) (Boshen)
  • 9c8abab diagnostics: Batch graphical reports (#25710) (Boshen)
  • 757f3d4 mangler: Share allocated names across reused slots (#25605) (camc314)
  • 5444cbf codegen: Skip escaping harmless < tokens (#25564) (camc314)

📚 Documentation

  • 58f7ab9 packages/codegen: Reformat docs and comments (#25848) (overlookmotel)
  • 627466e transform-react: Document all options (#25800) (Boshen)
  • ce03ac1 packages/codegen: Fix JSDoc comments for printSync (#25722) (overlookmotel)
  • 386a699 packages/codegen: Correct JSDoc comment (#25716) (overlookmotel)
  • 31e571d mangler: Update code example (#25599) (camc314)
  • fd62354 codegen: Revamp package readme (#25560) (camc314)
  • ffa3153 codegen: Clarify raw transfer Node requirement (#25565) (camc314)
  • c5d4063 codegen: Clarify binary walk allocations (#25562) (camc314)
  • 5703d7a codegen: Correct stale printer comments (#25561) (camc314)
Sponsor
SponsoredKunjungi sekarang
Promo