andrewbranch / interop-test

ESM-CJS interop test

Home Page:https://andrewbranch.github.io/interop-test/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ESM-CJS Interop Test

View on GitHub

This project is forked from sokra/interop-test with the following changes:

  • Many test cases / exporting modules removed
  • TypeScript file extensions tested
  • package.json "type": "module" tested
  • Every test case is tested against every importing file variant
  • Every runtime result is diffed against every other
  • Added meta-analysis to answer high-level questions
  • Added Bun, Parcel, Vite

Table of Contents

Meta-analysis

Synthesizing default exports for CJS modules

In Node, a default import of a CommonJS module always links to the module.exports object. In other words, a CJS module imported from ESM looks like [Module: null prototype] { default: (module.exports) }. This is sometimes called “synthesizing” a default export. Traditionally, bundlers and ESM-to-CJS transpilers have instead linked default imports to the module.exports.default property when there is also an exports.__esModule property (indicating that the module was transpiled from ESM). In other words, they selectively disable default export synthesis, whereas Node always enables it. This creates an inconsistency between how some imports behave in Node and how they behave in bundlers. Consequently, esbuild and Webpack adopt Node’s behavior and always synthesize default exports in files that Node would recognize as ESM—that is, files with an .mjs extension or "type": "module" in package.json. (So... they selectively disable their selective disabling of default export synthesis?)

This practice is Probably A Good Idea, but if it’s applied based on file extensions, it must be done for the equivalent TypeScript file extensions as well in order for TypeScript to reason about the behavior. My priorities are ordered as follows:

  1. Consistency between JS and TS variants
  2. Consistency between all bundlers (lol)
  3. Default export synthesis for CJS modules imported from .mjs, .mts, and "type": "module"-scoped .js and .ts files for compatibility with Node
  4. No default export synthesis for CJS modules with __esModule when imported from files that are not .mjs, .mts, or "type": "module"-scoped .js and .ts files

The following table summarizes data that can be found in the default-export-esModule.js table, and grades each bundler’s behavior against these priorities.

Legend
✅ / ❌ Satisfies / violates priority (3): Default synthesis in Node ESM files
👍 / 👎 Satisfies / violates priority (4): __esModule disables synthesis in non-Node-ESM files
An error or totally unexpected behavior prohibits analysis
💙 Satisfies priority (1): TS consistency
🌟 Perfect score
mjs js-module mts ts-module js ts Grade
bun ❌ Not synthesized ❌ Not synthesized ❌ Not synthesized ❌ Not synthesized 👍 Not synthesized 👍 Not synthesized 💙
babel ❌ Not synthesized ❌ Not synthesized ❌ Not synthesized ❌ Not synthesized 👍 Not synthesized 👍 Not synthesized 💙
webpack ✅ Synthesized ✅ Synthesized ❌ Not synthesized ❌ Not synthesized 👍 Not synthesized 👍 Not synthesized
rollup ❌ Not synthesized ❌ Not synthesized ❌ Not synthesized ❌ Not synthesized 👍 Not synthesized 👍 Not synthesized 💙
esbuild ✅ Synthesized ✅ Synthesized ✅ Synthesized ✅ Synthesized 👍 Not synthesized 👍 Not synthesized 💙 🌟
parcel ❌ Not synthesized ❌ Not synthesized ❌ Not synthesized ❌ Not synthesized 👍 Not synthesized 👍 Not synthesized 💙
vite ❌ Not synthesized ❌ Not synthesized ❌ Not synthesized ❌ Not synthesized 👍 Not synthesized 👍 Not synthesized 💙

Results by runtime

node (.mjs)

Versions:

  • node@20.3.1
node (mjs) import x

import().default
x = require()

await import() === require()
import * as x; x === await import()
default-export-esModule.js { [__esModule], default } runtime error true
default-export-esm.js

tla-esModule.js

tla-esm.js
syntax error runtime error syntax error
default-export-esm.mjs

tla-esm.mjs
'default' runtime error true
default-export.js { default } runtime error true
single-object-export.js { named } runtime error true
single-object-with-default-export.js { named, default } runtime error true

node (.js)

Versions:

  • node@20.3.1
node (js) import x

import().default

import * as x; x === await import()
x = require() await import() === require()
default-export-esModule.js syntax error { [__esModule], default } false
default-export-esm.js

tla-esModule.js

tla-esm.js
syntax error syntax error syntax error
default-export-esm.mjs

tla-esm.mjs
syntax error require(esm) not allowed require(esm) not allowed
default-export.js syntax error { default } false
single-object-export.js syntax error { named } false
single-object-with-default-export.js syntax error { named, default } false

node (.js with "type": "module")

Versions:

  • node@20.3.1
node (js-module) import x

import().default
x = require()

await import() === require()
import * as x; x === await import()
default-export-esModule.js { [__esModule], default } runtime error true
default-export-esm.js

tla-esModule.js

tla-esm.js
syntax error runtime error syntax error
default-export-esm.mjs

tla-esm.mjs
'default' runtime error true
default-export.js { default } runtime error true
single-object-export.js { named } runtime error true
single-object-with-default-export.js { named, default } runtime error true

bun (.mjs)

Versions:

  • bun@1.0.0
bun (mjs) import x import().default x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js 'default' 'default' { [__esModule], default } false true
default-export-esm.js

default-export-esm.mjs
'default' 'default' { [__esModule] } false true
default-export.js { default } { default } { default } false true
single-object-export.js { named } { named } { named } false true
single-object-with-default-export.js { named, default } { named, default } { named, default } false true
tla-esModule.js syntax error runtime error syntax error runtime error runtime error
tla-esm.js

tla-esm.mjs
'default' 'default' type error false true

bun (.js)

Versions:

  • bun@1.0.0
bun (js) import x import().default x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js 'default' 'default' { [__esModule], default } false true
default-export-esm.js

default-export-esm.mjs
'default' 'default' { [__esModule] } false true
default-export.js { default } { default } { default } false true
single-object-export.js { named } { named } { named } false true
single-object-with-default-export.js { named, default } { named, default } { named, default } false true
tla-esModule.js syntax error runtime error syntax error runtime error runtime error
tla-esm.js

tla-esm.mjs
'default' 'default' type error false true

bun (.js with "type": "module")

Versions:

  • bun@1.0.0
bun (js-module) import x import().default x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js 'default' 'default' { [__esModule], default } false true
default-export-esm.js

default-export-esm.mjs
'default' 'default' { [__esModule] } false true
default-export.js { default } { default } { default } false true
single-object-export.js { named } { named } { named } false true
single-object-with-default-export.js { named, default } { named, default } { named, default } false true
tla-esModule.js syntax error runtime error syntax error runtime error runtime error
tla-esm.js

tla-esm.mjs
'default' 'default' type error false true

bun (.mts)

Versions:

  • bun@1.0.0
bun (mts) import x import().default x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js 'default' 'default' { [__esModule], default } false true
default-export-esm.js

default-export-esm.mjs
'default' 'default' { [__esModule] } false true
default-export.js { default } { default } { default } false true
single-object-export.js { named } { named } { named } false true
single-object-with-default-export.js { named, default } { named, default } { named, default } false true
tla-esModule.js syntax error runtime error syntax error runtime error runtime error
tla-esm.js

tla-esm.mjs
'default' 'default' type error false true

bun (.ts)

Versions:

  • bun@1.0.0
bun (ts) import x import().default x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js 'default' 'default' { [__esModule], default } false true
default-export-esm.js

default-export-esm.mjs
'default' 'default' { [__esModule] } false true
default-export.js { default } { default } { default } false true
single-object-export.js { named } { named } { named } false true
single-object-with-default-export.js { named, default } { named, default } { named, default } false true
tla-esModule.js syntax error runtime error syntax error runtime error runtime error
tla-esm.js

tla-esm.mjs
'default' 'default' type error false true

bun (.ts with "type": "module")

Versions:

  • bun@1.0.0
bun (ts-module) import x import().default x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js 'default' 'default' { [__esModule], default } false true
default-export-esm.js

default-export-esm.mjs
'default' 'default' { [__esModule] } false true
default-export.js { default } { default } { default } false true
single-object-export.js { named } { named } { named } false true
single-object-with-default-export.js { named, default } { named, default } { named, default } false true
tla-esModule.js syntax error runtime error syntax error runtime error runtime error
tla-esm.js

tla-esm.mjs
'default' 'default' type error false true

babel (.mjs)

Versions:

  • @babel/cli@7.22.15
  • @babel/core@7.22.17
  • @babel/plugin-transform-modules-commonjs@7.22.15
  • babel-plugin-dynamic-import-node@2.3.3
babel (mjs) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js 'default' { [__esModule], default } true true
default-export-esm.js

default-export-esm.mjs

tla-esModule.js

tla-esm.js

tla-esm.mjs
syntax error syntax error syntax error syntax error
default-export.js { default } { default } false true
single-object-export.js { named } { named } false true
single-object-with-default-export.js { named, default } { named, default } false true

babel (.js)

Versions:

  • @babel/cli@7.22.15
  • @babel/core@7.22.17
  • @babel/plugin-transform-modules-commonjs@7.22.15
  • babel-plugin-dynamic-import-node@2.3.3
babel (js) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js 'default' { [__esModule], default } true true
default-export-esm.js

default-export-esm.mjs

tla-esModule.js

tla-esm.js

tla-esm.mjs
syntax error syntax error syntax error syntax error
default-export.js { default } { default } false true
single-object-export.js { named } { named } false true
single-object-with-default-export.js { named, default } { named, default } false true

babel (.js with "type": "module")

Versions:

  • @babel/cli@7.22.15
  • @babel/core@7.22.17
  • @babel/plugin-transform-modules-commonjs@7.22.15
  • babel-plugin-dynamic-import-node@2.3.3
babel (js-module) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js 'default' { [__esModule], default } true true
default-export-esm.js

default-export-esm.mjs

tla-esModule.js

tla-esm.js

tla-esm.mjs
syntax error syntax error syntax error syntax error
default-export.js { default } { default } false true
single-object-export.js { named } { named } false true
single-object-with-default-export.js { named, default } { named, default } false true

babel (.mts)

Versions:

  • @babel/cli@7.22.15
  • @babel/core@7.22.17
  • @babel/plugin-transform-modules-commonjs@7.22.15
  • babel-plugin-dynamic-import-node@2.3.3
babel (mts) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js 'default' { [__esModule], default } true true
default-export-esm.js

default-export-esm.mjs

tla-esModule.js

tla-esm.js

tla-esm.mjs
syntax error syntax error syntax error syntax error
default-export.js { default } { default } false true
single-object-export.js { named } { named } false true
single-object-with-default-export.js { named, default } { named, default } false true

babel (.ts)

Versions:

  • @babel/cli@7.22.15
  • @babel/core@7.22.17
  • @babel/plugin-transform-modules-commonjs@7.22.15
  • babel-plugin-dynamic-import-node@2.3.3
babel (ts) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js 'default' { [__esModule], default } true true
default-export-esm.js

default-export-esm.mjs

tla-esModule.js

tla-esm.js

tla-esm.mjs
syntax error syntax error syntax error syntax error
default-export.js { default } { default } false true
single-object-export.js { named } { named } false true
single-object-with-default-export.js { named, default } { named, default } false true

babel (.ts with "type": "module")

Versions:

  • @babel/cli@7.22.15
  • @babel/core@7.22.17
  • @babel/plugin-transform-modules-commonjs@7.22.15
  • babel-plugin-dynamic-import-node@2.3.3
babel (ts-module) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js 'default' { [__esModule], default } true true
default-export-esm.js

default-export-esm.mjs

tla-esModule.js

tla-esm.js

tla-esm.mjs
syntax error syntax error syntax error syntax error
default-export.js { default } { default } false true
single-object-export.js { named } { named } false true
single-object-with-default-export.js { named, default } { named, default } false true

webpack (.mjs)

Versions:

  • webpack@5.88.2
webpack (mjs) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js { [__esModule], default } { [__esModule], default } false false
default-export-esm.js

tla-esm.js
'default' syntax error syntax error true
default-export-esm.mjs

tla-esm.mjs
'default' require(esm) not allowed require(esm) not allowed true
default-export.js { default } { default } false false
single-object-export.js { named } { named } false false
single-object-with-default-export.js { named, default } { named, default } false false
tla-esModule.js compilation error syntax error compilation error compilation error

webpack (.js)

Versions:

  • webpack@5.88.2
