Linter compatibility
Compare real Baseline checks under ESLint, Oxlint, and Bun.
Measurements update weekly and on manual dispatch. See the ESLint TypeScript setup, Oxlint limitation, and feature coverage.
eslint-plugin-baseline-js 0.7.7 from npm.
Latest toolchain
Logical assignment
let value;
value ||= 1;
Not in Baseline 2019. Expected warning for logical-assignments at line 2, column 7.
| ESLint | Oxlint | Bun |
|---|---|---|
| Warns | Warns | Warns |
Static Object.groupBy
Object.groupBy([], String);
Not in Baseline 2019. Expected warning for array-group at line 1, column 8.
| ESLint | Oxlint | Bun |
|---|---|---|
| Warns | Warns | Warns |
Computed Object.groupBy
Object['groupBy']([], String);
Not in Baseline 2019. Expected warning for array-group at line 1, column 8.
| ESLint | Oxlint | Bun |
|---|---|---|
| Warns | Warns | Warns |
Shadowed Object parameter
function local(Object) {
Object.groupBy([], String);
}
| ESLint | Oxlint | Bun |
|---|---|---|
| No warning | No warning | No warning |
Shadowed Object binding
const Object = { groupBy() {} };
Object.groupBy([], String);
| ESLint | Oxlint | Bun |
|---|---|---|
| No warning | No warning | No warning |
Global fetchLater
fetchLater('/beacon');
Not in Baseline 2019. Expected warning for fetchlater at line 1, column 1.
| ESLint | Oxlint | Bun |
|---|---|---|
| Warns | Warns | Warns |
TypeScript static Object.groupBy
declare const input: string[];
Object.groupBy(input, String);
export {};
Not in Baseline 2019. Expected warning for array-group at line 2, column 8.
| ESLint | Oxlint | Bun |
|---|---|---|
| Warns | Warns | Warns |
Typed Element.checkVisibility
declare const element: Element;
element.checkVisibility();
export {};
Not in Baseline 2019. Expected warning for check-visibility at line 2, column 9.
| ESLint | Oxlint | Bun |
|---|---|---|
| Warns | Unsupported | Unsupported |
Typed Set.union
declare const values: Set<unknown>;
values.union(new Set());
export {};
Not in Baseline 2019. Expected warning for set-methods at line 2, column 8.
| ESLint | Oxlint | Bun |
|---|---|---|
| Warns | Unsupported | Unsupported |
Structural lookalike
const element = { checkVisibility() { return true; } };
element.checkVisibility();
export {};
| ESLint | Oxlint | Bun |
|---|---|---|
| No warning | Unsupported | Unsupported |
Named interface lookalike
interface Element { checkVisibility(): boolean }
declare const element: Element;
element.checkVisibility();
export {};
| ESLint | Oxlint | Bun |
|---|---|---|
| No warning | Unsupported | Unsupported |
Host API checks
| Host API | ESLint | Oxlint | Bun |
|---|---|---|---|
| Plugin options | Works | Works | Works |
| AST selectors | Works | Works | Works |
| Function scope shadowing | Works | Works | Works |
| Top-level scope binding | Works | Works | Works |
| Source text and tokens | Works | Works | Works |
| Diagnostic locations | Works | Works | Works |
| Node ancestry | Works | Works | Works |
| TypeScript receiver services | Works | Unsupported | Unsupported |
Pinned toolchain comparison
Pinned toolchain
Logical assignment
let value;
value ||= 1;
Not in Baseline 2019. Expected warning for logical-assignments at line 2, column 7.
| ESLint | Oxlint | Bun |
|---|---|---|
| Warns | Warns | Warns |
Static Object.groupBy
Object.groupBy([], String);
Not in Baseline 2019. Expected warning for array-group at line 1, column 8.
| ESLint | Oxlint | Bun |
|---|---|---|
| Warns | Warns | Warns |
Computed Object.groupBy
Object['groupBy']([], String);
Not in Baseline 2019. Expected warning for array-group at line 1, column 8.
| ESLint | Oxlint | Bun |
|---|---|---|
| Warns | Warns | Warns |
Shadowed Object parameter
function local(Object) {
Object.groupBy([], String);
}
| ESLint | Oxlint | Bun |
|---|---|---|
| No warning | No warning | No warning |
Shadowed Object binding
const Object = { groupBy() {} };
Object.groupBy([], String);
| ESLint | Oxlint | Bun |
|---|---|---|
| No warning | No warning | No warning |
Global fetchLater
fetchLater('/beacon');
Not in Baseline 2019. Expected warning for fetchlater at line 1, column 1.
| ESLint | Oxlint | Bun |
|---|---|---|
| Warns | Warns | Warns |
TypeScript static Object.groupBy
declare const input: string[];
Object.groupBy(input, String);
export {};
Not in Baseline 2019. Expected warning for array-group at line 2, column 8.
| ESLint | Oxlint | Bun |
|---|---|---|
| Warns | Warns | Warns |
Typed Element.checkVisibility
declare const element: Element;
element.checkVisibility();
export {};
Not in Baseline 2019. Expected warning for check-visibility at line 2, column 9.
| ESLint | Oxlint | Bun |
|---|---|---|
| Warns | Unsupported | Unsupported |
Typed Set.union
declare const values: Set<unknown>;
values.union(new Set());
export {};
Not in Baseline 2019. Expected warning for set-methods at line 2, column 8.
| ESLint | Oxlint | Bun |
|---|---|---|
| Warns | Unsupported | Unsupported |
Structural lookalike
const element = { checkVisibility() { return true; } };
element.checkVisibility();
export {};
| ESLint | Oxlint | Bun |
|---|---|---|
| No warning | Unsupported | Unsupported |
Named interface lookalike
interface Element { checkVisibility(): boolean }
declare const element: Element;
element.checkVisibility();
export {};
| ESLint | Oxlint | Bun |
|---|---|---|
| No warning | Unsupported | Unsupported |
Host API checks
| Host API | ESLint | Oxlint | Bun |
|---|---|---|---|
| Plugin options | Works | Works | Works |
| AST selectors | Works | Works | Works |
| Function scope shadowing | Works | Works | Works |
| Top-level scope binding | Works | Works | Works |
| Source text and tokens | Works | Works | Works |
| Diagnostic locations | Works | Works | Works |
| Node ancestry | Works | Works | Works |
| TypeScript receiver services | Works | Unsupported | Unsupported |
Versions, evidence, and reproduction
The latest toolchain follows host and parser releases, including Bun canary. The pinned comparison uses reviewed, exact versions. Both test the same npm release with a fixed TypeScript version within the parser's supported range.
These measurements cover the saved code, configuration, npm release, and tool versions. They do not establish full compatibility. Unknown means the observation could not be established. Run error means the check failed to run. Not measured means no usable observation is available. A false positive is a warning where none is expected.
A failed or canceled publication can leave an older result here. Copy keeps the snapshot displayed on this page. A retry can reuse completed observations from the same workflow run. Capture dates and collection identities retain their origin.
Run 10, attempt 1. Harness revision 1bb8308055fd434024347fa9eddd41d64c481e45.
Snapshot JSON · Saved inputs and lockfiles · Reproduction commands
Exact npm package, resolved .
Package integrity sha512-BACS9mwBXmtZaGzVeIlfKxjAw0KlJkZ9fBH3YYp6jKE6ZUMNkzrIwixuWnYtPEfDsD8EswCaK9FQLXKIMUuwgQ==.
Pinned execution evidence
Parser 8.71.2. TypeScript 6.0.3. Execution report · Collection identity.
- ESLint package 10.13.0, pinned channel. Executable v10.13.0.
- Oxlint package 1.88.0, pinned channel. Executable 1.88.0.
- Bun package 1.4.3-canary.20261017.1+017b243, canary channel. Executable 1.4.4-canary.1+5f5799ed1.
- TypeScript receiver services, Oxlint. Unsupported
typed parser services unavailable
- TypeScript receiver services, Bun. Unsupported
typed parser services unavailable
- Typed Element.checkVisibility, Oxlint. Unsupported
Required receiver analysis is unavailable; this case remains unverified
- Typed Element.checkVisibility, Bun. Unsupported
Required receiver analysis is unavailable; this case remains unverified
- Typed Set.union, Oxlint. Unsupported
Required receiver analysis is unavailable; this case remains unverified
- Typed Set.union, Bun. Unsupported
Required receiver analysis is unavailable; this case remains unverified
- Structural lookalike, Oxlint. Unsupported
Required receiver analysis is unavailable; this case remains unverified
- Structural lookalike, Bun. Unsupported
Required receiver analysis is unavailable; this case remains unverified
- Named interface lookalike, Oxlint. Unsupported
Required receiver analysis is unavailable; this case remains unverified
- Named interface lookalike, Bun. Unsupported
Required receiver analysis is unavailable; this case remains unverified
Latest execution evidence
Parser 8.72.1. TypeScript 6.0.3. Execution report · Collection identity.
- ESLint package 10.14.0, latest channel. Executable v10.14.0.
- Oxlint package 1.90.0, latest channel. Executable 1.90.0.
- Bun package 1.4.4-canary.20261102.1+271b65e, canary channel. Executable 1.4.4-canary.1+271b65ec6.
- TypeScript receiver services, Oxlint. Unsupported
typed parser services unavailable
- TypeScript receiver services, Bun. Unsupported
typed parser services unavailable
- Typed Element.checkVisibility, Oxlint. Unsupported
Required receiver analysis is unavailable; this case remains unverified
- Typed Element.checkVisibility, Bun. Unsupported
Required receiver analysis is unavailable; this case remains unverified
- Typed Set.union, Oxlint. Unsupported
Required receiver analysis is unavailable; this case remains unverified
- Typed Set.union, Bun. Unsupported
Required receiver analysis is unavailable; this case remains unverified
- Structural lookalike, Oxlint. Unsupported
Required receiver analysis is unavailable; this case remains unverified
- Structural lookalike, Bun. Unsupported
Required receiver analysis is unavailable; this case remains unverified
- Named interface lookalike, Oxlint. Unsupported
Required receiver analysis is unavailable; this case remains unverified
- Named interface lookalike, Bun. Unsupported
Required receiver analysis is unavailable; this case remains unverified
Last updated on