Connor Shea 8cb9ea55a9 perf(linter/vue): look up vue component options object from the parent node
`vue_component_options_kind` walked every ancestor up to `Program` for each
`ObjectExpression`. All three recognized forms require the object expression's
span to match a direct child slot of the matched node — `export default {...}`,
the last argument of a definition call, the first argument of `new Vue(...)` —
so no ancestor above the parent can ever match. Check the parent only.

`require_slots_as_functions` calls this from its own `ancestors()` loop, which
made that path quadratic in nesting depth.

Measured single-threaded over `.vue` files, interleaved paired samples, byte
identical diagnostics before and after:

- n8n (1,254 files, 287K lines): -1.50ms, 95% CI [-2.61, -0.39]
- GitLab (4,566 files, 629K lines): -2.63ms, 95% CI [-3.25, -2.01]

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-18 19:44:58 -06:00
…
…
…



Oxc logo


MIT licensed Build Status Code Coverage CodSpeed Badge

Discord chat Playground Website

⚓ Oxc

/oʊ ɛks siː/

The Oxidation Compiler is a collection of high-performance tools for JavaScript and TypeScript written in Rust.

Oxc is part of VoidZero's vision for a unified, high-performance toolchain for JavaScript. It powers Rolldown (Vite's bundler) and enables the next generation of ultra-fast development tools that work seamlessly together.

For more information, check out our website at oxc.rs.

* Oxidation is the chemical process that creates rust

🙋 Who's using Oxc?

Rolldown and Nuxt use Oxc for parsing. Rolldown also uses Oxc for transformation and minification. Nova, swc-node, and knip use oxc_resolver for module resolution. Preact, Shopify, ByteDance, and Shopee use oxlint for linting.

See more projects using Oxc →

🔧 Lint or Format a Codebase

  • Lint: Oxlint — npx oxlint@latest
  • Format: Oxfmt — npx oxfmt@latest

🧰 Build Tooling on Top of Oxc

  • Parse JavaScript and TypeScript: Parser
  • Transform TypeScript, JSX, and modern JavaScript: Transformer
  • Minify JavaScript for production builds: Minifier
  • Resolve modules for JavaScript and TypeScript: Resolver

✍️ Contribute

Check out some of the good first issues or ask us on Discord.

See CONTRIBUTING.md for guidance, or read the complete contributing guide on our website →

If you are unable to contribute by code, you can still participate by:

📚 Other Resources

Sponsored By

Our sponsors

📖 License

Oxc is free and open-source software licensed under the MIT License.

Thank you to namespace.so for powering our CI/CD pipelines with fast, free macOS and Linux runners.

Oxc ports or copies code from other open source projects, their licenses are listed in Third-party library licenses.

S
Description
migrate-oxlint: Guide for migrating a project from ESLint to Oxlint. Use when asked to migrate, convert, or switch a JavaScript/TypeScript project's linter from ESLint to…; migrate-oxfmt: Guide for migrating a project from Prettier or Biome to Oxfmt. Use when asked to migrate, convert, or switch a JavaScript/TypeScript project's formatter from…
Readme MIT 551 MiB
Languages
Rust 83.4%
JavaScript 9.4%
TypeScript 7.1%