webpack (js) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js 'default' { [__esModule], default } true true
default-export-esm.js

default-export-esm.mjs
'default' { [__esModule], default: [G], [Module] } true true
default-export.js { default } { default } false false
single-object-export.js { named } { named } false false
single-object-with-default-export.js { named, default } { named, default } false false
tla-esModule.js compilation error compilation error compilation error compilation error
tla-esm.js

tla-esm.mjs
'default' Promise { { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack exports)]: { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack queues)]: { [Function (anonymous)] [length]: 1, [name]: '' } } false true

webpack (.js with "type": "module")

Versions:

  • webpack@5.88.2
webpack (js-module) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js { [__esModule], default } { [__esModule], default } false false
default-export-esm.js

tla-esm.js
'default' syntax error syntax error true
default-export-esm.mjs

tla-esm.mjs
'default' require(esm) not allowed require(esm) not allowed true
default-export.js { default } { default } false false
single-object-export.js { named } { named } false false
single-object-with-default-export.js { named, default } { named, default } false false
tla-esModule.js compilation error syntax error compilation error compilation error

webpack (.mts)

Versions:

  • webpack@5.88.2
webpack (mts) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js 'default' { [__esModule], default } true true
default-export-esm.js

default-export-esm.mjs
'default' { [__esModule], default: [G], [Module] } true true
default-export.js { default } { default } false false
single-object-export.js { named } { named } false false
single-object-with-default-export.js { named, default } { named, default } false false
tla-esModule.js compilation error compilation error compilation error compilation error
tla-esm.js

tla-esm.mjs
'default' Promise { { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack exports)]: { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack queues)]: { [Function (anonymous)] [length]: 1, [name]: '' } } false true

webpack (.ts)

Versions:

  • webpack@5.88.2
webpack (ts) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js 'default' { [__esModule], default } true true
default-export-esm.js

default-export-esm.mjs
'default' { [__esModule], default: [G], [Module] } true true
default-export.js { default } { default } false false
single-object-export.js { named } { named } false false
single-object-with-default-export.js { named, default } { named, default } false false
tla-esModule.js compilation error compilation error compilation error compilation error
tla-esm.js

tla-esm.mjs
'default' Promise { { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack exports)]: { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack queues)]: { [Function (anonymous)] [length]: 1, [name]: '' } } false true

webpack (.ts with "type": "module")

Versions:

  • webpack@5.88.2
webpack (ts-module) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js 'default' { [__esModule], default } true true
default-export-esm.js

default-export-esm.mjs
'default' { [__esModule], default: [G], [Module] } true true
default-export.js { default } { default } false false
single-object-export.js { named } { named } false false
single-object-with-default-export.js { named, default } { named, default } false false
tla-esModule.js compilation error compilation error compilation error compilation error
tla-esm.js

tla-esm.mjs
'default' Promise { { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack exports)]: { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack queues)]: { [Function (anonymous)] [length]: 1, [name]: '' } } false true

rollup (.mjs)

Versions:

  • @rollup/plugin-commonjs@25.0.4
  • rollup@3.29.0
rollup (mjs) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js 'default' { [__esModule], default } false true
default-export-esm.js 'default' syntax error syntax error true
default-export-esm.mjs 'default' require(esm) not allowed require(esm) not allowed true
default-export.js { default } { default } false true
single-object-export.js { named } { named } false true
single-object-with-default-export.js { named, default } { named, default } false true
tla-esModule.js

tla-esm.js
compilation error syntax error compilation error compilation error
tla-esm.mjs compilation error require(esm) not allowed compilation error compilation error

rollup (.js)

Versions:

  • @rollup/plugin-commonjs@25.0.4
  • rollup@3.29.0
rollup (js) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js 'default' { [__esModule], default } false true
default-export-esm.js

default-export-esm.mjs
'default' { [__esModule], default: [G] } false true
default-export.js { default } { default } false true
single-object-export.js { named } { named } false true
single-object-with-default-export.js { named, default } { named, default } false true
tla-esModule.js

tla-esm.js

tla-esm.mjs
compilation error compilation error compilation error compilation error

rollup (.js with "type": "module")

Versions:

  • @rollup/plugin-commonjs@25.0.4
  • rollup@3.29.0
rollup (js-module) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js 'default' { [__esModule], default } false true
default-export-esm.js

default-export-esm.mjs
'default' { [__esModule], default: [G] } false true
default-export.js { default } { default } false true
single-object-export.js { named } { named } false true
single-object-with-default-export.js { named, default } { named, default } false true
tla-esModule.js

tla-esm.js

tla-esm.mjs
compilation error compilation error compilation error compilation error

rollup (.mts)

Versions:

  • @rollup/plugin-commonjs@25.0.4
  • @rollup/plugin-typescript@11.1.3
  • rollup@3.29.0
  • tslib@2.6.2
  • typescript@5.2.2
rollup (mts) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js 'default' { [__esModule], default } false true
default-export-esm.js 'default' syntax error syntax error true
default-export-esm.mjs 'default' require(esm) not allowed require(esm) not allowed true
default-export.js { default } { default } false true
single-object-export.js { named } { named } false true
single-object-with-default-export.js { named, default } { named, default } false true
tla-esModule.js

tla-esm.js
compilation error syntax error compilation error compilation error
tla-esm.mjs compilation error require(esm) not allowed compilation error compilation error

rollup (.ts)

Versions:

  • @rollup/plugin-commonjs@25.0.4
  • @rollup/plugin-typescript@11.1.3
  • rollup@3.29.0
  • tslib@2.6.2
  • typescript@5.2.2
rollup (ts) import x import().default x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js 'default' 'default' { [__esModule], default } false true
default-export-esm.js syntax error 'default' syntax error syntax error syntax error
default-export-esm.mjs require(esm) not allowed 'default' require(esm) not allowed require(esm) not allowed require(esm) not allowed
default-export.js { default } { default } { default } false false
single-object-export.js { named } { named } { named } false false
single-object-with-default-export.js { named, default } { named, default } { named, default } false false
tla-esModule.js

tla-esm.js
syntax error compilation error syntax error compilation error compilation error
tla-esm.mjs require(esm) not allowed compilation error require(esm) not allowed compilation error compilation error

rollup (.ts with "type": "module")

Versions:

  • @rollup/plugin-commonjs@25.0.4
  • @rollup/plugin-typescript@11.1.3
  • rollup@3.29.0
  • tslib@2.6.2
  • typescript@5.2.2
rollup (ts-module) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js 'default' { [__esModule], default } false true
default-export-esm.js 'default' syntax error syntax error true
default-export-esm.mjs 'default' require(esm) not allowed require(esm) not allowed true
default-export.js { default } { default } false true
single-object-export.js { named } { named } false true
single-object-with-default-export.js { named, default } { named, default } false true
tla-esModule.js

tla-esm.js
compilation error syntax error compilation error compilation error
tla-esm.mjs compilation error require(esm) not allowed compilation error compilation error

esbuild (.mjs)

Versions:

  • esbuild@0.19.2
esbuild (mjs) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js { [__esModule], default } { [__esModule], default } false false
default-export-esm.js

default-export-esm.mjs
'default' { [__esModule], default: [G] } false true
default-export.js { default } { default } false false
single-object-export.js { named } { named } false false
single-object-with-default-export.js { named, default } { named, default } false false
tla-esModule.js

tla-esm.js

tla-esm.mjs
compilation error compilation error compilation error compilation error

esbuild (.js)

Versions:

  • esbuild@0.19.2
esbuild (js) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js 'default' { [__esModule], default } false false
default-export-esm.js

default-export-esm.mjs
'default' { [__esModule], default: [G] } false true
default-export.js { default } { default } false false
single-object-export.js { named } { named } false false
single-object-with-default-export.js { named, default } { named, default } false false
tla-esModule.js

tla-esm.js

tla-esm.mjs
compilation error compilation error compilation error compilation error

esbuild (.js with "type": "module")

Versions:

  • esbuild@0.19.2
esbuild (js-module) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js { [__esModule], default } { [__esModule], default } false false
default-export-esm.js

default-export-esm.mjs
'default' { [__esModule], default: [G] } false true
default-export.js { default } { default } false false
single-object-export.js { named } { named } false false
single-object-with-default-export.js { named, default } { named, default } false false
tla-esModule.js

tla-esm.js

tla-esm.mjs
compilation error compilation error compilation error compilation error

esbuild (.mts)

Versions:

  • esbuild@0.19.2
esbuild (mts) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js { [__esModule], default } { [__esModule], default } false false
default-export-esm.js

default-export-esm.mjs
'default' { [__esModule], default: [G] } false true
default-export.js { default } { default } false false
single-object-export.js { named } { named } false false
single-object-with-default-export.js { named, default } { named, default } false false
tla-esModule.js

tla-esm.js

tla-esm.mjs
compilation error compilation error compilation error compilation error

esbuild (.ts)

Versions:

  • esbuild@0.19.2
esbuild (ts) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js 'default' { [__esModule], default } false false
default-export-esm.js

default-export-esm.mjs
'default' { [__esModule], default: [G] } false true
default-export.js { default } { default } false false
single-object-export.js { named } { named } false false
single-object-with-default-export.js { named, default } { named, default } false false
tla-esModule.js

tla-esm.js

tla-esm.mjs
compilation error compilation error compilation error compilation error

esbuild (.ts with "type": "module")

Versions:

  • esbuild@0.19.2
esbuild (ts-module) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js { [__esModule], default } { [__esModule], default } false false
default-export-esm.js

default-export-esm.mjs
'default' { [__esModule], default: [G] } false true
default-export.js { default } { default } false false
single-object-export.js { named } { named } false false
single-object-with-default-export.js { named, default } { named, default } false false
tla-esModule.js

tla-esm.js

tla-esm.mjs
compilation error compilation error compilation error compilation error

parcel (.mjs)

Versions:

  • @parcel/config-default@2.0.0-nightly.1314
  • @parcel/core@2.0.0-nightly.1312
parcel (mjs) import x import().default x = require() await import() === require()

import * as x; x === await import()
default-export-esModule.js

default-export-esm.js

default-export-esm.mjs
'default' 'default' { [__esModule], default } true
default-export.js { default } 'default' { default } true
single-object-export.js { named } undefined { named } true
single-object-with-default-export.js { named, default } 'default' { named, default } true
tla-esModule.js

tla-esm.js

tla-esm.mjs
syntax error syntax error syntax error syntax error

parcel (.js)

Versions:

  • @parcel/config-default@2.0.0-nightly.1314
  • @parcel/core@2.0.0-nightly.1312
parcel (js) import x import().default x = require() await import() === require()

import * as x; x === await import()
default-export-esModule.js

default-export-esm.js

default-export-esm.mjs
'default' 'default' { [__esModule], default } true
default-export.js { default } 'default' { default } true
single-object-export.js { named } undefined { named } true
single-object-with-default-export.js { named, default } 'default' { named, default } true
tla-esModule.js

tla-esm.js

tla-esm.mjs
syntax error syntax error syntax error syntax error

parcel (.js with "type": "module")

Versions:

  • @parcel/config-default@2.0.0-nightly.1314
  • @parcel/core@2.0.0-nightly.1312
parcel (js-module) import x import().default x = require() await import() === require()

import * as x; x === await import()
default-export-esModule.js

default-export-esm.js

default-export-esm.mjs
'default' 'default' { [__esModule], default } true
default-export.js { default } 'default' { default } true
single-object-export.js { named } undefined { named } true
single-object-with-default-export.js { named, default } 'default' { named, default } true
tla-esModule.js

tla-esm.js

tla-esm.mjs
syntax error syntax error syntax error syntax error

parcel (.mts)

Versions:

  • @parcel/config-default@2.0.0-nightly.1314
  • @parcel/core@2.0.0-nightly.1312
parcel (mts) import x import().default x = require() await import() === require()

import * as x; x === await import()
default-export-esModule.js

default-export-esm.js

default-export-esm.mjs
'default' 'default' { [__esModule], default } true
default-export.js { default } 'default' { default } true
single-object-export.js { named } undefined { named } true
single-object-with-default-export.js { named, default } 'default' { named, default } true
tla-esModule.js

tla-esm.js

tla-esm.mjs
syntax error syntax error syntax error syntax error

parcel (.ts)

Versions:

  • @parcel/config-default@2.0.0-nightly.1314
  • @parcel/core@2.0.0-nightly.1312
parcel (ts) import x import().default x = require() await import() === require()

