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
- Meta-analysis
- Results by runtime
- node 20.3.1
- bun 1.0.0
- babel 7.22.17
- webpack 5.88.2
- rollup 3.29.0
- esbuild 0.19.2
- parcel 2.0.0-nightly.1312
- vite 4.4.9
- Results by exporting module
- Results by import test case
- Differences
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:
- Consistency between JS and TS variants
- Consistency between all bundlers (lol)
- Default export synthesis for CJS modules imported from
.mjs,.mts, and"type": "module"-scoped.jsand.tsfiles for compatibility with Node - No default export synthesis for CJS modules with
__esModulewhen imported from files that are not.mjs,.mts, or"type": "module"-scoped.jsand.tsfiles
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 | 💙 |
Versions:
- node@20.3.1
| node (mjs) | import ximport().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 |
Versions:
- node@20.3.1
| node (js) | import ximport().defaultimport * 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 |
Versions:
- node@20.3.1
| node (js-module) | import ximport().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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 ximport().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 |
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 ximport().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 |
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 ximport().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 |
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 ximport().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 |
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 ximport().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 |
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 ximport().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 |
Versions:
- webpack@5.88.2
| webpack (mjs) | import ximport().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 |
Versions:
- webpack@5.88.2
| webpack (js) | import ximport().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 |
Versions:
- webpack@5.88.2
| webpack (js-module) | import ximport().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 |
Versions:
- webpack@5.88.2
| webpack (mts) | import ximport().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 |
Versions:
- webpack@5.88.2
| webpack (ts) | import ximport().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 |
Versions:
- webpack@5.88.2
| webpack (ts-module) | import ximport().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 |
Versions:
- @rollup/plugin-commonjs@25.0.4
- rollup@3.29.0
| rollup (mjs) | import ximport().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 |
Versions:
- @rollup/plugin-commonjs@25.0.4
- rollup@3.29.0
| rollup (js) | import ximport().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 |
Versions:
- @rollup/plugin-commonjs@25.0.4
- rollup@3.29.0
| rollup (js-module) | import ximport().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 |
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 ximport().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 |
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 |
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 ximport().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 |
Versions:
- esbuild@0.19.2
| esbuild (mjs) | import ximport().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 |
Versions:
- esbuild@0.19.2
| esbuild (js) | import ximport().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 |
Versions:
- esbuild@0.19.2
| esbuild (js-module) | import ximport().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 |
Versions:
- esbuild@0.19.2
| esbuild (mts) | import ximport().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 |
Versions:
- esbuild@0.19.2
| esbuild (ts) | import ximport().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 |
Versions:
- esbuild@0.19.2
| esbuild (ts-module) | import ximport().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 |
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 |
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 |
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 |
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 |
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 |
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 |
Versions:
- vite-plugin-externalize-deps@0.7.0
- vite@4.4.9
| vite (mjs) | import ximport().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 |
Versions:
- vite-plugin-externalize-deps@0.7.0
- vite@4.4.9
| vite (js) | import ximport().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 |
Versions:
- vite-plugin-externalize-deps@0.7.0
- vite@4.4.9
| vite (js-module) | import ximport().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 |
Versions:
- vite-plugin-externalize-deps@0.7.0
- vite@4.4.9
| vite (mts) | import ximport().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 |
Versions:
- vite-plugin-externalize-deps@0.7.0
- vite@4.4.9
| vite (ts) | import ximport().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 |
Versions:
- vite-plugin-externalize-deps@0.7.0
- vite@4.4.9
| vite (ts-module) | import ximport().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 |
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 |
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 ximport().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 |
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 |
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 |
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 |
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 |
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().defaultimport * 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 |
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 |
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 |
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 |
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() |
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() |
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() |
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 |
| node (mjs) vs. node (js) | fixture | node (mjs) | node (js) |
|---|---|---|---|
import ximport().default |
default-export.js | { default } |
syntax error |
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
syntax error |
import ximport().default |
default-export-esm.mjs tla-esm.mjs |
'default' |
syntax error |
import ximport().default |
single-object-export.js | { named } |
syntax error |
import ximport().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) | fixture | node (mjs) | bun (mjs) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js tla-esm.js |
syntax error | 'default' |
import().defaultimport * 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) | fixture | node (mjs) | bun (js) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js tla-esm.js |
syntax error | 'default' |
import().defaultimport * 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-module) | fixture | node (mjs) | bun (js-module) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js tla-esm.js |
syntax error | 'default' |
import().defaultimport * 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) | fixture | node (mjs) | bun (mts) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js tla-esm.js |
syntax error | 'default' |
import().defaultimport * 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) | fixture | node (mjs) | bun (ts) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js tla-esm.js |
syntax error | 'default' |
import().defaultimport * 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-module) | fixture | node (mjs) | bun (ts-module) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js tla-esm.js |
syntax error | 'default' |
import().defaultimport * 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) | fixture | node (mjs) | babel (mjs) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().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) | fixture | node (mjs) | babel (js) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().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-module) | fixture | node (mjs) | babel (js-module) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().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) | fixture | node (mjs) | babel (mts) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().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) | fixture | node (mjs) | babel (ts) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().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-module) | fixture | node (mjs) | babel (ts-module) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().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) | fixture | node (mjs) | webpack (mjs) |
|---|---|---|---|
import ximport().default |
default-export-esm.js tla-esm.js |
syntax error | 'default' |
import ximport().defaultimport * 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) | fixture | node (mjs) | webpack (js) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js tla-esm.js |
syntax error | 'default' |
import ximport().defaultimport * 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-module) | fixture | node (mjs) | webpack (js-module) |
|---|---|---|---|
import ximport().default |
default-export-esm.js tla-esm.js |
syntax error | 'default' |
import ximport().defaultimport * 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) | fixture | node (mjs) | webpack (mts) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js tla-esm.js |
syntax error | 'default' |
import ximport().defaultimport * 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) | fixture | node (mjs) | webpack (ts) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js tla-esm.js |
syntax error | 'default' |
import ximport().defaultimport * 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-module) | fixture | node (mjs) | webpack (ts-module) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js tla-esm.js |
syntax error | 'default' |
import ximport().defaultimport * 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) | fixture | node (mjs) | rollup (mjs) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js | syntax error | 'default' |
import ximport().defaultimport * as x; x === await import() |
tla-esModule.js tla-esm.js |
syntax error | compilation error |
import ximport().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) | fixture | node (mjs) | rollup (js) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js | syntax error | 'default' |
import ximport().defaultimport * as x; x === await import() |
tla-esModule.js tla-esm.js |
syntax error | compilation error |
import ximport().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-module) | fixture | node (mjs) | rollup (js-module) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js | syntax error | 'default' |
import ximport().defaultimport * as x; x === await import() |
tla-esModule.js tla-esm.js |
syntax error | compilation error |
import ximport().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) | fixture | node (mjs) | rollup (mts) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js | syntax error | 'default' |
import ximport().defaultimport * as x; x === await import() |
tla-esModule.js tla-esm.js |
syntax error | compilation error |
import ximport().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) | fixture | node (mjs) | rollup (ts) |
|---|---|---|---|
import ximport().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().defaultimport * 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-module) | fixture | node (mjs) | rollup (ts-module) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js | syntax error | 'default' |
import ximport().defaultimport * as x; x === await import() |
tla-esModule.js tla-esm.js |
syntax error | compilation error |
import ximport().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) | fixture | node (mjs) | esbuild (mjs) |
|---|---|---|---|
import ximport().default |
default-export-esm.js | syntax error | 'default' |
import ximport().defaultimport * as x; x === await import() |
tla-esModule.js tla-esm.js |
syntax error | compilation error |
import ximport().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) | fixture | node (mjs) | esbuild (js) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js | syntax error | 'default' |
import ximport().defaultimport * as x; x === await import() |
tla-esModule.js tla-esm.js |
syntax error | compilation error |
import ximport().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-module) | fixture | node (mjs) | esbuild (js-module) |
|---|---|---|---|
import ximport().default |
default-export-esm.js | syntax error | 'default' |
import ximport().defaultimport * as x; x === await import() |
tla-esModule.js tla-esm.js |
syntax error | compilation error |
import ximport().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) | fixture | node (mjs) | esbuild (mts) |
|---|---|---|---|
import ximport().default |
default-export-esm.js | syntax error | 'default' |
import ximport().defaultimport * as x; x === await import() |
tla-esModule.js tla-esm.js |
syntax error | compilation error |
import ximport().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) | fixture | node (mjs) | esbuild (ts) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js | syntax error | 'default' |
import ximport().defaultimport * as x; x === await import() |
tla-esModule.js tla-esm.js |
syntax error | compilation error |
import ximport().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-module) | fixture | node (mjs) | esbuild (ts-module) |
|---|---|---|---|
import ximport().default |
default-export-esm.js | syntax error | 'default' |
import ximport().defaultimport * as x; x === await import() |
tla-esModule.js tla-esm.js |
syntax error | compilation error |
import ximport().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) | fixture | node (mjs) | parcel (mjs) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js | syntax error | 'default' |
import ximport().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) | fixture | node (mjs) | parcel (js) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js | syntax error | 'default' |
import ximport().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-module) | fixture | node (mjs) | parcel (js-module) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js | syntax error | 'default' |
import ximport().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) | fixture | node (mjs) | parcel (mts) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js | syntax error | 'default' |
import ximport().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) | fixture | node (mjs) | parcel (ts) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js | syntax error | 'default' |
import ximport().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-module) | fixture | node (mjs) | parcel (ts-module) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js | syntax error | 'default' |
import ximport().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) | fixture | node (mjs) | vite (mjs) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js | syntax error | 'default' |
import ximport().defaultimport * as x; x === await import() |
tla-esModule.js tla-esm.js |
syntax error | compilation error |
import ximport().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) | fixture | node (mjs) | vite (js) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js | syntax error | 'default' |
import ximport().defaultimport * as x; x === await import() |
tla-esModule.js tla-esm.js |
syntax error | compilation error |
import ximport().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-module) | fixture | node (mjs) | vite (js-module) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js | syntax error | 'default' |
import ximport().defaultimport * as x; x === await import() |
tla-esModule.js tla-esm.js |
syntax error | compilation error |
import ximport().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) | fixture | node (mjs) | vite (mts) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js | syntax error | 'default' |
import ximport().defaultimport * as x; x === await import() |
tla-esModule.js tla-esm.js |
syntax error | compilation error |
import ximport().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) | fixture | node (mjs) | vite (ts) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js | syntax error | 'default' |
import ximport().defaultimport * as x; x === await import() |
tla-esModule.js tla-esm.js |
syntax error | compilation error |
import ximport().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-module) | fixture | node (mjs) | vite (ts-module) |
|---|---|---|---|
import ximport().default |
default-export-esModule.js | { [__esModule], default } |
'default' |
import ximport().default |
default-export-esm.js | syntax error | 'default' |
import ximport().defaultimport * as x; x === await import() |
tla-esModule.js tla-esm.js |
syntax error | compilation error |
import ximport().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-module) | fixture | node (js) | node (js-module) |
|---|---|---|---|
import ximport().default |
default-export.js | syntax error | { default } |
import ximport().default |
default-export-esModule.js | syntax error | { [__esModule], default } |
import ximport().default |
default-export-esm.mjs tla-esm.mjs |
syntax error | 'default' |
import ximport().default |
single-object-export.js | syntax error | { named } |
import ximport().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) | fixture | node (js) | bun (mjs) |
|---|---|---|---|
import ximport().default |
default-export.js | syntax error | { default } |
import ximport().default |
default-export-esModule.js default-export-esm.js default-export-esm.mjs tla-esm.js tla-esm.mjs |
syntax error | 'default' |
import ximport().default |
single-object-export.js | syntax error | { named } |
import ximport().default |
single-object-with-default-export.js | syntax error | { named, default } |
import().defaultawait 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) | fixture | node (js) | bun (js) |
|---|---|---|---|
import ximport().default |
default-export.js | syntax error | { default } |
import ximport().default |
default-export-esModule.js default-export-esm.js default-export-esm.mjs tla-esm.js tla-esm.mjs |
syntax error | 'default' |
import ximport().default |
single-object-export.js | syntax error | { named } |
import ximport().default |
single-object-with-default-export.js | syntax error | { named, default } |
import().defaultawait 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-module) | fixture | node (js) | bun (js-module) |
|---|---|---|---|
import ximport().default |
default-export.js | syntax error | { default } |
import ximport().default |
default-export-esModule.js default-export-esm.js default-export-esm.mjs tla-esm.js tla-esm.mjs |
syntax error | 'default' |
import ximport().default |
single-object-export.js | syntax error | { named } |
import ximport().default |
single-object-with-default-export.js | syntax error | { named, default } |
import().defaultawait 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) | fixture | node (js) | bun (mts) |
|---|---|---|---|
import ximport().default |
default-export.js | syntax error | { default } |
import ximport().default |
default-export-esModule.js default-export-esm.js default-export-esm.mjs tla-esm.js tla-esm.mjs |
syntax error | 'default' |
import ximport().default |
single-object-export.js | syntax error | { named } |
import ximport().default |
single-object-with-default-export.js | syntax error | { named, default } |
import().defaultawait 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) | fixture | node (js) | bun (ts) |
|---|---|---|---|
import ximport().default |
default-export.js | syntax error | { default } |
import ximport().default |
default-export-esModule.js default-export-esm.js default-export-esm.mjs tla-esm.js tla-esm.mjs |
syntax error | 'default' |
import ximport().default |
single-object-export.js | syntax error | { named } |
import ximport().default |
single-object-with-default-export.js | syntax error | { named, default } |
import().defaultawait 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-module) | fixture | node (js) | bun (ts-module) |
|---|---|---|---|
import ximport().default |
default-export.js | syntax error | { default } |
import ximport().default |
default-export-esModule.js default-export-esm.js default-export-esm.mjs tla-esm.js tla-esm.mjs |
syntax error | 'default' |
import ximport().default |
single-object-export.js | syntax error | { named } |
import ximport().default |
single-object-with-default-export.js | syntax error | { named, default } |
import().defaultawait 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 |