import * as x; x === await import()
default-export-esModule.js

default-export-esm.js

default-export-esm.mjs
'default' 'default' { [__esModule], default } true
default-export.js { default } 'default' { default } true
single-object-export.js { named } undefined { named } true
single-object-with-default-export.js { named, default } 'default' { named, default } true
tla-esModule.js

tla-esm.js

tla-esm.mjs
syntax error syntax error syntax error syntax error

parcel (.ts with "type": "module")

Versions:

  • @parcel/config-default@2.0.0-nightly.1314
  • @parcel/core@2.0.0-nightly.1312
parcel (ts-module) import x import().default x = require() await import() === require()

import * as x; x === await import()
default-export-esModule.js

default-export-esm.js

default-export-esm.mjs
'default' 'default' { [__esModule], default } true
default-export.js { default } 'default' { default } true
single-object-export.js { named } undefined { named } true
single-object-with-default-export.js { named, default } 'default' { named, default } true
tla-esModule.js

tla-esm.js

tla-esm.mjs
syntax error syntax error syntax error syntax error

vite (.mjs)

Versions:

  • vite-plugin-externalize-deps@0.7.0
  • vite@4.4.9
vite (mjs) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js

default-export-esm.js

default-export-esm.mjs
'default' not fully bundled not fully bundled true
default-export.js { default } not fully bundled not fully bundled true
single-object-export.js { named } not fully bundled not fully bundled true
single-object-with-default-export.js { named, default } not fully bundled not fully bundled true
tla-esModule.js

tla-esm.js

tla-esm.mjs
compilation error not fully bundled compilation error compilation error

vite (.js)

Versions:

  • vite-plugin-externalize-deps@0.7.0
  • vite@4.4.9
vite (js) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js

default-export-esm.js

default-export-esm.mjs
'default' not fully bundled not fully bundled true
default-export.js { default } not fully bundled not fully bundled true
single-object-export.js { named } not fully bundled not fully bundled true
single-object-with-default-export.js { named, default } not fully bundled not fully bundled true
tla-esModule.js

tla-esm.js

tla-esm.mjs
compilation error not fully bundled compilation error compilation error

vite (.js with "type": "module")

Versions:

  • vite-plugin-externalize-deps@0.7.0
  • vite@4.4.9
vite (js-module) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js

default-export-esm.js

default-export-esm.mjs
'default' not fully bundled not fully bundled true
default-export.js { default } not fully bundled not fully bundled true
single-object-export.js { named } not fully bundled not fully bundled true
single-object-with-default-export.js { named, default } not fully bundled not fully bundled true
tla-esModule.js

tla-esm.js

tla-esm.mjs
compilation error not fully bundled compilation error compilation error

vite (.mts)

Versions:

  • vite-plugin-externalize-deps@0.7.0
  • vite@4.4.9
vite (mts) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js

default-export-esm.js

default-export-esm.mjs
'default' not fully bundled not fully bundled true
default-export.js { default } not fully bundled not fully bundled true
single-object-export.js { named } not fully bundled not fully bundled true
single-object-with-default-export.js { named, default } not fully bundled not fully bundled true
tla-esModule.js

tla-esm.js

tla-esm.mjs
compilation error not fully bundled compilation error compilation error

vite (.ts)

Versions:

  • vite-plugin-externalize-deps@0.7.0
  • vite@4.4.9
vite (ts) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js

default-export-esm.js

default-export-esm.mjs
'default' not fully bundled not fully bundled true
default-export.js { default } not fully bundled not fully bundled true
single-object-export.js { named } not fully bundled not fully bundled true
single-object-with-default-export.js { named, default } not fully bundled not fully bundled true
tla-esModule.js

tla-esm.js

tla-esm.mjs
compilation error not fully bundled compilation error compilation error

vite (.ts with "type": "module")

Versions:

  • vite-plugin-externalize-deps@0.7.0
  • vite@4.4.9
vite (ts-module) import x

import().default
x = require() await import() === require() import * as x; x === await import()
default-export-esModule.js

default-export-esm.js

default-export-esm.mjs
'default' not fully bundled not fully bundled true
default-export.js { default } not fully bundled not fully bundled true
single-object-export.js { named } not fully bundled not fully bundled true
single-object-with-default-export.js { named, default } not fully bundled not fully bundled true
tla-esModule.js

tla-esm.js

tla-esm.mjs
compilation error not fully bundled compilation error compilation error

Results by exporting module

default-export.js

exports.default = "default";
default-export.js node (mjs, js-module) node (js) bun

babel

rollup (mjs, js, js-module, mts, ts-module)
webpack

rollup (ts)

esbuild
parcel vite
import x { default } syntax error { default } { default } { default } { default }
import().default { default } syntax error { default } { default } 'default' { default }
x = require() runtime error { default } { default } { default } { default } not fully bundled
await import() === require() runtime error false false false true not fully bundled
import * as x; x === await import() true syntax error true false true true

default-export-esModule.js

Object.defineProperty(exports, "__esModule", { value: true });
exports.default = "default";
default-export-esModule.js node (mjs, js-module) node (js) bun

rollup
babel

webpack (js, mts, ts, ts-module)

parcel
webpack (mjs, js-module)

esbuild (mjs, js-module, mts, ts-module)
esbuild (js, ts) vite
import x

import().default
{ [__esModule], default } syntax error 'default' 'default' { [__esModule], default } 'default' 'default'
x = require() runtime error { [__esModule], default } { [__esModule], default } { [__esModule], default } { [__esModule], default } { [__esModule], default } not fully bundled
await import() === require() runtime error false false true false false not fully bundled
import * as x; x === await import() true syntax error true true false false true

default-export-esm.js

export default "default";
default-export-esm.js node (mjs, js-module) node (js)

babel
bun webpack (mjs, js-module)

rollup (mjs, mts, ts-module)
webpack (js, mts, ts, ts-module) rollup (js, js-module)

esbuild
rollup (ts) parcel vite
import x syntax error syntax error 'default' 'default' 'default' 'default' syntax error 'default' 'default'
import().default syntax error syntax error 'default' 'default' 'default' 'default' 'default' 'default' 'default'
x = require() runtime error syntax error { [__esModule] } syntax error { [__esModule], default: [G], [Module] } { [__esModule], default: [G] } syntax error { [__esModule], default } not fully bundled
await import() === require() runtime error syntax error false syntax error true false syntax error true not fully bundled
import * as x; x === await import() syntax error syntax error true true true true syntax error true true

default-export-esm.mjs

export default "default";
default-export-esm.mjs node (mjs, js-module) node (js) bun babel webpack (mjs, js-module)

rollup (mjs, mts, ts-module)
webpack (js, mts, ts, ts-module) rollup (js, js-module)

esbuild
rollup (ts) parcel vite
import x 'default' syntax error 'default' syntax error 'default' 'default' 'default' require(esm) not allowed 'default' 'default'
import().default 'default' syntax error 'default' syntax error 'default' 'default' 'default' 'default' 'default' 'default'
x = require() runtime error require(esm) not allowed { [__esModule] } syntax error require(esm) not allowed { [__esModule], default: [G], [Module] } { [__esModule], default: [G] } require(esm) not allowed { [__esModule], default } not fully bundled
await import() === require() runtime error require(esm) not allowed false syntax error require(esm) not allowed true false require(esm) not allowed true not fully bundled
import * as x; x === await import() true syntax error true syntax error true true true require(esm) not allowed true true

single-object-export.js

module.exports = {
  named: "named",
};
single-object-export.js node (mjs, js-module) node (js) bun

babel

rollup (mjs, js, js-module, mts, ts-module)
webpack

rollup (ts)

esbuild
parcel vite
import x { named } syntax error { named } { named } { named } { named }
import().default { named } syntax error { named } { named } undefined { named }
x = require() runtime error { named } { named } { named } { named } not fully bundled
await import() === require() runtime error false false false true not fully bundled
import * as x; x === await import() true syntax error true false true true

single-object-with-default-export.js

module.exports = {
  named: "named",
  default: "default",
};
single-object-with-default-export.js node (mjs, js-module) node (js) bun

babel

rollup (mjs, js, js-module, mts, ts-module)
webpack

rollup (ts)

esbuild
parcel vite
import x { named, default } syntax error { named, default } { named, default } { named, default } { named, default }
import().default { named, default } syntax error { named, default } { named, default } 'default' { named, default }
x = require() runtime error { named, default } { named, default } { named, default } { named, default } not fully bundled
await import() === require() runtime error false false false true not fully bundled
import * as x; x === await import() true syntax error true false true true

tla-esModule.js

Object.defineProperty(exports, "__esModule", { value: true });
await Promise.resolve();
exports.named = "named";
exports.default = "default";
tla-esModule.js node (mjs, js-module) node (js)

babel

parcel
bun webpack (mjs, js-module)

rollup (mjs, mts, ts-module)
webpack (js, mts, ts, ts-module)

rollup (js, js-module)

esbuild
rollup (ts) vite
import x syntax error syntax error syntax error compilation error compilation error syntax error compilation error
import().default

import * as x; x === await import()
syntax error syntax error runtime error compilation error compilation error compilation error compilation error
x = require() runtime error syntax error syntax error syntax error compilation error syntax error not fully bundled
await import() === require() runtime error syntax error runtime error compilation error compilation error compilation error compilation error

tla-esm.js

await Promise.resolve();
export const named = "named";
export default "default";
tla-esm.js node (mjs, js-module) node (js)

babel

parcel
bun webpack (mjs, js-module) webpack (js, mts, ts, ts-module) rollup (mjs, mts, ts-module) rollup (js, js-module)

esbuild
rollup (ts) vite
import x syntax error syntax error 'default' 'default' 'default' compilation error compilation error syntax error compilation error
import().default syntax error syntax error 'default' 'default' 'default' compilation error compilation error compilation error compilation error
x = require() runtime error syntax error type error syntax error Promise { { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack exports)]: { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack queues)]: { [Function (anonymous)] [length]: 1, [name]: '' } } syntax error compilation error syntax error not fully bundled
await import() === require() runtime error syntax error false syntax error false compilation error compilation error compilation error compilation error
import * as x; x === await import() syntax error syntax error true true true compilation error compilation error compilation error compilation error

tla-esm.mjs

await Promise.resolve();
export const named = "named";
export default "default";
tla-esm.mjs node (mjs, js-module) node (js) bun babel

parcel
webpack (mjs, js-module) webpack (js, mts, ts, ts-module) rollup (mjs, mts, ts-module) rollup (js, js-module)

esbuild
rollup (ts) vite
import x 'default' syntax error 'default' syntax error 'default' 'default' compilation error compilation error require(esm) not allowed compilation error
import().default 'default' syntax error 'default' syntax error 'default' 'default' compilation error compilation error compilation error compilation error
x = require() runtime error require(esm) not allowed type error syntax error require(esm) not allowed Promise { { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack exports)]: { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack queues)]: { [Function (anonymous)] [length]: 1, [name]: '' } } require(esm) not allowed compilation error require(esm) not allowed not fully bundled
await import() === require() runtime error require(esm) not allowed false syntax error require(esm) not allowed false compilation error compilation error compilation error compilation error
import * as x; x === await import() true syntax error true syntax error true true compilation error compilation error compilation error compilation error

Results by import test case

import x

import x node (mjs, js-module) node (js) bun babel webpack (mjs, js-module) webpack (js, mts, ts, ts-module) rollup (mjs, js, js-module, mts, ts-module)

esbuild (js, ts)

vite
rollup (ts) esbuild (mjs, js-module, mts, ts-module) parcel
default-export.js { default } syntax error { default } { default } { default } { default } { default } { default } { default } { default }
default-export-esModule.js { [__esModule], default } syntax error 'default' 'default' { [__esModule], default } 'default' 'default' 'default' { [__esModule], default } 'default'
default-export-esm.js syntax error syntax error 'default' syntax error 'default' 'default' 'default' syntax error 'default' 'default'
default-export-esm.mjs 'default' syntax error 'default' syntax error 'default' 'default' 'default' require(esm) not allowed 'default' 'default'
single-object-export.js { named } syntax error { named } { named } { named } { named } { named } { named } { named } { named }
single-object-with-default-export.js { named, default } syntax error { named, default } { named, default } { named, default } { named, default } { named, default } { named, default } { named, default } { named, default }
tla-esModule.js syntax error syntax error syntax error syntax error compilation error compilation error compilation error syntax error compilation error syntax error
tla-esm.js syntax error syntax error 'default' syntax error 'default' 'default' compilation error syntax error compilation error syntax error
tla-esm.mjs 'default' syntax error 'default' syntax error 'default' 'default' compilation error require(esm) not allowed compilation error syntax error

import().default

import().default node (mjs, js-module) node (js) bun babel webpack (mjs, js-module) webpack (js, mts, ts, ts-module) rollup

esbuild (js, ts)

vite
esbuild (mjs, js-module, mts, ts-module) parcel
default-export.js { default } syntax error { default } { default } { default } { default } { default } { default } 'default'
default-export-esModule.js { [__esModule], default } syntax error 'default' 'default' { [__esModule], default } 'default' 'default' { [__esModule], default } 'default'
default-export-esm.js syntax error syntax error 'default' syntax error 'default' 'default' 'default' 'default' 'default'
default-export-esm.mjs 'default' syntax error 'default' syntax error 'default' 'default' 'default' 'default' 'default'
single-object-export.js { named } syntax error { named } { named } { named } { named } { named } { named } undefined
single-object-with-default-export.js { named, default } syntax error { named, default } { named, default } { named, default } { named, default } { named, default } { named, default } 'default'
tla-esModule.js syntax error syntax error runtime error syntax error compilation error compilation error compilation error compilation error syntax error
tla-esm.js syntax error syntax error 'default' syntax error 'default' 'default' compilation error compilation error syntax error
tla-esm.mjs 'default' syntax error 'default' syntax error 'default' 'default' compilation error compilation error syntax error

x = require()

x = require() node (mjs, js-module) node (js)

webpack (mjs, js-module)

rollup (mjs, mts, ts, ts-module)
bun babel webpack (js, mts, ts, ts-module) rollup (js, js-module)

esbuild
parcel vite
default-export.js runtime error { default } { default } { default } { default } { default } { default } not fully bundled
default-export-esModule.js runtime error { [__esModule], default } { [__esModule], default } { [__esModule], default } { [__esModule], default } { [__esModule], default } { [__esModule], default } not fully bundled
default-export-esm.js runtime error syntax error { [__esModule] } syntax error { [__esModule], default: [G], [Module] } { [__esModule], default: [G] } { [__esModule], default } not fully bundled
default-export-esm.mjs runtime error require(esm) not allowed { [__esModule] } syntax error { [__esModule], default: [G], [Module] } { [__esModule], default: [G] } { [__esModule], default } not fully bundled
single-object-export.js runtime error { named } { named } { named } { named } { named } { named } not fully bundled
single-object-with-default-export.js runtime error { named, default } { named, default } { named, default } { named, default } { named, default } { named, default } not fully bundled
tla-esModule.js runtime error syntax error syntax error syntax error compilation error compilation error syntax error not fully bundled
tla-esm.js runtime error syntax error type error syntax error Promise { { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack exports)]: { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack queues)]: { [Function (anonymous)] [length]: 1, [name]: '' } } compilation error syntax error not fully bundled
tla-esm.mjs runtime error require(esm) not allowed type error syntax error Promise { { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack exports)]: { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack queues)]: { [Function (anonymous)] [length]: 1, [name]: '' } } compilation error syntax error not fully bundled

await import() === require()

await import() === require() node (mjs, js-module) node (js) bun babel webpack (mjs, js-module) webpack (js, mts, ts, ts-module) rollup (mjs, mts, ts, ts-module) rollup (js, js-module)

esbuild
parcel vite
default-export.js

single-object-export.js

single-object-with-default-export.js
runtime error false false false false false false false true not fully bundled
default-export-esModule.js runtime error false false true false true false false true not fully bundled
default-export-esm.js runtime error syntax error false syntax error syntax error true syntax error false true not fully bundled
default-export-esm.mjs runtime error require(esm) not allowed false syntax error require(esm) not allowed true require(esm) not allowed false true not fully bundled
tla-esModule.js runtime error syntax error runtime error syntax error compilation error compilation error compilation error compilation error syntax error compilation error
tla-esm.js runtime error syntax error false syntax error syntax error false compilation error compilation error syntax error compilation error
tla-esm.mjs runtime error require(esm) not allowed false syntax error require(esm) not allowed false compilation error compilation error syntax error compilation error

import * as x; x === await import()

import * as x; x === await import() node (mjs, js-module) node (js) bun babel webpack (mjs, js-module) webpack (js, mts, ts, ts-module) rollup (mjs, js, js-module, mts, ts-module)

vite
rollup (ts) esbuild parcel
default-export.js

single-object-export.js

single-object-with-default-export.js
true syntax error true true false false true false false true
default-export-esModule.js true syntax error true true false true true true false true
default-export-esm.js syntax error syntax error true syntax error true true true syntax error true true
default-export-esm.mjs true syntax error true syntax error true true true require(esm) not allowed true true
tla-esModule.js syntax error syntax error runtime error syntax error compilation error compilation error compilation error compilation error compilation error syntax error
tla-esm.js syntax error syntax error true syntax error true true compilation error compilation error compilation error syntax error
tla-esm.mjs true syntax error true syntax error true true compilation error compilation error compilation error syntax error

Differences

node (mjs) node (js) node (js-module) bun (mjs) bun (js) bun (js-module) bun (mts) bun (ts) bun (ts-module) babel (mjs) babel (js) babel (js-module) babel (mts) babel (ts) babel (ts-module) webpack (mjs) webpack (js) webpack (js-module) webpack (mts) webpack (ts) webpack (ts-module) rollup (mjs) rollup (js) rollup (js-module) rollup (mts) rollup (ts) rollup (ts-module) esbuild (mjs) esbuild (js) esbuild (js-module) esbuild (mts) esbuild (ts) esbuild (ts-module) parcel (mjs) parcel (js) parcel (js-module) parcel (mts) parcel (ts) parcel (ts-module) vite (mjs) vite (js) vite (js-module) vite (mts) vite (ts) vite (ts-module)
node (mjs) - ❗️ 13 ✅ identical ❗️ 12 ❗️ 12 ❗️ 12 ❗️ 12 ❗️ 12 ❗️ 12 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 13 ❗️ 14 ❗️ 13 ❗️ 14 ❗️ 14 ❗️ 14 💥 16 ❗️ 13 ❗️ 13 💥 16 💥 18 💥 16 ❗️ 13 ❗️ 14 ❗️ 13 ❗️ 13 ❗️ 14 ❗️ 13 ❗️ 14 ❗️ 14 ❗️ 14 ❗️ 14 ❗️ 14 ❗️ 14 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9
node (js) ❗️ 13 - ❗️ 13 ❗️ 12 ❗️ 12 ❗️ 12 ❗️ 12 ❗️ 12 ❗️ 12 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 8 💥 16 ⚠️ 8 💥 16 💥 16 💥 16 ⚠️ 8 ❗️ 12 ❗️ 12 ⚠️ 8 ❗️ 12 ⚠️ 8 ❗️ 14 ❗️ 13 ❗️ 14 ❗️ 14 ❗️ 13 ❗️ 14 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 💥 17 💥 17 💥 17 💥 17 💥 17 💥 17
node (js-module) ✅ identical ❗️ 13 - ❗️ 12 ❗️ 12 ❗️ 12 ❗️ 12 ❗️ 12 ❗️ 12 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 13 ❗️ 14 ❗️ 13 ❗️ 14 ❗️ 14 ❗️ 14 💥 16 ❗️ 13 ❗️ 13 💥 16 💥 18 💥 16 ❗️ 13 ❗️ 14 ❗️ 13 ❗️ 13 ❗️ 14 ❗️ 13 ❗️ 14 ❗️ 14 ❗️ 14 ❗️ 14 ❗️ 14 ❗️ 14 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9
bun (mjs) ❗️ 12 ❗️ 12 ❗️ 12 - ✅ identical ✅ identical ✅ identical ✅ identical ✅ identical ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ❗️ 10 ⚠️ 6 ❗️ 10 ⚠️ 6 ⚠️ 6 ⚠️ 6 ❗️ 11 ⚠️ 7 ⚠️ 7 ❗️ 11 💥 15 ❗️ 11 ⚠️ 9 ⚠️ 8 ⚠️ 9 ⚠️ 9 ⚠️ 8 ⚠️ 9 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13
bun (js) ❗️ 12 ❗️ 12 ❗️ 12 ✅ identical - ✅ identical ✅ identical ✅ identical ✅ identical ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ❗️ 10 ⚠️ 6 ❗️ 10 ⚠️ 6 ⚠️ 6 ⚠️ 6 ❗️ 11 ⚠️ 7 ⚠️ 7 ❗️ 11 💥 15 ❗️ 11 ⚠️ 9 ⚠️ 8 ⚠️ 9 ⚠️ 9 ⚠️ 8 ⚠️ 9 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13
bun (js-module) ❗️ 12 ❗️ 12 ❗️ 12 ✅ identical ✅ identical - ✅ identical ✅ identical ✅ identical ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ❗️ 10 ⚠️ 6 ❗️ 10 ⚠️ 6 ⚠️ 6 ⚠️ 6 ❗️ 11 ⚠️ 7 ⚠️ 7 ❗️ 11 💥 15 ❗️ 11 ⚠️ 9 ⚠️ 8 ⚠️ 9 ⚠️ 9 ⚠️ 8 ⚠️ 9 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13
bun (mts) ❗️ 12 ❗️ 12 ❗️ 12 ✅ identical ✅ identical ✅ identical - ✅ identical ✅ identical ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ❗️ 10 ⚠️ 6 ❗️ 10 ⚠️ 6 ⚠️ 6 ⚠️ 6 ❗️ 11 ⚠️ 7 ⚠️ 7 ❗️ 11 💥 15 ❗️ 11 ⚠️ 9 ⚠️ 8 ⚠️ 9 ⚠️ 9 ⚠️ 8 ⚠️ 9 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13
bun (ts) ❗️ 12 ❗️ 12 ❗️ 12 ✅ identical ✅ identical ✅ identical ✅ identical - ✅ identical ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ❗️ 10 ⚠️ 6 ❗️ 10 ⚠️ 6 ⚠️ 6 ⚠️ 6 ❗️ 11 ⚠️ 7 ⚠️ 7 ❗️ 11 💥 15 ❗️ 11 ⚠️ 9 ⚠️ 8 ⚠️ 9 ⚠️ 9 ⚠️ 8 ⚠️ 9 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13
bun (ts-module) ❗️ 12 ❗️ 12 ❗️ 12 ✅ identical ✅ identical ✅ identical ✅ identical ✅ identical - ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ❗️ 10 ⚠️ 6 ❗️ 10 ⚠️ 6 ⚠️ 6 ⚠️ 6 ❗️ 11 ⚠️ 7 ⚠️ 7 ❗️ 11 💥 15 ❗️ 11 ⚠️ 9 ⚠️ 8 ⚠️ 9 ⚠️ 9 ⚠️ 8 ⚠️ 9 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13
babel (mjs) ❗️ 10 ⚠️ 7 ❗️ 10 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 - ✅ identical ✅ identical ✅ identical ✅ identical ✅ identical ⚠️ 7 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11
babel (js) ❗️ 10 ⚠️ 7 ❗️ 10 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ✅ identical - ✅ identical ✅ identical ✅ identical ✅ identical ⚠️ 7 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11
babel (js-module) ❗️ 10 ⚠️ 7 ❗️ 10 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ✅ identical ✅ identical - ✅ identical ✅ identical ✅ identical ⚠️ 7 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11
babel (mts) ❗️ 10 ⚠️ 7 ❗️ 10 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ✅ identical ✅ identical ✅ identical - ✅ identical ✅ identical ⚠️ 7 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11
babel (ts) ❗️ 10 ⚠️ 7 ❗️ 10 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ✅ identical ✅ identical ✅ identical ✅ identical - ✅ identical ⚠️ 7 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11
babel (ts-module) ❗️ 10 ⚠️ 7 ❗️ 10 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ✅ identical ✅ identical ✅ identical ✅ identical ✅ identical - ⚠️ 7 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11
webpack (mjs) ❗️ 13 ⚠️ 8 ❗️ 13 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 - ❗️ 11 ✅ identical ❗️ 11 ❗️ 11 ❗️ 11 ⚠️ 6 ❗️ 11 ❗️ 11 ⚠️ 6 ❗️ 11 ⚠️ 6 ⚠️ 9 ❗️ 10 ⚠️ 9 ⚠️ 9 ❗️ 10 ⚠️ 9 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 💥 15 💥 15 💥 15 💥 15 💥 15 💥 15
webpack (js) ❗️ 14 💥 16 ❗️ 14 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ❗️ 11 - ❗️ 11 ✅ identical ✅ identical ✅ identical ❗️ 12 ⚠️ 7 ⚠️ 7 ❗️ 12 ❗️ 13 ❗️ 12 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 7 ⚠️ 8 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13
webpack (js-module) ❗️ 13 ⚠️ 8 ❗️ 13 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ✅ identical ❗️ 11 - ❗️ 11 ❗️ 11 ❗️ 11 ⚠️ 6 ❗️ 11 ❗️ 11 ⚠️ 6 ❗️ 11 ⚠️ 6 ⚠️ 9 ❗️ 10 ⚠️ 9 ⚠️ 9 ❗️ 10 ⚠️ 9 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 💥 15 💥 15 💥 15 💥 15 💥 15 💥 15
webpack (mts) ❗️ 14 💥 16 ❗️ 14 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ❗️ 11 ✅ identical ❗️ 11 - ✅ identical ✅ identical ❗️ 12 ⚠️ 7 ⚠️ 7 ❗️ 12 ❗️ 13 ❗️ 12 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 7 ⚠️ 8 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13
webpack (ts) ❗️ 14 💥 16 ❗️ 14 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ❗️ 11 ✅ identical ❗️ 11 ✅ identical - ✅ identical ❗️ 12 ⚠️ 7 ⚠️ 7 ❗️ 12 ❗️ 13 ❗️ 12 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 7 ⚠️ 8 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13
webpack (ts-module) ❗️ 14 💥 16 ❗️ 14 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ❗️ 11 ✅ identical ❗️ 11 ✅ identical ✅ identical - ❗️ 12 ⚠️ 7 ⚠️ 7 ❗️ 12 ❗️ 13 ❗️ 12 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 7 ⚠️ 8 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13
rollup (mjs) 💥 16 ⚠️ 8 💥 16 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ❗️ 12 ⚠️ 6 ❗️ 12 ❗️ 12 ❗️ 12 - ⚠️ 6 ⚠️ 6 ✅ identical ⚠️ 7 ✅ identical ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 7 ⚠️ 8 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9
rollup (js) ❗️ 13 ❗️ 12 ❗️ 13 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ❗️ 11 ⚠️ 7 ❗️ 11 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 6 - ✅ identical ⚠️ 6 ❗️ 11 ⚠️ 6 🤏 2 🤏 1 🤏 2 🤏 2 🤏 1 🤏 2 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7
rollup (js-module) ❗️ 13 ❗️ 12 ❗️ 13 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ❗️ 11 ⚠️ 7 ❗️ 11 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 6 ✅ identical - ⚠️ 6 ❗️ 11 ⚠️ 6 🤏 2 🤏 1 🤏 2 🤏 2 🤏 1 🤏 2 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7
rollup (mts) 💥 16 ⚠️ 8 💥 16 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ❗️ 12 ⚠️ 6 ❗️ 12 ❗️ 12 ❗️ 12 ✅ identical ⚠️ 6 ⚠️ 6 - ⚠️ 7 ✅ identical ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 7 ⚠️ 8 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9
rollup (ts) 💥 18 ❗️ 12 💥 18 💥 15 💥 15 💥 15 💥 15 💥 15 💥 15 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ❗️ 11 ❗️ 13 ❗️ 11 ❗️ 13 ❗️ 13 ❗️ 13 ⚠️ 7 ❗️ 11 ❗️ 11 ⚠️ 7 - ⚠️ 7 ❗️ 12 ❗️ 11 ❗️ 12 ❗️ 12 ❗️ 11 ❗️ 12 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 💥 16 💥 16 💥 16 💥 16 💥 16 💥 16
rollup (ts-module) 💥 16 ⚠️ 8 💥 16 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ⚠️ 6 ❗️ 12 ⚠️ 6 ❗️ 12 ❗️ 12 ❗️ 12 ✅ identical ⚠️ 6 ⚠️ 6 ✅ identical ⚠️ 7 - ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 7 ⚠️ 8 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9
esbuild (mjs) ❗️ 13 ❗️ 14 ❗️ 13 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 9 ⚠️ 8 ⚠️ 9 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 🤏 2 🤏 2 ⚠️ 8 ❗️ 12 ⚠️ 8 - 🤏 1 ✅ identical ✅ identical 🤏 1 ✅ identical ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9
esbuild (js) ❗️ 14 ❗️ 13 ❗️ 14 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ❗️ 10 ⚠️ 7 ❗️ 10 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 🤏 1 🤏 1 ⚠️ 7 ❗️ 11 ⚠️ 7 🤏 1 - 🤏 1 🤏 1 ✅ identical 🤏 1 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8
esbuild (js-module) ❗️ 13 ❗️ 14 ❗️ 13 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 9 ⚠️ 8 ⚠️ 9 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 🤏 2 🤏 2 ⚠️ 8 ❗️ 12 ⚠️ 8 ✅ identical 🤏 1 - ✅ identical 🤏 1 ✅ identical ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9
esbuild (mts) ❗️ 13 ❗️ 14 ❗️ 13 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 9 ⚠️ 8 ⚠️ 9 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 🤏 2 🤏 2 ⚠️ 8 ❗️ 12 ⚠️ 8 ✅ identical 🤏 1 ✅ identical - 🤏 1 ✅ identical ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9
esbuild (ts) ❗️ 14 ❗️ 13 ❗️ 14 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ❗️ 10 ⚠️ 7 ❗️ 10 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 🤏 1 🤏 1 ⚠️ 7 ❗️ 11 ⚠️ 7 🤏 1 ✅ identical 🤏 1 🤏 1 - 🤏 1 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8
esbuild (ts-module) ❗️ 13 ❗️ 14 ❗️ 13 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 9 ⚠️ 8 ⚠️ 9 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 🤏 2 🤏 2 ⚠️ 8 ❗️ 12 ⚠️ 8 ✅ identical 🤏 1 ✅ identical ✅ identical 🤏 1 - ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 8 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9 ⚠️ 9
parcel (mjs) ❗️ 14 ❗️ 13 ❗️ 14 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ❗️ 13 ❗️ 10 ❗️ 13 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ⚠️ 6 ⚠️ 6 ❗️ 10 ❗️ 13 ❗️ 10 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 7 ⚠️ 8 - ✅ identical ✅ identical ✅ identical ✅ identical ✅ identical ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10
parcel (js) ❗️ 14 ❗️ 13 ❗️ 14 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ❗️ 13 ❗️ 10 ❗️ 13 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ⚠️ 6 ⚠️ 6 ❗️ 10 ❗️ 13 ❗️ 10 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 7 ⚠️ 8 ✅ identical - ✅ identical ✅ identical ✅ identical ✅ identical ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10
parcel (js-module) ❗️ 14 ❗️ 13 ❗️ 14 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ❗️ 13 ❗️ 10 ❗️ 13 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ⚠️ 6 ⚠️ 6 ❗️ 10 ❗️ 13 ❗️ 10 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 7 ⚠️ 8 ✅ identical ✅ identical - ✅ identical ✅ identical ✅ identical ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10
parcel (mts) ❗️ 14 ❗️ 13 ❗️ 14 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ❗️ 13 ❗️ 10 ❗️ 13 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ⚠️ 6 ⚠️ 6 ❗️ 10 ❗️ 13 ❗️ 10 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 7 ⚠️ 8 ✅ identical ✅ identical ✅ identical - ✅ identical ✅ identical ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10
parcel (ts) ❗️ 14 ❗️ 13 ❗️ 14 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ❗️ 13 ❗️ 10 ❗️ 13 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ⚠️ 6 ⚠️ 6 ❗️ 10 ❗️ 13 ❗️ 10 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 7 ⚠️ 8 ✅ identical ✅ identical ✅ identical ✅ identical - ✅ identical ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10
parcel (ts-module) ❗️ 14 ❗️ 13 ❗️ 14 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ⚠️ 7 ❗️ 13 ❗️ 10 ❗️ 13 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ⚠️ 6 ⚠️ 6 ❗️ 10 ❗️ 13 ❗️ 10 ⚠️ 8 ⚠️ 7 ⚠️ 8 ⚠️ 8 ⚠️ 7 ⚠️ 8 ✅ identical ✅ identical ✅ identical ✅ identical ✅ identical - ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10
vite (mjs) ⚠️ 9 💥 17 ⚠️ 9 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 💥 15 ❗️ 13 💥 15 ❗️ 13 ❗️ 13 ❗️ 13 ⚠️ 9 ⚠️ 7 ⚠️ 7 ⚠️ 9 💥 16 ⚠️ 9 ⚠️ 9 ⚠️ 8 ⚠️ 9 ⚠️ 9 ⚠️ 8 ⚠️ 9 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 - ✅ identical ✅ identical ✅ identical ✅ identical ✅ identical
vite (js) ⚠️ 9 💥 17 ⚠️ 9 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 💥 15 ❗️ 13 💥 15 ❗️ 13 ❗️ 13 ❗️ 13 ⚠️ 9 ⚠️ 7 ⚠️ 7 ⚠️ 9 💥 16 ⚠️ 9 ⚠️ 9 ⚠️ 8 ⚠️ 9 ⚠️ 9 ⚠️ 8 ⚠️ 9 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ✅ identical - ✅ identical ✅ identical ✅ identical ✅ identical
vite (js-module) ⚠️ 9 💥 17 ⚠️ 9 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 💥 15 ❗️ 13 💥 15 ❗️ 13 ❗️ 13 ❗️ 13 ⚠️ 9 ⚠️ 7 ⚠️ 7 ⚠️ 9 💥 16 ⚠️ 9 ⚠️ 9 ⚠️ 8 ⚠️ 9 ⚠️ 9 ⚠️ 8 ⚠️ 9 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ✅ identical ✅ identical - ✅ identical ✅ identical ✅ identical
vite (mts) ⚠️ 9 💥 17 ⚠️ 9 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 💥 15 ❗️ 13 💥 15 ❗️ 13 ❗️ 13 ❗️ 13 ⚠️ 9 ⚠️ 7 ⚠️ 7 ⚠️ 9 💥 16 ⚠️ 9 ⚠️ 9 ⚠️ 8 ⚠️ 9 ⚠️ 9 ⚠️ 8 ⚠️ 9 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ✅ identical ✅ identical ✅ identical - ✅ identical ✅ identical
vite (ts) ⚠️ 9 💥 17 ⚠️ 9 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 💥 15 ❗️ 13 💥 15 ❗️ 13 ❗️ 13 ❗️ 13 ⚠️ 9 ⚠️ 7 ⚠️ 7 ⚠️ 9 💥 16 ⚠️ 9 ⚠️ 9 ⚠️ 8 ⚠️ 9 ⚠️ 9 ⚠️ 8 ⚠️ 9 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ✅ identical ✅ identical ✅ identical ✅ identical - ✅ identical
vite (ts-module) ⚠️ 9 💥 17 ⚠️ 9 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 13 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 ❗️ 11 💥 15 ❗️ 13 💥 15 ❗️ 13 ❗️ 13 ❗️ 13 ⚠️ 9 ⚠️ 7 ⚠️ 7 ⚠️ 9 💥 16 ⚠️ 9 ⚠️ 9 ⚠️ 8 ⚠️ 9 ⚠️ 9 ⚠️ 8 ⚠️ 9 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ❗️ 10 ✅ identical ✅ identical ✅ identical ✅ identical ✅ identical -

node (.mjs) vs. node (.js)

node (mjs) vs. node (js) fixture node (mjs) node (js)
import x

import().default
default-export.js { default } syntax error
import x

import().default
default-export-esModule.js { [__esModule], default } syntax error
import x

import().default
default-export-esm.mjs

tla-esm.mjs
'default' syntax error
import x

import().default
single-object-export.js { named } syntax error
import x

import().default
single-object-with-default-export.js { named, default } syntax error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require()

await import() === require()
default-export-esm.js

tla-esModule.js

tla-esm.js
runtime error syntax error
x = require()

await import() === require()
default-export-esm.mjs

tla-esm.mjs
runtime error require(esm) not allowed
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
await import() === require() default-export.js

default-export-esModule.js

single-object-export.js

single-object-with-default-export.js
runtime error false
import * as x; x === await import() default-export.js

default-export-esModule.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js

tla-esm.mjs
true syntax error

node (.mjs) vs. bun (.mjs)

node (mjs) vs. bun (mjs) fixture node (mjs) bun (mjs)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js

tla-esm.js
syntax error 'default'
import().default

import * as x; x === await import()
tla-esModule.js syntax error runtime error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require() default-export-esm.js

default-export-esm.mjs
runtime error { [__esModule] }
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
x = require() tla-esModule.js runtime error syntax error
x = require() tla-esm.js

tla-esm.mjs
runtime error type error
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js

tla-esm.js

tla-esm.mjs
runtime error false
import * as x; x === await import() default-export-esm.js

tla-esm.js
syntax error true

node (.mjs) vs. bun (.js)

node (mjs) vs. bun (js) fixture node (mjs) bun (js)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js

tla-esm.js
syntax error 'default'
import().default

import * as x; x === await import()
tla-esModule.js syntax error runtime error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require() default-export-esm.js

default-export-esm.mjs
runtime error { [__esModule] }
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
x = require() tla-esModule.js runtime error syntax error
x = require() tla-esm.js

tla-esm.mjs
runtime error type error
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js

tla-esm.js

tla-esm.mjs
runtime error false
import * as x; x === await import() default-export-esm.js

tla-esm.js
syntax error true

node (.mjs) vs. bun (.js with "type": "module")

node (mjs) vs. bun (js-module) fixture node (mjs) bun (js-module)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js

tla-esm.js
syntax error 'default'
import().default

import * as x; x === await import()
tla-esModule.js syntax error runtime error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require() default-export-esm.js

default-export-esm.mjs
runtime error { [__esModule] }
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
x = require() tla-esModule.js runtime error syntax error
x = require() tla-esm.js

tla-esm.mjs
runtime error type error
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js

tla-esm.js

tla-esm.mjs
runtime error false
import * as x; x === await import() default-export-esm.js

tla-esm.js
syntax error true

node (.mjs) vs. bun (.mts)

node (mjs) vs. bun (mts) fixture node (mjs) bun (mts)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js

tla-esm.js
syntax error 'default'
import().default

import * as x; x === await import()
tla-esModule.js syntax error runtime error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require() default-export-esm.js

default-export-esm.mjs
runtime error { [__esModule] }
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
x = require() tla-esModule.js runtime error syntax error
x = require() tla-esm.js

tla-esm.mjs
runtime error type error
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js

tla-esm.js

tla-esm.mjs
runtime error false
import * as x; x === await import() default-export-esm.js

tla-esm.js
syntax error true

node (.mjs) vs. bun (.ts)

node (mjs) vs. bun (ts) fixture node (mjs) bun (ts)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js

tla-esm.js
syntax error 'default'
import().default

import * as x; x === await import()
tla-esModule.js syntax error runtime error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require() default-export-esm.js

default-export-esm.mjs
runtime error { [__esModule] }
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
x = require() tla-esModule.js runtime error syntax error
x = require() tla-esm.js

tla-esm.mjs
runtime error type error
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js

tla-esm.js

tla-esm.mjs
runtime error false
import * as x; x === await import() default-export-esm.js

tla-esm.js
syntax error true

node (.mjs) vs. bun (.ts with "type": "module")

node (mjs) vs. bun (ts-module) fixture node (mjs) bun (ts-module)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js

tla-esm.js
syntax error 'default'
import().default

import * as x; x === await import()
tla-esModule.js syntax error runtime error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require() default-export-esm.js

default-export-esm.mjs
runtime error { [__esModule] }
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
x = require() tla-esModule.js runtime error syntax error
x = require() tla-esm.js

tla-esm.mjs
runtime error type error
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js

tla-esm.js

tla-esm.mjs
runtime error false
import * as x; x === await import() default-export-esm.js

tla-esm.js
syntax error true

node (.mjs) vs. babel (.mjs)

node (mjs) vs. babel (mjs) fixture node (mjs) babel (mjs)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.mjs

tla-esm.mjs
'default' syntax error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require()

await import() === require()
default-export-esm.js

default-export-esm.mjs

tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error syntax error
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
await import() === require() default-export.js

single-object-export.js

single-object-with-default-export.js
runtime error false
await import() === require() default-export-esModule.js runtime error true
import * as x; x === await import() default-export-esm.mjs

tla-esm.mjs
true syntax error

node (.mjs) vs. babel (.js)

node (mjs) vs. babel (js) fixture node (mjs) babel (js)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.mjs

tla-esm.mjs
'default' syntax error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require()

await import() === require()
default-export-esm.js

default-export-esm.mjs

tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error syntax error
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
await import() === require() default-export.js

single-object-export.js

single-object-with-default-export.js
runtime error false
await import() === require() default-export-esModule.js runtime error true
import * as x; x === await import() default-export-esm.mjs

tla-esm.mjs
true syntax error

node (.mjs) vs. babel (.js with "type": "module")

node (mjs) vs. babel (js-module) fixture node (mjs) babel (js-module)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.mjs

tla-esm.mjs
'default' syntax error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require()

await import() === require()
default-export-esm.js

default-export-esm.mjs

tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error syntax error
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
await import() === require() default-export.js

single-object-export.js

single-object-with-default-export.js
runtime error false
await import() === require() default-export-esModule.js runtime error true
import * as x; x === await import() default-export-esm.mjs

tla-esm.mjs
true syntax error

node (.mjs) vs. babel (.mts)

node (mjs) vs. babel (mts) fixture node (mjs) babel (mts)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.mjs

tla-esm.mjs
'default' syntax error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require()

await import() === require()
default-export-esm.js

default-export-esm.mjs

tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error syntax error
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
await import() === require() default-export.js

single-object-export.js

single-object-with-default-export.js
runtime error false
await import() === require() default-export-esModule.js runtime error true
import * as x; x === await import() default-export-esm.mjs

tla-esm.mjs
true syntax error

node (.mjs) vs. babel (.ts)

node (mjs) vs. babel (ts) fixture node (mjs) babel (ts)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.mjs

tla-esm.mjs
'default' syntax error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require()

await import() === require()
default-export-esm.js

default-export-esm.mjs

tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error syntax error
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
await import() === require() default-export.js

single-object-export.js

single-object-with-default-export.js
runtime error false
await import() === require() default-export-esModule.js runtime error true
import * as x; x === await import() default-export-esm.mjs

tla-esm.mjs
true syntax error

node (.mjs) vs. babel (.ts with "type": "module")

node (mjs) vs. babel (ts-module) fixture node (mjs) babel (ts-module)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.mjs

tla-esm.mjs
'default' syntax error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require()

await import() === require()
default-export-esm.js

default-export-esm.mjs

tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error syntax error
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
await import() === require() default-export.js

single-object-export.js

single-object-with-default-export.js
runtime error false
await import() === require() default-export-esModule.js runtime error true
import * as x; x === await import() default-export-esm.mjs

tla-esm.mjs
true syntax error

node (.mjs) vs. webpack (.mjs)

node (mjs) vs. webpack (mjs) fixture node (mjs) webpack (mjs)
import x

import().default
default-export-esm.js

tla-esm.js
syntax error 'default'
import x

import().default

import * as x; x === await import()
tla-esModule.js syntax error compilation error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require() default-export-esm.js

tla-esModule.js

tla-esm.js
runtime error syntax error
x = require()

await import() === require()
default-export-esm.mjs

tla-esm.mjs
runtime error require(esm) not allowed
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
await import() === require() default-export.js

default-export-esModule.js

single-object-export.js

single-object-with-default-export.js
runtime error false
await import() === require() default-export-esm.js

tla-esm.js
runtime error syntax error
await import() === require() tla-esModule.js runtime error compilation error
import * as x; x === await import() default-export.js

default-export-esModule.js

single-object-export.js

single-object-with-default-export.js
true false
import * as x; x === await import() default-export-esm.js

tla-esm.js
syntax error true

node (.mjs) vs. webpack (.js)

node (mjs) vs. webpack (js) fixture node (mjs) webpack (js)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js

tla-esm.js
syntax error 'default'
import x

import().default

import * as x; x === await import()
tla-esModule.js syntax error compilation error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require() default-export-esm.js

default-export-esm.mjs
runtime error { [__esModule], default: [G], [Module] }
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
x = require()

await import() === require()
tla-esModule.js runtime error compilation error
x = require() tla-esm.js

tla-esm.mjs
runtime error Promise { { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack exports)]: { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack queues)]: { [Function (anonymous)] [length]: 1, [name]: '' } }
await import() === require() default-export.js

single-object-export.js

single-object-with-default-export.js

tla-esm.js

tla-esm.mjs
runtime error false
await import() === require() default-export-esModule.js

default-export-esm.js

default-export-esm.mjs
runtime error true
import * as x; x === await import() default-export.js

single-object-export.js

single-object-with-default-export.js
true false
import * as x; x === await import() default-export-esm.js

tla-esm.js
syntax error true

node (.mjs) vs. webpack (.js with "type": "module")

node (mjs) vs. webpack (js-module) fixture node (mjs) webpack (js-module)
import x

import().default
default-export-esm.js

tla-esm.js
syntax error 'default'
import x

import().default

import * as x; x === await import()
tla-esModule.js syntax error compilation error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require() default-export-esm.js

tla-esModule.js

tla-esm.js
runtime error syntax error
x = require()

await import() === require()
default-export-esm.mjs

tla-esm.mjs
runtime error require(esm) not allowed
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
await import() === require() default-export.js

default-export-esModule.js

single-object-export.js

single-object-with-default-export.js
runtime error false
await import() === require() default-export-esm.js

tla-esm.js
runtime error syntax error
await import() === require() tla-esModule.js runtime error compilation error
import * as x; x === await import() default-export.js

default-export-esModule.js

single-object-export.js

single-object-with-default-export.js
true false
import * as x; x === await import() default-export-esm.js

tla-esm.js
syntax error true

node (.mjs) vs. webpack (.mts)

node (mjs) vs. webpack (mts) fixture node (mjs) webpack (mts)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js

tla-esm.js
syntax error 'default'
import x

import().default

import * as x; x === await import()
tla-esModule.js syntax error compilation error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require() default-export-esm.js

default-export-esm.mjs
runtime error { [__esModule], default: [G], [Module] }
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
x = require()

await import() === require()
tla-esModule.js runtime error compilation error
x = require() tla-esm.js

tla-esm.mjs
runtime error Promise { { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack exports)]: { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack queues)]: { [Function (anonymous)] [length]: 1, [name]: '' } }
await import() === require() default-export.js

single-object-export.js

single-object-with-default-export.js

tla-esm.js

tla-esm.mjs
runtime error false
await import() === require() default-export-esModule.js

default-export-esm.js

default-export-esm.mjs
runtime error true
import * as x; x === await import() default-export.js

single-object-export.js

single-object-with-default-export.js
true false
import * as x; x === await import() default-export-esm.js

tla-esm.js
syntax error true

node (.mjs) vs. webpack (.ts)

node (mjs) vs. webpack (ts) fixture node (mjs) webpack (ts)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js

tla-esm.js
syntax error 'default'
import x

import().default

import * as x; x === await import()
tla-esModule.js syntax error compilation error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require() default-export-esm.js

default-export-esm.mjs
runtime error { [__esModule], default: [G], [Module] }
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
x = require()

await import() === require()
tla-esModule.js runtime error compilation error
x = require() tla-esm.js

tla-esm.mjs
runtime error Promise { { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack exports)]: { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack queues)]: { [Function (anonymous)] [length]: 1, [name]: '' } }
await import() === require() default-export.js

single-object-export.js

single-object-with-default-export.js

tla-esm.js

tla-esm.mjs
runtime error false
await import() === require() default-export-esModule.js

default-export-esm.js

default-export-esm.mjs
runtime error true
import * as x; x === await import() default-export.js

single-object-export.js

single-object-with-default-export.js
true false
import * as x; x === await import() default-export-esm.js

tla-esm.js
syntax error true

node (.mjs) vs. webpack (.ts with "type": "module")

node (mjs) vs. webpack (ts-module) fixture node (mjs) webpack (ts-module)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js

tla-esm.js
syntax error 'default'
import x

import().default

import * as x; x === await import()
tla-esModule.js syntax error compilation error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require() default-export-esm.js

default-export-esm.mjs
runtime error { [__esModule], default: [G], [Module] }
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
x = require()

await import() === require()
tla-esModule.js runtime error compilation error
x = require() tla-esm.js

tla-esm.mjs
runtime error Promise { { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack exports)]: { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack queues)]: { [Function (anonymous)] [length]: 1, [name]: '' } }
await import() === require() default-export.js

single-object-export.js

single-object-with-default-export.js

tla-esm.js

tla-esm.mjs
runtime error false
await import() === require() default-export-esModule.js

default-export-esm.js

default-export-esm.mjs
runtime error true
import * as x; x === await import() default-export.js

single-object-export.js

single-object-with-default-export.js
true false
import * as x; x === await import() default-export-esm.js

tla-esm.js
syntax error true

node (.mjs) vs. rollup (.mjs)

node (mjs) vs. rollup (mjs) fixture node (mjs) rollup (mjs)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js syntax error 'default'
import x

import().default

import * as x; x === await import()
tla-esModule.js

tla-esm.js
syntax error compilation error
import x

import().default
tla-esm.mjs 'default' compilation error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require() default-export-esm.js

tla-esModule.js

tla-esm.js
runtime error syntax error
x = require() default-export-esm.mjs

tla-esm.mjs
runtime error require(esm) not allowed
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
await import() === require() default-export.js

default-export-esModule.js

single-object-export.js

single-object-with-default-export.js
runtime error false
await import() === require() default-export-esm.js runtime error syntax error
await import() === require() default-export-esm.mjs runtime error require(esm) not allowed
await import() === require() tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error compilation error
import * as x; x === await import() default-export-esm.js syntax error true
import * as x; x === await import() tla-esm.mjs true compilation error

node (.mjs) vs. rollup (.js)

node (mjs) vs. rollup (js) fixture node (mjs) rollup (js)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js syntax error 'default'
import x

import().default

import * as x; x === await import()
tla-esModule.js

tla-esm.js
syntax error compilation error
import x

import().default
tla-esm.mjs 'default' compilation error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require() default-export-esm.js

default-export-esm.mjs
runtime error { [__esModule], default: [G] }
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
x = require()

await import() === require()
tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error compilation error
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js
runtime error false
import * as x; x === await import() default-export-esm.js syntax error true
import * as x; x === await import() tla-esm.mjs true compilation error

node (.mjs) vs. rollup (.js with "type": "module")

node (mjs) vs. rollup (js-module) fixture node (mjs) rollup (js-module)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js syntax error 'default'
import x

import().default

import * as x; x === await import()
tla-esModule.js

tla-esm.js
syntax error compilation error
import x

import().default
tla-esm.mjs 'default' compilation error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require() default-export-esm.js

default-export-esm.mjs
runtime error { [__esModule], default: [G] }
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
x = require()

await import() === require()
tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error compilation error
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js
runtime error false
import * as x; x === await import() default-export-esm.js syntax error true
import * as x; x === await import() tla-esm.mjs true compilation error

node (.mjs) vs. rollup (.mts)

node (mjs) vs. rollup (mts) fixture node (mjs) rollup (mts)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js syntax error 'default'
import x

import().default

import * as x; x === await import()
tla-esModule.js

tla-esm.js
syntax error compilation error
import x

import().default
tla-esm.mjs 'default' compilation error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require() default-export-esm.js

tla-esModule.js

tla-esm.js
runtime error syntax error
x = require() default-export-esm.mjs

tla-esm.mjs
runtime error require(esm) not allowed
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
await import() === require() default-export.js

default-export-esModule.js

single-object-export.js

single-object-with-default-export.js
runtime error false
await import() === require() default-export-esm.js runtime error syntax error
await import() === require() default-export-esm.mjs runtime error require(esm) not allowed
await import() === require() tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error compilation error
import * as x; x === await import() default-export-esm.js syntax error true
import * as x; x === await import() tla-esm.mjs true compilation error

node (.mjs) vs. rollup (.ts)

node (mjs) vs. rollup (ts) fixture node (mjs) rollup (ts)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x default-export-esm.mjs

tla-esm.mjs
'default' require(esm) not allowed
import().default default-export-esm.js syntax error 'default'
import().default

import * as x; x === await import()
tla-esModule.js

tla-esm.js
syntax error compilation error
import().default tla-esm.mjs 'default' compilation error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require() default-export-esm.js

tla-esModule.js

tla-esm.js
runtime error syntax error
x = require() default-export-esm.mjs

tla-esm.mjs
runtime error require(esm) not allowed
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
await import() === require() default-export.js

default-export-esModule.js

single-object-export.js

single-object-with-default-export.js
runtime error false
await import() === require() default-export-esm.js runtime error syntax error
await import() === require() default-export-esm.mjs runtime error require(esm) not allowed
await import() === require() tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error compilation error
import * as x; x === await import() default-export.js

single-object-export.js

single-object-with-default-export.js
true false
import * as x; x === await import() default-export-esm.mjs true require(esm) not allowed
import * as x; x === await import() tla-esm.mjs true compilation error

node (.mjs) vs. rollup (.ts with "type": "module")

node (mjs) vs. rollup (ts-module) fixture node (mjs) rollup (ts-module)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js syntax error 'default'
import x

import().default

import * as x; x === await import()
tla-esModule.js

tla-esm.js
syntax error compilation error
import x

import().default
tla-esm.mjs 'default' compilation error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require() default-export-esm.js

tla-esModule.js

tla-esm.js
runtime error syntax error
x = require() default-export-esm.mjs

tla-esm.mjs
runtime error require(esm) not allowed
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
await import() === require() default-export.js

default-export-esModule.js

single-object-export.js

single-object-with-default-export.js
runtime error false
await import() === require() default-export-esm.js runtime error syntax error
await import() === require() default-export-esm.mjs runtime error require(esm) not allowed
await import() === require() tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error compilation error
import * as x; x === await import() default-export-esm.js syntax error true
import * as x; x === await import() tla-esm.mjs true compilation error

node (.mjs) vs. esbuild (.mjs)

node (mjs) vs. esbuild (mjs) fixture node (mjs) esbuild (mjs)
import x

import().default
default-export-esm.js syntax error 'default'
import x

import().default

import * as x; x === await import()
tla-esModule.js

tla-esm.js
syntax error compilation error
import x

import().default
tla-esm.mjs 'default' compilation error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require() default-export-esm.js

default-export-esm.mjs
runtime error { [__esModule], default: [G] }
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
x = require()

await import() === require()
tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error compilation error
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js
runtime error false
import * as x; x === await import() default-export.js

default-export-esModule.js

single-object-export.js

single-object-with-default-export.js
true false
import * as x; x === await import() default-export-esm.js syntax error true
import * as x; x === await import() tla-esm.mjs true compilation error

node (.mjs) vs. esbuild (.js)

node (mjs) vs. esbuild (js) fixture node (mjs) esbuild (js)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js syntax error 'default'
import x

import().default

import * as x; x === await import()
tla-esModule.js

tla-esm.js
syntax error compilation error
import x

import().default
tla-esm.mjs 'default' compilation error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require() default-export-esm.js

default-export-esm.mjs
runtime error { [__esModule], default: [G] }
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
x = require()

await import() === require()
tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error compilation error
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js
runtime error false
import * as x; x === await import() default-export.js

default-export-esModule.js

single-object-export.js

single-object-with-default-export.js
true false
import * as x; x === await import() default-export-esm.js syntax error true
import * as x; x === await import() tla-esm.mjs true compilation error

node (.mjs) vs. esbuild (.js with "type": "module")

node (mjs) vs. esbuild (js-module) fixture node (mjs) esbuild (js-module)
import x

import().default
default-export-esm.js syntax error 'default'
import x

import().default

import * as x; x === await import()
tla-esModule.js

tla-esm.js
syntax error compilation error
import x

import().default
tla-esm.mjs 'default' compilation error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require() default-export-esm.js

default-export-esm.mjs
runtime error { [__esModule], default: [G] }
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
x = require()

await import() === require()
tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error compilation error
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js
runtime error false
import * as x; x === await import() default-export.js

default-export-esModule.js

single-object-export.js

single-object-with-default-export.js
true false
import * as x; x === await import() default-export-esm.js syntax error true
import * as x; x === await import() tla-esm.mjs true compilation error

node (.mjs) vs. esbuild (.mts)

node (mjs) vs. esbuild (mts) fixture node (mjs) esbuild (mts)
import x

import().default
default-export-esm.js syntax error 'default'
import x

import().default

import * as x; x === await import()
tla-esModule.js

tla-esm.js
syntax error compilation error
import x

import().default
tla-esm.mjs 'default' compilation error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require() default-export-esm.js

default-export-esm.mjs
runtime error { [__esModule], default: [G] }
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
x = require()

await import() === require()
tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error compilation error
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js
runtime error false
import * as x; x === await import() default-export.js

default-export-esModule.js

single-object-export.js

single-object-with-default-export.js
true false
import * as x; x === await import() default-export-esm.js syntax error true
import * as x; x === await import() tla-esm.mjs true compilation error

node (.mjs) vs. esbuild (.ts)

node (mjs) vs. esbuild (ts) fixture node (mjs) esbuild (ts)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js syntax error 'default'
import x

import().default

import * as x; x === await import()
tla-esModule.js

tla-esm.js
syntax error compilation error
import x

import().default
tla-esm.mjs 'default' compilation error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require() default-export-esm.js

default-export-esm.mjs
runtime error { [__esModule], default: [G] }
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
x = require()

await import() === require()
tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error compilation error
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js
runtime error false
import * as x; x === await import() default-export.js

default-export-esModule.js

single-object-export.js

single-object-with-default-export.js
true false
import * as x; x === await import() default-export-esm.js syntax error true
import * as x; x === await import() tla-esm.mjs true compilation error

node (.mjs) vs. esbuild (.ts with "type": "module")

node (mjs) vs. esbuild (ts-module) fixture node (mjs) esbuild (ts-module)
import x

import().default
default-export-esm.js syntax error 'default'
import x

import().default

import * as x; x === await import()
tla-esModule.js

tla-esm.js
syntax error compilation error
import x

import().default
tla-esm.mjs 'default' compilation error
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js runtime error { [__esModule], default }
x = require() default-export-esm.js

default-export-esm.mjs
runtime error { [__esModule], default: [G] }
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
x = require()

await import() === require()
tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error compilation error
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js
runtime error false
import * as x; x === await import() default-export.js

default-export-esModule.js

single-object-export.js

single-object-with-default-export.js
true false
import * as x; x === await import() default-export-esm.js syntax error true
import * as x; x === await import() tla-esm.mjs true compilation error

node (.mjs) vs. parcel (.mjs)

node (mjs) vs. parcel (mjs) fixture node (mjs) parcel (mjs)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js syntax error 'default'
import x

import().default
tla-esm.mjs 'default' syntax error
import().default default-export.js { default } 'default'
import().default single-object-export.js { named } undefined
import().default single-object-with-default-export.js { named, default } 'default'
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js

default-export-esm.js

default-export-esm.mjs
runtime error { [__esModule], default }
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
x = require()

await import() === require()
tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error syntax error
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js
runtime error true
import * as x; x === await import() default-export-esm.js syntax error true
import * as x; x === await import() tla-esm.mjs true syntax error

node (.mjs) vs. parcel (.js)

node (mjs) vs. parcel (js) fixture node (mjs) parcel (js)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js syntax error 'default'
import x

import().default
tla-esm.mjs 'default' syntax error
import().default default-export.js { default } 'default'
import().default single-object-export.js { named } undefined
import().default single-object-with-default-export.js { named, default } 'default'
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js

default-export-esm.js

default-export-esm.mjs
runtime error { [__esModule], default }
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
x = require()

await import() === require()
tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error syntax error
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js
runtime error true
import * as x; x === await import() default-export-esm.js syntax error true
import * as x; x === await import() tla-esm.mjs true syntax error

node (.mjs) vs. parcel (.js with "type": "module")

node (mjs) vs. parcel (js-module) fixture node (mjs) parcel (js-module)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js syntax error 'default'
import x

import().default
tla-esm.mjs 'default' syntax error
import().default default-export.js { default } 'default'
import().default single-object-export.js { named } undefined
import().default single-object-with-default-export.js { named, default } 'default'
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js

default-export-esm.js

default-export-esm.mjs
runtime error { [__esModule], default }
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
x = require()

await import() === require()
tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error syntax error
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js
runtime error true
import * as x; x === await import() default-export-esm.js syntax error true
import * as x; x === await import() tla-esm.mjs true syntax error

node (.mjs) vs. parcel (.mts)

node (mjs) vs. parcel (mts) fixture node (mjs) parcel (mts)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js syntax error 'default'
import x

import().default
tla-esm.mjs 'default' syntax error
import().default default-export.js { default } 'default'
import().default single-object-export.js { named } undefined
import().default single-object-with-default-export.js { named, default } 'default'
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js

default-export-esm.js

default-export-esm.mjs
runtime error { [__esModule], default }
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
x = require()

await import() === require()
tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error syntax error
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js
runtime error true
import * as x; x === await import() default-export-esm.js syntax error true
import * as x; x === await import() tla-esm.mjs true syntax error

node (.mjs) vs. parcel (.ts)

node (mjs) vs. parcel (ts) fixture node (mjs) parcel (ts)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js syntax error 'default'
import x

import().default
tla-esm.mjs 'default' syntax error
import().default default-export.js { default } 'default'
import().default single-object-export.js { named } undefined
import().default single-object-with-default-export.js { named, default } 'default'
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js

default-export-esm.js

default-export-esm.mjs
runtime error { [__esModule], default }
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
x = require()

await import() === require()
tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error syntax error
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js
runtime error true
import * as x; x === await import() default-export-esm.js syntax error true
import * as x; x === await import() tla-esm.mjs true syntax error

node (.mjs) vs. parcel (.ts with "type": "module")

node (mjs) vs. parcel (ts-module) fixture node (mjs) parcel (ts-module)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js syntax error 'default'
import x

import().default
tla-esm.mjs 'default' syntax error
import().default default-export.js { default } 'default'
import().default single-object-export.js { named } undefined
import().default single-object-with-default-export.js { named, default } 'default'
x = require() default-export.js runtime error { default }
x = require() default-export-esModule.js

default-export-esm.js

default-export-esm.mjs
runtime error { [__esModule], default }
x = require() single-object-export.js runtime error { named }
x = require() single-object-with-default-export.js runtime error { named, default }
x = require()

await import() === require()
tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error syntax error
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js
runtime error true
import * as x; x === await import() default-export-esm.js syntax error true
import * as x; x === await import() tla-esm.mjs true syntax error

node (.mjs) vs. vite (.mjs)

node (mjs) vs. vite (mjs) fixture node (mjs) vite (mjs)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js syntax error 'default'
import x

import().default

import * as x; x === await import()
tla-esModule.js

tla-esm.js
syntax error compilation error
import x

import().default
tla-esm.mjs 'default' compilation error
x = require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js

tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error not fully bundled
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js
runtime error not fully bundled
await import() === require() tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error compilation error
import * as x; x === await import() default-export-esm.js syntax error true
import * as x; x === await import() tla-esm.mjs true compilation error

node (.mjs) vs. vite (.js)

node (mjs) vs. vite (js) fixture node (mjs) vite (js)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js syntax error 'default'
import x

import().default

import * as x; x === await import()
tla-esModule.js

tla-esm.js
syntax error compilation error
import x

import().default
tla-esm.mjs 'default' compilation error
x = require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js

tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error not fully bundled
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js
runtime error not fully bundled
await import() === require() tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error compilation error
import * as x; x === await import() default-export-esm.js syntax error true
import * as x; x === await import() tla-esm.mjs true compilation error

node (.mjs) vs. vite (.js with "type": "module")

node (mjs) vs. vite (js-module) fixture node (mjs) vite (js-module)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js syntax error 'default'
import x

import().default

import * as x; x === await import()
tla-esModule.js

tla-esm.js
syntax error compilation error
import x

import().default
tla-esm.mjs 'default' compilation error
x = require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js

tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error not fully bundled
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js
runtime error not fully bundled
await import() === require() tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error compilation error
import * as x; x === await import() default-export-esm.js syntax error true
import * as x; x === await import() tla-esm.mjs true compilation error

node (.mjs) vs. vite (.mts)

node (mjs) vs. vite (mts) fixture node (mjs) vite (mts)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js syntax error 'default'
import x

import().default

import * as x; x === await import()
tla-esModule.js

tla-esm.js
syntax error compilation error
import x

import().default
tla-esm.mjs 'default' compilation error
x = require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js

tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error not fully bundled
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js
runtime error not fully bundled
await import() === require() tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error compilation error
import * as x; x === await import() default-export-esm.js syntax error true
import * as x; x === await import() tla-esm.mjs true compilation error

node (.mjs) vs. vite (.ts)

node (mjs) vs. vite (ts) fixture node (mjs) vite (ts)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js syntax error 'default'
import x

import().default

import * as x; x === await import()
tla-esModule.js

tla-esm.js
syntax error compilation error
import x

import().default
tla-esm.mjs 'default' compilation error
x = require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js

tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error not fully bundled
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js
runtime error not fully bundled
await import() === require() tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error compilation error
import * as x; x === await import() default-export-esm.js syntax error true
import * as x; x === await import() tla-esm.mjs true compilation error

node (.mjs) vs. vite (.ts with "type": "module")

node (mjs) vs. vite (ts-module) fixture node (mjs) vite (ts-module)
import x

import().default
default-export-esModule.js { [__esModule], default } 'default'
import x

import().default
default-export-esm.js syntax error 'default'
import x

import().default

import * as x; x === await import()
tla-esModule.js

tla-esm.js
syntax error compilation error
import x

import().default
tla-esm.mjs 'default' compilation error
x = require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js

tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error not fully bundled
await import() === require() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js
runtime error not fully bundled
await import() === require() tla-esModule.js

tla-esm.js

tla-esm.mjs
runtime error compilation error
import * as x; x === await import() default-export-esm.js syntax error true
import * as x; x === await import() tla-esm.mjs true compilation error

node (.js) vs. node (.js with "type": "module")

node (js) vs. node (js-module) fixture node (js) node (js-module)
import x

import().default
default-export.js syntax error { default }
import x

import().default
default-export-esModule.js syntax error { [__esModule], default }
import x

import().default
default-export-esm.mjs

tla-esm.mjs
syntax error 'default'
import x

import().default
single-object-export.js syntax error { named }
import x

import().default
single-object-with-default-export.js syntax error { named, default }
x = require() default-export.js { default } runtime error
x = require() default-export-esModule.js { [__esModule], default } runtime error
x = require()

await import() === require()
default-export-esm.js

tla-esModule.js

tla-esm.js
syntax error runtime error
x = require()

await import() === require()
default-export-esm.mjs

tla-esm.mjs
require(esm) not allowed runtime error
x = require() single-object-export.js { named } runtime error
x = require() single-object-with-default-export.js { named, default } runtime error
await import() === require() default-export.js

default-export-esModule.js

single-object-export.js

single-object-with-default-export.js
false runtime error
import * as x; x === await import() default-export.js

default-export-esModule.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js

tla-esm.mjs
syntax error true

node (.js) vs. bun (.mjs)

node (js) vs. bun (mjs) fixture node (js) bun (mjs)
import x

import().default
default-export.js syntax error { default }
import x

import().default
default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

tla-esm.js

tla-esm.mjs
syntax error 'default'
import x

import().default
single-object-export.js syntax error { named }
import x

import().default
single-object-with-default-export.js syntax error { named, default }
import().default

await import() === require()

import * as x; x === await import()
tla-esModule.js syntax error runtime error
x = require() default-export-esm.js syntax error { [__esModule] }
x = require() default-export-esm.mjs require(esm) not allowed { [__esModule] }
x = require() tla-esm.js syntax error type error
x = require() tla-esm.mjs require(esm) not allowed type error
await import() === require() default-export-esm.js

tla-esm.js
syntax error false
await import() === require() default-export-esm.mjs

tla-esm.mjs
require(esm) not allowed false
import * as x; x === await import() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js

tla-esm.js

tla-esm.mjs
syntax error true

node (.js) vs. bun (.js)

node (js) vs. bun (js) fixture node (js) bun (js)
import x

import().default
default-export.js syntax error { default }
import x

import().default
default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

tla-esm.js

tla-esm.mjs
syntax error 'default'
import x

import().default
single-object-export.js syntax error { named }
import x

import().default
single-object-with-default-export.js syntax error { named, default }
import().default

await import() === require()

import * as x; x === await import()
tla-esModule.js syntax error runtime error
x = require() default-export-esm.js syntax error { [__esModule] }
x = require() default-export-esm.mjs require(esm) not allowed { [__esModule] }
x = require() tla-esm.js syntax error type error
x = require() tla-esm.mjs require(esm) not allowed type error
await import() === require() default-export-esm.js

tla-esm.js
syntax error false
await import() === require() default-export-esm.mjs

tla-esm.mjs
require(esm) not allowed false
import * as x; x === await import() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js

tla-esm.js

tla-esm.mjs
syntax error true

node (.js) vs. bun (.js with "type": "module")

node (js) vs. bun (js-module) fixture node (js) bun (js-module)
import x

import().default
default-export.js syntax error { default }
import x

import().default
default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

tla-esm.js

tla-esm.mjs
syntax error 'default'
import x

import().default
single-object-export.js syntax error { named }
import x

import().default
single-object-with-default-export.js syntax error { named, default }
import().default

await import() === require()

import * as x; x === await import()
tla-esModule.js syntax error runtime error
x = require() default-export-esm.js syntax error { [__esModule] }
x = require() default-export-esm.mjs require(esm) not allowed { [__esModule] }
x = require() tla-esm.js syntax error type error
x = require() tla-esm.mjs require(esm) not allowed type error
await import() === require() default-export-esm.js

tla-esm.js
syntax error false
await import() === require() default-export-esm.mjs

tla-esm.mjs
require(esm) not allowed false
import * as x; x === await import() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js

tla-esm.js

tla-esm.mjs
syntax error true

node (.js) vs. bun (.mts)

node (js) vs. bun (mts) fixture node (js) bun (mts)
import x

import().default
default-export.js syntax error { default }
import x

import().default
default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

tla-esm.js

tla-esm.mjs
syntax error 'default'
import x

import().default
single-object-export.js syntax error { named }
import x

import().default
single-object-with-default-export.js syntax error { named, default }
import().default

await import() === require()

import * as x; x === await import()
tla-esModule.js syntax error runtime error
x = require() default-export-esm.js syntax error { [__esModule] }
x = require() default-export-esm.mjs require(esm) not allowed { [__esModule] }
x = require() tla-esm.js syntax error type error
x = require() tla-esm.mjs require(esm) not allowed type error
await import() === require() default-export-esm.js

tla-esm.js
syntax error false
await import() === require() default-export-esm.mjs

tla-esm.mjs
require(esm) not allowed false
import * as x; x === await import() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js

tla-esm.js

tla-esm.mjs
syntax error true

node (.js) vs. bun (.ts)

node (js) vs. bun (ts) fixture node (js) bun (ts)
import x

import().default
default-export.js syntax error { default }
import x

import().default
default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

tla-esm.js

tla-esm.mjs
syntax error 'default'
import x

import().default
single-object-export.js syntax error { named }
import x

import().default
single-object-with-default-export.js syntax error { named, default }
import().default

await import() === require()

import * as x; x === await import()
tla-esModule.js syntax error runtime error
x = require() default-export-esm.js syntax error { [__esModule] }
x = require() default-export-esm.mjs require(esm) not allowed { [__esModule] }
x = require() tla-esm.js syntax error type error
x = require() tla-esm.mjs require(esm) not allowed type error
await import() === require() default-export-esm.js

tla-esm.js
syntax error false
await import() === require() default-export-esm.mjs

tla-esm.mjs
require(esm) not allowed false
import * as x; x === await import() default-export.js

default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

single-object-export.js

single-object-with-default-export.js

tla-esm.js

tla-esm.mjs
syntax error true

node (.js) vs. bun (.ts with "type": "module")

node (js) vs. bun (ts-module) fixture node (js) bun (ts-module)
import x

import().default
default-export.js syntax error { default }
import x

import().default
default-export-esModule.js

default-export-esm.js

default-export-esm.mjs

tla-esm.js

tla-esm.mjs
syntax error 'default'
import x

import().default
single-object-export.js syntax error { named }
import x

import().default
single-object-with-default-export.js syntax error { named, default }
import().default

await import() === require()

import * as x; x === await import()
tla-esModule.js syntax error runtime error
x = require() default-export-esm.js syntax error { [__esModule] }
x = require() default-export-esm.mjs require(esm) not allowed { [__esModule] }
x = require() tla-esm.js syntax error type error
x = require() tla-esm.mjs require(esm) not allowed type error
await import() === require() default-export-esm.js

tla-esm.js
syntax error

About

ESM-CJS interop test

https://andrewbranch.github.io/interop-test/


Languages

Language:JavaScript 97.4%Language:SCSS 2.6%