ESM-CJS interop test
This project is maintained by sokra
For readablility some shortcuts are applied:
named
named: 'named'
[named]
[named]: 'named'
(non enumerable)default
default: 'default'
[default]
[default]: 'default'
(non enumerable)__esModule
__esModule: true
[__esModule]
[__esModule]: true
(non enumerable)[G]
[Getter]
[Module]
[Symbol(Symbol.toStringTag)]: 'Module'
default-export | babel babel-js rollup |
esbuild | node node-lts |
parcel | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
import * as x; x.default |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
'default' 💎 |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
import * as x; ident(x).default |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
'default' 💎 |
{ default } ✅ |
{ default } ✅ |
'default' 💎 |
{ default } ✅ |
import { named as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).named { named } = require() x = require(); x.named x = require(); ident(x).named { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { default: { default } } |
{ default: { default } } 🟡 |
[Module: null prototype] { default: { default }, [Module] } |
{ default } |
[Module: null prototype] { [__esModule], default: [G] { default }, [Module] } |
[Module: null prototype] { [__esModule], default: [G] { default }, [Module] } |
{ default } |
[Module: null prototype] { [__esModule], default: { default }, [Module] } 🟡 |
import() |
[Object: null prototype] { default: { default } } |
{ default: { default } } 🟡 |
[Module: null prototype] { default: { default }, [Module] } |
{ default } 🟡 |
[Module: null prototype] { [__esModule], default: [G] { default }, [Module] } |
[Module: null prototype] { [__esModule], default: [G] { default }, [Module] } |
[Module: null prototype] { [__esModule], default: { default }, [Module] } |
[Module: null prototype] { [__esModule], default: { default }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true ✅ |
false |
true ✅ |
true ✅ |
false |
false |
false |
false |
default-export-esModule | babel babel-js parcel webpack4 |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4-mjs |
---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
'default' ✅ |
{ [__esModule], default } |
{ [__esModule], default } |
'default' ✅ |
{ [__esModule], default } |
'default' ✅ |
{ [__esModule], default } |
import { named as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined + errors 💎 |
import * as x; x.named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined + errors 💎 |
import * as x; ident(x).named { named } = require() x = require(); x.named x = require(); ident(x).named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } import * as x; x.__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
true ✅ |
import * as x import() |
{ [__esModule], default } |
{ default: { [__esModule], default }, [__esModule]: [G: true] } 💎 |
[Module: null prototype] { __esModule, default: { [__esModule], default }, [Module] } 💎 |
[Object: null prototype] { default } 💎 |
[Module: null prototype] { [__esModule], default: [G] { [__esModule], default }, [Module] } 💎 |
{ [__esModule], default } |
[Module: null prototype] { [__esModule], default: { [__esModule], default }, [Module] } 💎 |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], default } ✅ |
{ [__esModule], default } ✅ |
{ [__esModule], default } ✅ |
{ [__esModule], default } ✅ |
{ [__esModule], default } ✅ |
{ [__esModule], default } ✅ |
{ [__esModule], default } ✅ |
await import() === require() |
true ✅ |
false 💎 |
false 💎 |
false 💎 |
true ✅ |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
false 💎 |
true ✅ |
true ✅ |
false 💎 |
true ✅ |
false 💎 |
default-export-esModule-esm-reexport | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } |
undefined |
undefined |
syntax error 💎 | compilation error 💎 | compilation error 💎 | undefined + errors 💎 |
undefined + warnings 💎 |
undefined |
import * as x; x.default |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + warnings 💎 |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined ✅ |
import * as x; ident(x).default import * as x; ident(x).named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { named as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined ✅ |
import * as x; x.named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined ✅ |
import { __esModule as x } import * as x; x.__esModule import * as x; x === await import() |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
true ✅ |
import * as x |
{ [__esModule] } |
{ [__esModule]: [G: true] } 💎 |
[Module: null prototype] { __esModule, [Module] } 🟡 |
{ [__esModule] } |
[Object: null prototype] {} 💎 |
{ [__esModule], [Module] } |
{ [__esModule], [Module] } |
{ [__esModule], [Module] } |
import() |
{ [__esModule] } |
{ [__esModule]: [G: true] } 💎 |
[Module: null prototype] { __esModule, [Module] } 🟡 |
{ [__esModule] } |
{} 💎 |
{ [__esModule], [Module] } |
{ [__esModule], [Module] } |
{ [__esModule], [Module] } |
x = require(); x.default x = require(); ident(x).default { named } = require() x = require(); x.named x = require(); ident(x).named |
undefined ✅ |
undefined ✅ |
require(esm) not allowed 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
require(esm) not allowed 💎 | true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule] } |
{ [__esModule] } |
require(esm) not allowed 💎 | { [__esModule] } |
{ [__esModule] } |
{ [__esModule], [Module] } |
{ [__esModule], [Module] } |
{ [__esModule], [Module] } |
await import() === require() |
true ✅ |
false 💎 |
require(esm) not allowed 💎 | true ✅ |
false 💎 |
true ✅ |
true ✅ |
true ✅ |
default-export-esm | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
import { named as x } |
undefined |
compilation error | syntax error | compilation error | compilation error | undefined + errors |
undefined + warnings |
undefined + warnings |
undefined + errors |
import * as x; x.named |
undefined |
undefined + warnings |
undefined |
undefined |
undefined + warnings |
undefined + errors 💎 |
undefined + warnings |
undefined + warnings |
undefined + errors 💎 |
import * as x; ident(x).named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } |
true |
compilation error | syntax error | compilation error | compilation error | true + errors 🟡 |
true + warnings 🟡 |
undefined + warnings 🟡 |
undefined + errors 🟡 |
import * as x; x.__esModule |
true |
undefined + warnings |
undefined |
true |
undefined + warnings |
true + errors 🟡 |
true + warnings 🟡 |
undefined + warnings |
undefined + errors 🟡 |
import * as x; ident(x).__esModule |
true ✅ |
undefined 💎 |
undefined 💎 |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
import * as x |
{ [__esModule], default } |
{ default: [G] } 💎 |
[Module: null prototype] { default, [Module] } 🟡 |
{ [__esModule], default } |
[Object: null prototype] { default } 💎 |
{ [__esModule], default: [G], [Module] } |
{ [__esModule], default: [G], [Module] } |
{ [__esModule], default: [G], [Module] } |
{ [__esModule], default: [G], [Module] } |
import() |
{ [__esModule], default } |
{ default: [G] } 🟡 |
[Module: null prototype] { default, [Module] } |
{ [__esModule], default } |
{ default } 🟡 |
{ [__esModule], default: [G], [Module] } |
{ [__esModule], default: [G], [Module] } |
{ [__esModule], default, [Module] } |
{ [__esModule], default, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
require(esm) not allowed 💎 | 'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() |
undefined ✅ |
undefined ✅ |
require(esm) not allowed 💎 | compilation error 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
x = require(); x.named x = require(); ident(x).named |
undefined ✅ |
undefined ✅ |
require(esm) not allowed 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ __esModule } = require() |
true ✅ |
true ✅ |
require(esm) not allowed 💎 | compilation error 💎 | true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
require(esm) not allowed 💎 | true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], default } |
{ [__esModule], default: [G] } |
require(esm) not allowed | { [__esModule], default } |
{ [__esModule], default: [G] } |
{ [__esModule], default: [G], [Module] } |
{ [__esModule], default: [G], [Module] } |
{ [__esModule], default, [Module] } |
{ [__esModule], default, [Module] } |
await import() === require() |
true ✅ |
false 💎 |
require(esm) not allowed 💎 | true ✅ |
false 💎 |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
default-export-runtime | babel babel-js rollup |
esbuild | node node-lts |
parcel | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
import * as x; x.default |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
'default' 💎 |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
import * as x; ident(x).default |
{ default } ✅ |
{ default } ✅ |
{ default } ✅ |
'default' 💎 |
{ default } ✅ |
'default' 💎 |
'default' 💎 |
{ default } ✅ |
import { named as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).named { named } = require() x = require(); x.named x = require(); ident(x).named { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { default: { default } } |
{ default: { default } } 🟡 |
[Module: null prototype] { default: { default }, [Module] } |
{ default } |
[Module: null prototype] { [__esModule], default: [G] { default }, [Module] } 🟡 |
{ default } |
{ default } |
[Module: null prototype] { [__esModule], default: { default }, [Module] } 🟡 |
import() |
[Object: null prototype] { default: { default } } |
{ default: { default } } 🟡 |
[Module: null prototype] { default: { default }, [Module] } |
{ default } 🟡 |
[Module: null prototype] { [__esModule], default: [G] { default }, [Module] } |
[Module: null prototype] { [__esModule], default: [G] { default }, [Module] } |
[Module: null prototype] { [__esModule], default: { default }, [Module] } |
[Module: null prototype] { [__esModule], default: { default }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true ✅ |
false |
true ✅ |
true ✅ |
false |
false |
false |
false |
named-and-default-export | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
import * as x; x.default |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
import * as x; ident(x).default |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
{ named, default } ✅ |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { named, default: { named, default } } |
{ default: { named, default }, named: [G] } |
[Module: null prototype] { default: { named, default }, named, [Module] } |
{ named, default } |
[Object: null prototype] { default: { named, default }, named } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
{ named, default } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
import() |
[Object: null prototype] { named, default: { named, default } } |
{ default: { named, default }, named: [G] } |
[Module: null prototype] { default: { named, default }, named, [Module] } |
{ named, default } |
[Object: null prototype] { default: { named, default }, named } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true ✅ |
false |
true ✅ |
true ✅ |
true ✅ |
false |
false |
false |
false |
named-and-default-export-babel-getter | babel babel-js parcel webpack-js webpack4 |
esbuild | node node-lts |
rollup | webpack | webpack4-mjs |
---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
'default' ✅ |
{ [__esModule], named: [G], default: [G] } |
{ [__esModule], named: [G], default: [G] } |
'default' ✅ |
{ [__esModule], named: [G], default: [G] } |
{ [__esModule], named: [G], default: [G] } |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } import * as x; x.__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
import * as x import() |
{ [__esModule], named: [G], default: [G] } |
{ default: { [__esModule], named: [G], default: [G] }, [__esModule]: [G: true], named: [G] } 💎 |
[Module: null prototype] { __esModule, default: { [__esModule], named: [G], default: [G] }, named, [Module] } 💎 |
[Object: null prototype] { default, named: [G] } 💎 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named: [G], default: [G] }, [Module] } 💎 |
[Module: null prototype] { [__esModule], default: { [__esModule], named: [G], default: [G] }, [Module] } 💎 |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], named: [G], default: [G] } ✅ |
{ [__esModule], named: [G], default: [G] } ✅ |
{ [__esModule], named: [G], default: [G] } ✅ |
{ [__esModule], named: [G], default: [G] } ✅ |
{ [__esModule], named: [G], default: [G] } ✅ |
{ [__esModule], named: [G], default: [G] } ✅ |
await import() === require() |
true ✅ |
false 💎 |
false 💎 |
false 💎 |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
false 💎 |
true ✅ |
true ✅ |
false 💎 |
false 💎 |
named-and-default-export-duplicate | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
import * as x; x.default |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
import * as x; ident(x).default |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
{ named, default } ✅ |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { named, default: { named, default } } |
{ default: { named, default }, named: [G] } |
[Module: null prototype] { default: { named, default }, named, [Module] } |
{ named, default } |
[Object: null prototype] { default: { named, default }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
{ named, default } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
import() |
[Object: null prototype] { named, default: { named, default } } |
{ default: { named, default }, named: [G] } |
[Module: null prototype] { default: { named, default }, named, [Module] } |
{ named, default } |
[Object: null prototype] { default: { named, default }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true ✅ |
false |
true ✅ |
true ✅ |
true ✅ |
false |
false |
false |
false |
named-and-default-export-esModule | babel babel-js parcel webpack-js webpack4 |
esbuild | node node-lts |
rollup | webpack | webpack4-mjs |
---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
'default' ✅ |
{ [__esModule], named, default } |
{ [__esModule], named, default } |
'default' ✅ |
{ [__esModule], named, default } |
{ [__esModule], named, default } |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } import * as x; x.__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
import * as x import() |
{ [__esModule], named, default } |
{ default: { [__esModule], named, default }, [__esModule]: [G: true], named: [G] } 💎 |
[Module: null prototype] { __esModule, default: { [__esModule], named, default }, named, [Module] } 💎 |
[Object: null prototype] { default, named } 💎 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named, default }, [Module] } 💎 |
[Module: null prototype] { [__esModule], default: { [__esModule], named, default }, [Module] } 💎 |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
await import() === require() |
true ✅ |
false 💎 |
false 💎 |
false 💎 |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
false 💎 |
true ✅ |
true ✅ |
false 💎 |
false 💎 |
named-and-default-export-esModule-duplicate | babel babel-js parcel webpack-js webpack4 |
esbuild | node node-lts |
rollup | webpack | webpack4-mjs |
---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
'default' ✅ |
{ [__esModule], named, default } |
{ [__esModule], named, default } |
'default' ✅ |
{ [__esModule], named, default } |
{ [__esModule], named, default } |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } import * as x; x.__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
import * as x import() |
{ [__esModule], named, default } |
{ default: { [__esModule], named, default }, [__esModule]: [G: true], named: [G] } 💎 |
[Module: null prototype] { __esModule, default: { [__esModule], named, default }, named, [Module] } 💎 |
[Object: null prototype] { default: [G], named: [G] } 💎 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named, default }, [Module] } 💎 |
[Module: null prototype] { [__esModule], default: { [__esModule], named, default }, [Module] } 💎 |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
await import() === require() |
true ✅ |
false 💎 |
false 💎 |
false 💎 |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
false 💎 |
true ✅ |
true ✅ |
false 💎 |
false 💎 |
named-and-default-export-esModule-esm-reexport | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } |
undefined |
undefined |
syntax error 💎 | compilation error 💎 | compilation error 💎 | undefined + errors 💎 |
undefined + warnings 💎 |
undefined |
import * as x; x.default |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + warnings 💎 |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined ✅ |
import * as x; ident(x).default |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { named as x } import * as x; x.named import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
import { __esModule as x } import * as x; x.__esModule import * as x; x === await import() |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
true ✅ |
import * as x |
{ [__esModule], named: [G] } |
{ [__esModule]: [G: true], named: [G] } 💎 |
[Module: null prototype] { __esModule, named, [Module] } 🟡 |
{ [__esModule], named: [G] } |
[Object: null prototype] { named } 💎 |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
import() |
{ [__esModule], named: [G] } |
{ [__esModule]: [G: true], named: [G] } 💎 |
[Module: null prototype] { __esModule, named, [Module] } 🟡 |
{ [__esModule], named: [G] } |
{ named } 💎 |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
x = require(); x.default x = require(); ident(x).default |
undefined ✅ |
undefined ✅ |
require(esm) not allowed 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
require(esm) not allowed 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
require(esm) not allowed 💎 | true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], named: [G] } |
{ [__esModule], named: [G] } |
require(esm) not allowed 💎 | { [__esModule], named: [G] } |
{ [__esModule], named: [G] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
await import() === require() |
true ✅ |
false 💎 |
require(esm) not allowed 💎 | true ✅ |
false 💎 |
true ✅ |
true ✅ |
true ✅ |
named-and-default-export-esModule-reexport | babel babel-js parcel webpack-js webpack4 |
esbuild | node node-lts |
rollup | webpack | webpack4-mjs |
---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
'default' ✅ |
{ [__esModule], named, default } |
{ [__esModule], named, default } |
'default' ✅ |
{ [__esModule], named, default } |
{ [__esModule], named, default } |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } import * as x; x.__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
import * as x import() |
{ [__esModule], named, default } |
{ default: { [__esModule], named, default }, [__esModule]: [G: true], named: [G] } 💎 |
[Module: null prototype] { __esModule, default: { [__esModule], named, default }, named, [Module] } 💎 |
[Object: null prototype] { default, named: [G] } 💎 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named, default }, [Module] } 💎 |
[Module: null prototype] { [__esModule], default: { [__esModule], named, default }, [Module] } 💎 |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
await import() === require() |
true ✅ |
false 💎 |
false 💎 |
false 💎 |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
false 💎 |
true ✅ |
true ✅ |
false 💎 |
false 💎 |
named-and-default-export-esm | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
import { named as x } import * as x; x.named import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
import { __esModule as x } |
true |
compilation error | syntax error | compilation error | compilation error | true + errors 🟡 |
true + warnings 🟡 |
undefined + warnings 🟡 |
undefined + errors 🟡 |
import * as x; x.__esModule |
true |
undefined + warnings |
undefined |
true |
undefined + warnings |
true + errors 🟡 |
true + warnings 🟡 |
undefined + warnings |
undefined + errors 🟡 |
import * as x; ident(x).__esModule |
true ✅ |
undefined 💎 |
undefined 💎 |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
import * as x |
{ [__esModule], default, named } |
{ default: [G], named: [G] } |
[Module: null prototype] { default, named, [Module] } |
{ [__esModule], named: [G], default } |
[Object: null prototype] { default, named } |
{ [__esModule], default: [G], named: [G], [Module] } |
{ [__esModule], default: [G], named: [G], [Module] } |
{ [__esModule], named: [G], default: [G], [Module] } |
{ [__esModule], named: [G], default: [G], [Module] } |
import() |
{ [__esModule], default, named } |
{ default: [G], named: [G] } |
[Module: null prototype] { default, named, [Module] } |
{ [__esModule], named: [G], default } |
{ default, named } |
{ [__esModule], default: [G], named: [G], [Module] } |
{ [__esModule], default: [G], named: [G], [Module] } |
{ [__esModule], named: [G], default, [Module] } |
{ [__esModule], named: [G], default, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
require(esm) not allowed 💎 | 'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
require(esm) not allowed 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() |
true ✅ |
true ✅ |
require(esm) not allowed 💎 | compilation error 💎 | true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
require(esm) not allowed 💎 | true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], default, named } |
{ [__esModule], default: [G], named: [G] } |
require(esm) not allowed | { [__esModule], named: [G], default } |
{ [__esModule], default: [G], named: [G] } |
{ [__esModule], default: [G], named: [G], [Module] } |
{ [__esModule], default: [G], named: [G], [Module] } |
{ [__esModule], named: [G], default, [Module] } |
{ [__esModule], named: [G], default, [Module] } |
await import() === require() |
true ✅ |
false 💎 |
require(esm) not allowed 💎 | true ✅ |
false 💎 |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
named-and-default-export-esm-esm-reexport | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } |
runtime error | compilation error | syntax error | compilation error | compilation error | undefined + errors |
undefined + warnings |
undefined + warnings |
undefined + errors |
import * as x; x.default |
runtime error 🟡 | undefined + warnings |
undefined |
undefined |
undefined + warnings |
undefined + errors 🟡 |
undefined + warnings |
undefined + warnings |
undefined + errors 🟡 |
import * as x; ident(x).default |
runtime error 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { named as x } import * as x; x.named import * as x; ident(x).named |
runtime error 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
import { __esModule as x } |
runtime error | compilation error | syntax error | compilation error | compilation error | true + errors 🟡 |
true + warnings 🟡 |
undefined + warnings 🟡 |
undefined + errors 🟡 |
import * as x; x.__esModule |
runtime error | undefined + warnings |
undefined |
true 🟡 |
undefined + warnings |
true + errors 🟡 |
true + warnings 🟡 |
undefined + warnings |
undefined + errors 🟡 |
import * as x; ident(x).__esModule |
runtime error 💎 | undefined |
undefined |
true |
undefined |
true |
true |
true |
true |
import * as x |
runtime error 🟡 | { named: [G] } 💎 |
[Module: null prototype] { named, [Module] } 🟡 |
{ [__esModule], named: [G] } 💎 |
[Object: null prototype] { named } 💎 |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
import() |
runtime error 🟡 | { named: [G] } 💎 |
[Module: null prototype] { named, [Module] } 🟡 |
{ [__esModule], named: [G] } 💎 |
{ named } 💎 |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
x = require(); x.default x = require(); ident(x).default |
runtime error 💎 | undefined ✅ |
require(esm) not allowed 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
runtime error 💎 | 'named' ✅ |
require(esm) not allowed 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() |
runtime error 💎 | true ✅ |
require(esm) not allowed 💎 | compilation error 💎 | true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require(); x.__esModule x = require(); ident(x).__esModule |
runtime error 💎 | true ✅ |
require(esm) not allowed 💎 | true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
runtime error 🟡 | { [__esModule], named: [G] } |
require(esm) not allowed 🟡 | { [__esModule], named: [G] } |
{ [__esModule], named: [G] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
await import() === require() |
runtime error 💎 | false 💎 |
require(esm) not allowed 💎 | true |
false 💎 |
true |
true |
true |
true |
import * as x; x === await import() |
runtime error 💎 | true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
named-and-default-export-esm-reexport | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } |
undefined |
undefined |
syntax error 💎 | compilation error 💎 | compilation error 💎 | undefined + errors 💎 |
undefined + warnings 💎 |
undefined |
import * as x; x.default |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + warnings 💎 |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined ✅ |
import * as x; ident(x).default |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { named as x } import * as x; x.named import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
import { __esModule as x } |
true |
undefined |
syntax error 🟡 | true |
undefined |
true + errors 💎 |
true + warnings 💎 |
undefined |
import * as x; x.__esModule |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
import * as x; ident(x).__esModule |
true ✅ |
undefined 💎 |
undefined 💎 |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
true ✅ |
import * as x |
{ [__esModule], named: [G] } |
{ named: [G] } 💎 |
[Module: null prototype] { named, [Module] } 🟡 |
{ [__esModule], named: [G] } |
[Object: null prototype] { named } 💎 |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
import() |
{ [__esModule], named: [G] } |
{ named: [G] } 💎 |
[Module: null prototype] { named, [Module] } 🟡 |
{ [__esModule], named: [G] } |
{ named } 💎 |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
x = require(); x.default x = require(); ident(x).default |
undefined ✅ |
undefined ✅ |
require(esm) not allowed 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
require(esm) not allowed 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
require(esm) not allowed 💎 | true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], named: [G] } |
{ [__esModule], named: [G] } |
require(esm) not allowed 💎 | { [__esModule], named: [G] } |
{ [__esModule], named: [G] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
await import() === require() |
true ✅ |
false 💎 |
require(esm) not allowed 💎 | true ✅ |
false 💎 |
true ✅ |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
named-and-default-export-getter | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
import * as x; x.default |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
'default' 💎 |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
import * as x; ident(x).default |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
'default' 💎 |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
{ [named]: [G], [default]: [G] } ✅ |
'default' 💎 |
{ [named]: [G], [default]: [G] } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
syntax error 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined 🟡 |
'named' ✅ |
undefined 🟡 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
undefined ✅ |
'named' |
undefined ✅ |
'named' |
undefined ✅ |
'named' |
'named' |
'named' |
undefined ✅ |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { default: { [named]: [G], [default]: [G] } } |
{ default: { [named]: [G], [default]: [G] }, [named]: [G] } 🟡 |
[Module: null prototype] { default: { [named]: [G], [default]: [G] }, [Module] } |
{ [named]: [G], [default]: [G] } |
[Object: null prototype] { default: { [named]: [G], [default]: [G] } } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named]: [G], [default]: [G] }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named]: [G], [default]: [G] }, [Module] } |
{ [named]: [G], [default]: [G] } |
[Module: null prototype] { [__esModule], default: { [named]: [G], [default]: [G] }, [Module] } 🟡 |
import() |
[Object: null prototype] { default: { [named]: [G], [default]: [G] } } |
{ default: { [named]: [G], [default]: [G] }, [named]: [G] } 🟡 |
[Module: null prototype] { default: { [named]: [G], [default]: [G] }, [Module] } |
{ [named]: [G], [default]: [G] } 🟡 |
[Object: null prototype] { default: { [named]: [G], [default]: [G] } } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named]: [G], [default]: [G] }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named]: [G], [default]: [G] }, [Module] } |
[Module: null prototype] { [__esModule], default: { [named]: [G], [default]: [G] }, [Module] } |
[Module: null prototype] { [__esModule], default: { [named]: [G], [default]: [G] }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true ✅ |
false |
true ✅ |
true ✅ |
true ✅ |
false |
false |
false |
false |
named-and-default-export-getter-esModule | babel babel-js parcel webpack-js webpack4 |
esbuild | node node-lts |
rollup | webpack | webpack4-mjs |
---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
'default' ✅ |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
'default' ✅ |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
import { named as x } |
'named' ✅ |
'named' ✅ |
syntax error 💎 | 'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
undefined 💎 |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
true ✅ |
true ✅ |
syntax error 💎 | true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
undefined 💎 |
undefined 💎 |
true ✅ |
true ✅ |
import * as x import() |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } |
{ default: { [__esModule]: [G: true], [named]: [G], [default]: [G] }, [__esModule]: [G: true], [named]: [G] } 💎 |
[Module: null prototype] { default: { [__esModule]: [G: true], [named]: [G], [default]: [G] }, [Module] } 💎 |
[Object: null prototype] { default } 💎 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule]: [G: true], [named]: [G], [default]: [G] }, [Module] } 💎 |
[Module: null prototype] { [__esModule], default: { [__esModule]: [G: true], [named]: [G], [default]: [G] }, [Module] } 💎 |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } ✅ |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } ✅ |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } ✅ |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } ✅ |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } ✅ |
{ [__esModule]: [G: true], [named]: [G], [default]: [G] } ✅ |
await import() === require() |
true ✅ |
false 💎 |
false 💎 |
false 💎 |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
false 💎 |
true ✅ |
true ✅ |
false 💎 |
false 💎 |
named-and-default-export-inherited | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
import * as x; x.default |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
import * as x; ident(x).default |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
'default' 💎 |
{ named, default } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
syntax error 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined 🟡 |
'named' ✅ |
undefined 🟡 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
undefined ✅ |
'named' |
undefined ✅ |
'named' |
undefined ✅ |
'named' |
'named' |
'named' |
undefined ✅ |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { default: { named, default } } |
{ default: { named, default }, named } 🟡 |
[Module: null prototype] { default: { named, default }, [Module] } |
{ named, default } |
[Object: null prototype] { default: { named, default } } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } 🟡 |
{ named, default } |
{ named, default } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } 🟡 |
import() |
[Object: null prototype] { default: { named, default } } |
{ default: { named, default }, named } 🟡 |
[Module: null prototype] { default: { named, default }, [Module] } |
{ named, default } 🟡 |
[Object: null prototype] { default: { named, default } } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, named: [G], [Module] } 🟡 |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } 🟡 |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true ✅ |
false |
true ✅ |
true ✅ |
true ✅ |
false |
false |
false |
false |
named-and-default-export-live | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
import * as x; x.default |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
import * as x; ident(x).default |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
{ named, default } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
'named-outdated' 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
'named-outdated' 🟡 |
'named' ✅ |
'named-outdated' 🟡 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named-outdated' 🟡 |
'named' ✅ |
'named-outdated' 🟡 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { named: 'named-outdated', default: { named, default } } |
{ default: { named, default }, named: [G] } |
[Module: null prototype] { default: { named, default }, named: 'named-outdated', [Module] } |
{ named, default } |
[Object: null prototype] { default: { named, default }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
{ named, default } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
import() |
[Object: null prototype] { named: 'named-outdated', default: { named, default } } |
{ default: { named, default }, named: [G] } |
[Module: null prototype] { default: { named, default }, named: 'named-outdated', [Module] } |
{ named, default } |
[Object: null prototype] { default: { named, default }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() |
'named-outdated' ✅ |
'named-outdated' ✅ |
'named-outdated' ✅ |
'named-outdated' ✅ |
'named-outdated' ✅ |
'named-outdated' ✅ |
'named-outdated' ✅ |
'named-outdated' ✅ |
'named-outdated' ✅ |
x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true ✅ |
false |
true ✅ |
true ✅ |
true ✅ |
false |
false |
false |
false |
named-and-default-export-non-enumerable | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
import * as x; x.default |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
'default' 💎 |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
import * as x; ident(x).default |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
'default' 💎 |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
'default' 💎 |
{ [named], [default] } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { default: { [named], [default] } } |
{ default: { [named], [default] }, [named]: [G] } 🟡 |
[Module: null prototype] { default: { [named], [default] }, named, [Module] } |
{ [named], [default] } |
[Object: null prototype] { default: { [named], [default] } } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default] }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default] }, [Module] } |
{ [named], [default] } |
[Module: null prototype] { [__esModule], default: { [named], [default] }, [Module] } 🟡 |
import() |
[Object: null prototype] { default: { [named], [default] } } |
{ default: { [named], [default] }, [named]: [G] } 🟡 |
[Module: null prototype] { default: { [named], [default] }, named, [Module] } |
{ [named], [default] } 🟡 |
[Object: null prototype] { default: { [named], [default] } } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default] }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default] }, [Module] } |
[Module: null prototype] { [__esModule], default: { [named], [default] }, [Module] } |
[Module: null prototype] { [__esModule], default: { [named], [default] }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true ✅ |
false |
true ✅ |
true ✅ |
true ✅ |
false |
false |
false |
false |
named-and-default-export-non-enumerable-inherited | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
import * as x; x.default |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
'default' 💎 |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
import * as x; ident(x).default |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
'default' 💎 |
{ [named], [default] } ✅ |
{ [named], [default] } ✅ |
'default' 💎 |
'default' 💎 |
{ [named], [default] } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
syntax error 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined 🟡 |
'named' ✅ |
undefined 🟡 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
undefined ✅ |
'named' |
undefined ✅ |
'named' |
undefined ✅ |
'named' |
'named' |
'named' |
undefined ✅ |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { default: { [named], [default] } } |
{ default: { [named], [default] }, [named] } 🟡 |
[Module: null prototype] { default: { [named], [default] }, [Module] } |
{ [named], [default] } |
[Object: null prototype] { default: { [named], [default] } } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default] }, [Module] } 🟡 |
{ [named], [default] } |
{ [named], [default] } |
[Module: null prototype] { [__esModule], default: { [named], [default] }, [Module] } 🟡 |
import() |
[Object: null prototype] { default: { [named], [default] } } |
{ default: { [named], [default] }, [named] } 🟡 |
[Module: null prototype] { default: { [named], [default] }, [Module] } |
{ [named], [default] } 🟡 |
[Object: null prototype] { default: { [named], [default] } } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default] }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default] }, [Module] } |
[Module: null prototype] { [__esModule], default: { [named], [default] }, [Module] } |
[Module: null prototype] { [__esModule], default: { [named], [default] }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true ✅ |
false |
true ✅ |
true ✅ |
true ✅ |
false |
false |
false |
false |
named-and-default-export-reexport | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
import * as x; x.default |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
import * as x; ident(x).default |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
{ named, default } ✅ |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { named, default: { named, default } } |
{ default: { named, default }, named: [G] } |
[Module: null prototype] { default: { named, default }, named, [Module] } |
{ named, default } |
[Object: null prototype] { default: { named, default }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
{ named, default } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
import() |
[Object: null prototype] { named, default: { named, default } } |
{ default: { named, default }, named: [G] } |
[Module: null prototype] { default: { named, default }, named, [Module] } |
{ named, default } |
[Object: null prototype] { default: { named, default }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true ✅ |
false |
true ✅ |
true ✅ |
true ✅ |
false |
false |
false |
false |
named-and-default-export-runtime | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
import * as x; x.default |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
import * as x; ident(x).default |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
'default' 💎 |
{ named, default } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
syntax error 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { named, default: { named, default } } |
{ default: { named, default }, named: [G] } 🟡 |
[Module: null prototype] { default: { named, default }, [Module] } |
{ named, default } |
[Object: null prototype] { default: { named, default }, named: [G] } 🟡 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } 🟡 |
{ named, default } |
{ named, default } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } 🟡 |
import() |
[Object: null prototype] { named, default: { named, default } } |
{ default: { named, default }, named: [G] } |
[Module: null prototype] { default: { named, default }, [Module] } |
{ named, default } |
[Object: null prototype] { default: { named, default }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true ✅ |
false |
true ✅ |
true ✅ |
true ✅ |
false |
false |
false |
false |
named-and-default-export-runtime-esModule | babel babel-js parcel webpack-js webpack4 |
esbuild | node node-lts |
rollup | webpack | webpack4-mjs |
---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
'default' ✅ |
{ [__esModule], named, default } |
{ [__esModule], named, default } |
'default' ✅ |
{ [__esModule], named, default } |
{ [__esModule], named, default } |
import { named as x } |
'named' ✅ |
'named' ✅ |
syntax error 💎 | 'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
true ✅ |
true ✅ |
syntax error 💎 | true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
undefined 💎 |
undefined 💎 |
true ✅ |
true ✅ |
import * as x import() |
{ [__esModule], named, default } |
{ default: { [__esModule], named, default }, [__esModule]: [G: true], named: [G] } 💎 |
[Module: null prototype] { default: { [__esModule], named, default }, [Module] } 💎 |
[Object: null prototype] { default, named: [G] } 💎 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named, default }, [Module] } 💎 |
[Module: null prototype] { [__esModule], default: { [__esModule], named, default }, [Module] } 💎 |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
{ [__esModule], named, default } ✅ |
await import() === require() |
true ✅ |
false 💎 |
false 💎 |
false 💎 |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
false 💎 |
true ✅ |
true ✅ |
false 💎 |
false 💎 |
named-and-null-default-export | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
import * as x; x.default |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
null 💎 |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
import * as x; ident(x).default |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
null 💎 |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
null 💎 |
{ named, default: null } ✅ |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { named, default: { named, default: null } } |
{ default: { named, default: null }, named: [G] } |
[Module: null prototype] { default: { named, default: null }, named, [Module] } |
{ named, default: null } |
[Object: null prototype] { default: { named, default: null }, named } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default: null }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default: null }, [Module] } |
{ named, default: null } |
[Module: null prototype] { [__esModule], default: { named, default: null }, [Module] } |
import() |
[Object: null prototype] { named, default: { named, default: null } } |
{ default: { named, default: null }, named: [G] } |
[Module: null prototype] { default: { named, default: null }, named, [Module] } |
{ named, default: null } |
[Object: null prototype] { default: { named, default: null }, named } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default: null }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default: null }, [Module] } |
[Module: null prototype] { [__esModule], default: { named, default: null }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { named, default: null }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true ✅ |
false |
true ✅ |
true ✅ |
true ✅ |
false |
false |
false |
false |
named-and-null-default-export-esModule | babel babel-js parcel webpack-js webpack4 |
esbuild | node node-lts |
rollup | webpack | webpack4-mjs |
---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
null ✅ |
{ [__esModule], named, default: null } |
{ [__esModule], named, default: null } |
null ✅ |
{ [__esModule], named, default: null } |
{ [__esModule], named, default: null } |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } import * as x; x.__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
import * as x import() |
{ [__esModule], named, default: null } |
{ default: { [__esModule], named, default: null }, [__esModule]: [G: true], named: [G] } 💎 |
[Module: null prototype] { __esModule, default: { [__esModule], named, default: null }, named, [Module] } 💎 |
[Object: null prototype] { default: null, named } 💎 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named, default: null }, [Module] } 💎 |
[Module: null prototype] { [__esModule], default: { [__esModule], named, default: null }, [Module] } 💎 |
x = require(); x.default x = require(); ident(x).default |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], named, default: null } ✅ |
{ [__esModule], named, default: null } ✅ |
{ [__esModule], named, default: null } ✅ |
{ [__esModule], named, default: null } ✅ |
{ [__esModule], named, default: null } ✅ |
{ [__esModule], named, default: null } ✅ |
await import() === require() |
true ✅ |
false 💎 |
false 💎 |
false 💎 |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
false 💎 |
true ✅ |
true ✅ |
false 💎 |
false 💎 |
named-and-null-default-export-non-enumerable | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
import * as x; x.default |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
null 💎 |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
import * as x; ident(x).default |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
null 💎 |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
{ [named], [default]: null } ✅ |
null 💎 |
{ [named], [default]: null } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { default: { [named], [default]: null } } |
{ default: { [named], [default]: null }, [named]: [G] } 🟡 |
[Module: null prototype] { default: { [named], [default]: null }, named, [Module] } |
{ [named], [default]: null } |
[Object: null prototype] { default: { [named], [default]: null } } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default]: null }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default]: null }, [Module] } |
{ [named], [default]: null } |
[Module: null prototype] { [__esModule], default: { [named], [default]: null }, [Module] } 🟡 |
import() |
[Object: null prototype] { default: { [named], [default]: null } } |
{ default: { [named], [default]: null }, [named]: [G] } 🟡 |
[Module: null prototype] { default: { [named], [default]: null }, named, [Module] } |
{ [named], [default]: null } 🟡 |
[Object: null prototype] { default: { [named], [default]: null } } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default]: null }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named], [default]: null }, [Module] } |
[Module: null prototype] { [__esModule], default: { [named], [default]: null }, [Module] } |
[Module: null prototype] { [__esModule], default: { [named], [default]: null }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true ✅ |
false |
true ✅ |
true ✅ |
true ✅ |
false |
false |
false |
false |
named-and-null-default-export-runtime | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
import * as x; x.default |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
null 💎 |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
import * as x; ident(x).default |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
null 💎 |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
null 💎 |
null 💎 |
{ named, default: null } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
syntax error 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { named, default: { named, default: null } } |
{ default: { named, default: null }, named: [G] } 🟡 |
[Module: null prototype] { default: { named, default: null }, [Module] } |
{ named, default: null } |
[Object: null prototype] { default: { named, default: null }, named: [G] } 🟡 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default: null }, [Module] } 🟡 |
{ named, default: null } |
{ named, default: null } |
[Module: null prototype] { [__esModule], default: { named, default: null }, [Module] } 🟡 |
import() |
[Object: null prototype] { named, default: { named, default: null } } |
{ default: { named, default: null }, named: [G] } |
[Module: null prototype] { default: { named, default: null }, [Module] } |
{ named, default: null } |
[Object: null prototype] { default: { named, default: null }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default: null }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default: null }, [Module] } |
[Module: null prototype] { [__esModule], default: { named, default: null }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { named, default: null }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true ✅ |
false |
true ✅ |
true ✅ |
true ✅ |
false |
false |
false |
false |
named-and-null-default-export-runtime-esModule | babel babel-js parcel webpack-js webpack4 |
esbuild | node node-lts |
rollup | webpack | webpack4-mjs |
---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
null ✅ |
{ [__esModule], named, default: null } |
{ [__esModule], named, default: null } |
null ✅ |
{ [__esModule], named, default: null } |
{ [__esModule], named, default: null } |
import { named as x } |
'named' ✅ |
'named' ✅ |
syntax error 💎 | 'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
true ✅ |
true ✅ |
syntax error 💎 | true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
undefined 💎 |
undefined 💎 |
true ✅ |
true ✅ |
import * as x import() |
{ [__esModule], named, default: null } |
{ default: { [__esModule], named, default: null }, [__esModule]: [G: true], named: [G] } 💎 |
[Module: null prototype] { default: { [__esModule], named, default: null }, [Module] } 💎 |
[Object: null prototype] { default: null, named: [G] } 💎 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named, default: null }, [Module] } 💎 |
[Module: null prototype] { [__esModule], default: { [__esModule], named, default: null }, [Module] } 💎 |
x = require(); x.default x = require(); ident(x).default |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], named, default: null } ✅ |
{ [__esModule], named, default: null } ✅ |
{ [__esModule], named, default: null } ✅ |
{ [__esModule], named, default: null } ✅ |
{ [__esModule], named, default: null } ✅ |
{ [__esModule], named, default: null } ✅ |
await import() === require() |
true ✅ |
false 💎 |
false 💎 |
false 💎 |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
false 💎 |
true ✅ |
true ✅ |
false 💎 |
false 💎 |
named-export | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
import * as x; x.default |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
undefined 💎 |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
import * as x; ident(x).default |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
undefined 💎 |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
undefined 💎 |
{ named } ✅ |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { named, default: { named } } |
{ default: { named }, named: [G] } |
[Module: null prototype] { default: { named }, named, [Module] } |
{ named } |
[Object: null prototype] { default: { named }, named } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named }, [Module] } |
{ named } |
[Module: null prototype] { [__esModule], default: { named }, [Module] } |
import() |
[Object: null prototype] { named, default: { named } } |
{ default: { named }, named: [G] } |
[Module: null prototype] { default: { named }, named, [Module] } |
{ named } |
[Object: null prototype] { default: { named }, named } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named }, [Module] } |
[Module: null prototype] { [__esModule], default: { named }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { named }, [Module] } |
x = require(); x.default x = require(); ident(x).default { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true ✅ |
false |
true ✅ |
true ✅ |
true ✅ |
false |
false |
false |
false |
named-export-esModule | babel babel-js parcel webpack4 |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4-mjs |
---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default |
undefined 🟡 |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
undefined + warnings 💎 |
{ [__esModule], named } ✅ |
import * as x; ident(x).default |
undefined |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
undefined |
{ [__esModule], named } ✅ |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } import * as x; x.__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
true ✅ |
import * as x import() |
{ [__esModule], named } |
{ default: { [__esModule], named }, [__esModule]: [G: true], named: [G] } 💎 |
[Module: null prototype] { __esModule, default: { [__esModule], named }, named, [Module] } 💎 |
[Object: null prototype] { default: { [__esModule], named }, named } 💎 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named }, [Module] } 💎 |
{ [__esModule], named } |
[Module: null prototype] { [__esModule], default: { [__esModule], named }, [Module] } 💎 |
x = require(); x.default x = require(); ident(x).default |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
await import() === require() |
true ✅ |
false 💎 |
false 💎 |
false 💎 |
true ✅ |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
false 💎 |
true ✅ |
true ✅ |
false 💎 |
true ✅ |
false 💎 |
named-export-esm | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } |
undefined |
compilation error | syntax error | compilation error | compilation error | undefined + errors |
undefined + warnings |
undefined + warnings |
undefined + errors |
import * as x; x.default |
undefined |
undefined + warnings |
undefined |
undefined |
undefined + warnings |
undefined + errors 💎 |
undefined + warnings |
undefined + warnings |
undefined + errors 💎 |
import * as x; ident(x).default |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { named as x } import * as x; x.named import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
import { __esModule as x } |
true |
compilation error | syntax error | compilation error | compilation error | true + errors 🟡 |
true + warnings 🟡 |
undefined + warnings 🟡 |
undefined + errors 🟡 |
import * as x; x.__esModule |
true |
undefined + warnings |
undefined |
true |
undefined + warnings |
true + errors 🟡 |
true + warnings 🟡 |
undefined + warnings |
undefined + errors 🟡 |
import * as x; ident(x).__esModule |
true ✅ |
undefined 💎 |
undefined 💎 |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
import * as x |
{ [__esModule], named } 🟡 |
{ named: [G] } 💎 |
[Module: null prototype] { named, [Module] } 🟡 |
{ [__esModule], named: [G] } 💎 |
[Object: null prototype] { named } 💎 |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
import() |
{ [__esModule], named } 🟡 |
{ named: [G] } 💎 |
[Module: null prototype] { named, [Module] } 🟡 |
{ [__esModule], named: [G] } 💎 |
{ named } 💎 |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
x = require(); x.default x = require(); ident(x).default |
undefined ✅ |
undefined ✅ |
require(esm) not allowed 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
require(esm) not allowed 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() |
true ✅ |
true ✅ |
require(esm) not allowed 💎 | compilation error 💎 | true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
require(esm) not allowed 💎 | true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], named } 🟡 |
{ [__esModule], named: [G] } |
require(esm) not allowed 🟡 | { [__esModule], named: [G] } |
{ [__esModule], named: [G] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
{ [__esModule], named: [G], [Module] } |
await import() === require() |
true ✅ |
false 💎 |
require(esm) not allowed 💎 | true ✅ |
false 💎 |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
named-export-non-enumerable | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ [named] } ✅ |
{ [named] } ✅ |
{ [named] } ✅ |
{ [named] } ✅ |
{ [named] } ✅ |
{ [named] } ✅ |
{ [named] } ✅ |
{ [named] } ✅ |
{ [named] } ✅ |
import * as x; x.default |
{ [named] } ✅ |
{ [named] } ✅ |
{ [named] } ✅ |
undefined 💎 |
{ [named] } ✅ |
{ [named] } ✅ |
{ [named] } ✅ |
{ [named] } ✅ |
{ [named] } ✅ |
import * as x; ident(x).default |
{ [named] } ✅ |
{ [named] } ✅ |
{ [named] } ✅ |
undefined 💎 |
{ [named] } ✅ |
{ [named] } ✅ |
{ [named] } ✅ |
undefined 💎 |
{ [named] } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { default: { [named] } } |
{ default: { [named] }, [named]: [G] } 🟡 |
[Module: null prototype] { default: { [named] }, named, [Module] } |
{ [named] } |
[Object: null prototype] { default: { [named] } } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named] }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named] }, [Module] } |
{ [named] } |
[Module: null prototype] { [__esModule], default: { [named] }, [Module] } 🟡 |
import() |
[Object: null prototype] { default: { [named] } } |
{ default: { [named] }, [named]: [G] } 🟡 |
[Module: null prototype] { default: { [named] }, named, [Module] } |
{ [named] } 🟡 |
[Object: null prototype] { default: { [named] } } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named] }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [named] }, [Module] } |
[Module: null prototype] { [__esModule], default: { [named] }, [Module] } |
[Module: null prototype] { [__esModule], default: { [named] }, [Module] } |
x = require(); x.default x = require(); ident(x).default { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true ✅ |
false |
true ✅ |
true ✅ |
true ✅ |
false |
false |
false |
false |
named-export-runtime | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
import * as x; x.default |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
undefined 💎 |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
import * as x; ident(x).default |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
undefined 💎 |
{ named } ✅ |
{ named } ✅ |
undefined 💎 |
undefined 💎 |
{ named } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
syntax error 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { named, default: { named } } |
{ default: { named }, named: [G] } 🟡 |
[Module: null prototype] { default: { named }, [Module] } |
{ named } |
[Object: null prototype] { default: { named }, named: [G] } 🟡 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named }, [Module] } 🟡 |
{ named } |
{ named } |
[Module: null prototype] { [__esModule], default: { named }, [Module] } 🟡 |
import() |
[Object: null prototype] { named, default: { named } } |
{ default: { named }, named: [G] } |
[Module: null prototype] { default: { named }, [Module] } |
{ named } |
[Object: null prototype] { default: { named }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named }, [Module] } |
[Module: null prototype] { [__esModule], default: { named }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { named }, [Module] } |
x = require(); x.default x = require(); ident(x).default { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true ✅ |
false |
true ✅ |
true ✅ |
true ✅ |
false |
false |
false |
false |
named-export-runtime-esModule | babel babel-js parcel webpack-js webpack4 |
esbuild | node node-lts |
rollup | webpack | webpack4-mjs |
---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
undefined |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
syntax error 💎 | 'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
true ✅ |
true ✅ |
syntax error 💎 | true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
undefined 💎 |
undefined 💎 |
true ✅ |
true ✅ |
import * as x import() |
{ [__esModule], named } |
{ default: { [__esModule], named }, [__esModule]: [G: true], named: [G] } 💎 |
[Module: null prototype] { default: { [__esModule], named }, [Module] } 💎 |
[Object: null prototype] { default: { [__esModule], named }, named: [G] } 💎 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { [__esModule], named }, [Module] } 💎 |
[Module: null prototype] { [__esModule], default: { [__esModule], named }, [Module] } 💎 |
x = require(); x.default x = require(); ident(x).default |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
{ [__esModule], named } ✅ |
await import() === require() |
true ✅ |
false 💎 |
false 💎 |
false 💎 |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
false 💎 |
true ✅ |
true ✅ |
false 💎 |
false 💎 |
order | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
import * as x; x.default |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
undefined 💎 |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
import * as x; ident(x).default |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
undefined 💎 |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
{ b, a, c } ✅ |
undefined 💎 |
{ b, a, c } ✅ |
import { named as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).named x = require(); x.default x = require(); ident(x).default { named } = require() x = require(); x.named x = require(); ident(x).named { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { b, a, c, default: { b, a, c } } |
{ default: { b, a, c }, b: [G: 'b'], a: [G: 'a'], c: [G: 'c'] } |
[Module: null prototype] { a, b, c, default: { b, a, c }, [Module] } |
{ b, a, c } |
[Object: null prototype] { a, b, c, default: { b, a, c } } |
[Module: null prototype] { [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], default: [G] { b, a, c }, [Module] } |
[Module: null prototype] { [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], default: [G] { b, a, c }, [Module] } |
{ b, a, c } |
[Module: null prototype] { [__esModule], default: { b, a, c }, [Module] } |
import() |
[Object: null prototype] { b, a, c, default: { b, a, c } } |
{ default: { b, a, c }, b: [G: 'b'], a: [G: 'a'], c: [G: 'c'] } |
[Module: null prototype] { a, b, c, default: { b, a, c }, [Module] } |
{ b, a, c } |
[Object: null prototype] { a, b, c, default: { b, a, c } } |
[Module: null prototype] { [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], default: [G] { b, a, c }, [Module] } |
[Module: null prototype] { [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], default: [G] { b, a, c }, [Module] } |
[Module: null prototype] { [__esModule], default: { b, a, c }, b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], [Module] } |
[Module: null prototype] { [__esModule], default: { b, a, c }, [Module] } |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true ✅ |
false |
true ✅ |
true ✅ |
true ✅ |
false |
false |
false |
false |
order-esModule | babel babel-js parcel webpack4 |
esbuild | node node-lts |
rollup | webpack | webpack-js | webpack4-mjs |
---|---|---|---|---|---|---|---|
import x import { default as x } import * as x; x.default |
undefined 🟡 |
{ [__esModule], b, a, c } ✅ |
{ [__esModule], b, a, c } ✅ |
{ [__esModule], b, a, c } ✅ |
{ [__esModule], b, a, c } ✅ |
undefined + warnings 💎 |
{ [__esModule], b, a, c } ✅ |
import * as x; ident(x).default |
undefined |
{ [__esModule], b, a, c } ✅ |
{ [__esModule], b, a, c } ✅ |
{ [__esModule], b, a, c } ✅ |
{ [__esModule], b, a, c } ✅ |
undefined |
{ [__esModule], b, a, c } ✅ |
import { named as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined + errors 💎 |
import * as x; x.named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined + errors 💎 |
import * as x; ident(x).named x = require(); x.default x = require(); ident(x).default { named } = require() x = require(); x.named x = require(); ident(x).named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } import * as x; x.__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
true ✅ |
import * as x import() |
{ [__esModule], b, a, c } |
{ default: { [__esModule], b, a, c }, [__esModule]: [G: true], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'] } 💎 |
[Module: null prototype] { __esModule, a, b, c, default: { [__esModule], b, a, c }, [Module] } 💎 |
[Object: null prototype] { a, b, c, default: { [__esModule], b, a, c } } 💎 |
[Module: null prototype] { [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], default: [G] { [__esModule], b, a, c }, [Module] } 💎 |
{ [__esModule], b, a, c } |
[Module: null prototype] { [__esModule], default: { [__esModule], b, a, c }, [Module] } 💎 |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], b, a, c } ✅ |
{ [__esModule], b, a, c } ✅ |
{ [__esModule], b, a, c } ✅ |
{ [__esModule], b, a, c } ✅ |
{ [__esModule], b, a, c } ✅ |
{ [__esModule], b, a, c } ✅ |
{ [__esModule], b, a, c } ✅ |
await import() === require() |
true ✅ |
false 💎 |
false 💎 |
false 💎 |
true ✅ |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
false 💎 |
true ✅ |
true ✅ |
false 💎 |
true ✅ |
false 💎 |
order-esm | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } import { named as x } |
undefined |
compilation error | syntax error | compilation error | compilation error | undefined + errors |
undefined + warnings |
undefined + warnings |
undefined + errors |
import * as x; x.default import * as x; x.named |
undefined |
undefined + warnings |
undefined |
undefined |
undefined + warnings |
undefined + errors 💎 |
undefined + warnings |
undefined + warnings |
undefined + errors 💎 |
import * as x; ident(x).default import * as x; ident(x).named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } |
true |
compilation error | syntax error | compilation error | compilation error | true + errors 🟡 |
true + warnings 🟡 |
undefined + warnings 🟡 |
undefined + errors 🟡 |
import * as x; x.__esModule |
true |
undefined + warnings |
undefined |
true |
undefined + warnings |
true + errors 🟡 |
true + warnings 🟡 |
undefined + warnings |
undefined + errors 🟡 |
import * as x; ident(x).__esModule |
true ✅ |
undefined 💎 |
undefined 💎 |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
import * as x |
{ [__esModule], a, b, c } |
{ a: [G: 'a'], b: [G: 'b'], c: [G: 'c'] } |
[Module: null prototype] { a, b, c, [Module] } |
{ [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'] } |
[Object: null prototype] { a, b, c } |
{ [__esModule], a: [G: 'a'], b: [G: 'b'], c: [G: 'c'], [Module] } |
{ [__esModule], a: [G: 'a'], b: [G: 'b'], c: [G: 'c'], [Module] } |
{ [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], [Module] } |
{ [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], [Module] } |
import() |
{ [__esModule], a, b, c } |
{ a: [G: 'a'], b: [G: 'b'], c: [G: 'c'] } |
[Module: null prototype] { a, b, c, [Module] } |
{ [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'] } |
{ a, b, c } |
{ [__esModule], a: [G: 'a'], b: [G: 'b'], c: [G: 'c'], [Module] } |
{ [__esModule], a: [G: 'a'], b: [G: 'b'], c: [G: 'c'], [Module] } |
{ [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], [Module] } |
{ [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], [Module] } |
x = require(); x.default x = require(); ident(x).default x = require(); x.named x = require(); ident(x).named |
undefined ✅ |
undefined ✅ |
require(esm) not allowed 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ named } = require() |
undefined ✅ |
undefined ✅ |
require(esm) not allowed 💎 | compilation error 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ __esModule } = require() |
true ✅ |
true ✅ |
require(esm) not allowed 💎 | compilation error 💎 | true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
require(esm) not allowed 💎 | true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ [__esModule], a, b, c } |
{ [__esModule], a: [G: 'a'], b: [G: 'b'], c: [G: 'c'] } |
require(esm) not allowed | { [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'] } |
{ [__esModule], a: [G: 'a'], b: [G: 'b'], c: [G: 'c'] } |
{ [__esModule], a: [G: 'a'], b: [G: 'b'], c: [G: 'c'], [Module] } |
{ [__esModule], a: [G: 'a'], b: [G: 'b'], c: [G: 'c'], [Module] } |
{ [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], [Module] } |
{ [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'], [Module] } |
await import() === require() |
true ✅ |
false 💎 |
require(esm) not allowed 💎 | true ✅ |
false 💎 |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
require-circular | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } + warnings 💎 |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
import * as x; x.default |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
'default' 💎 |
{ default, named } + warnings 💎 |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
import * as x; ident(x).default |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
'default' 💎 |
{ default, named } + warnings 💎 |
{ default, named } ✅ |
{ default, named } ✅ |
'default' 💎 |
{ default, named } ✅ |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' + warnings 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' + warnings 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined |
undefined |
syntax error 💎 | undefined |
undefined + warnings 💎 |
true + errors 💎 |
true + warnings 💎 |
undefined |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + warnings 💎 |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + warnings 💎 |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { named, default: { default, named } } |
{ default: { default, named }, named: [G] } |
[Module: null prototype] { default: { default, named }, named, [Module] } |
{ default, named } |
[Object: null prototype] { default: { default, named }, named: [G] } + warnings |
[Module: null prototype] { [__esModule], default: [G] { default, named }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: [G] { default, named }, named: [G], [Module] } |
{ default, named } |
[Module: null prototype] { [__esModule], default: { default, named }, [Module] } |
import() |
[Object: null prototype] { named, default: { default, named } } |
{ default: { default, named }, named: [G] } |
[Module: null prototype] { default: { default, named }, named, [Module] } |
{ default, named } |
[Object: null prototype] { default: { default, named }, named: [G] } + warnings |
[Module: null prototype] { [__esModule], default: [G] { default, named }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: [G] { default, named }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { default, named }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { default, named }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' + warnings 💎 |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' + warnings 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + warnings 💎 |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false + warnings 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
false |
true |
true |
true + warnings 💎 |
false |
false |
false |
false |
require-circular-self | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } + warnings 💎 |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
import * as x; x.default |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
'default' 💎 |
{ default, named } + warnings 💎 |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
import * as x; ident(x).default |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
'default' 💎 |
{ default, named } + warnings 💎 |
{ default, named } ✅ |
{ default, named } ✅ |
'default' 💎 |
{ default, named } ✅ |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' + warnings 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' + warnings 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined |
undefined |
syntax error 💎 | undefined |
undefined + warnings 💎 |
true + errors 💎 |
true + warnings 💎 |
undefined |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + warnings 💎 |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + warnings 💎 |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { named, default: { default, named } } |
{ default: { default, named }, named: [G] } |
[Module: null prototype] { default: { default, named }, named, [Module] } |
{ default, named } |
[Object: null prototype] { default: { default, named }, named: [G] } + warnings |
[Module: null prototype] { [__esModule], default: [G] { default, named }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: [G] { default, named }, named: [G], [Module] } |
{ default, named } |
[Module: null prototype] { [__esModule], default: { default, named }, [Module] } |
import() |
[Object: null prototype] { named, default: { default, named } } |
{ default: { default, named }, named: [G] } |
[Module: null prototype] { default: { default, named }, named, [Module] } |
{ default, named } |
[Object: null prototype] { default: { default, named }, named: [G] } + warnings |
[Module: null prototype] { [__esModule], default: [G] { default, named }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: [G] { default, named }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { default, named }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { default, named }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' + warnings 💎 |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' + warnings 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + warnings 💎 |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false + warnings 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
false |
true |
true |
true + warnings 💎 |
false |
false |
false |
false |
require-conditional-execution | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
import * as x; x.default |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
'default' 💎 |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
import * as x; ident(x).default |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
'default' 💎 |
{ default, named } ✅ |
{ default, named } ✅ |
{ default, named } ✅ |
'default' 💎 |
{ default, named } ✅ |
import { named as x } import * as x; x.named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true + errors 💎 |
true + warnings 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { named, default: { default, named } } |
{ default: { default, named }, named: [G] } |
[Module: null prototype] { default: { default, named }, named, [Module] } |
{ default, named } |
[Object: null prototype] { default: { default, named }, named: [G] } |
[Module: null prototype] { [__esModule], default: [G] { default, named }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: [G] { default, named }, named: [G], [Module] } |
{ default, named } |
[Module: null prototype] { [__esModule], default: { default, named }, [Module] } |
import() |
[Object: null prototype] { named, default: { default, named } } |
{ default: { default, named }, named: [G] } |
[Module: null prototype] { default: { default, named }, named, [Module] } |
{ default, named } |
[Object: null prototype] { default: { default, named }, named: [G] } |
[Module: null prototype] { [__esModule], default: [G] { default, named }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: [G] { default, named }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { default, named }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { default, named }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true ✅ |
false |
true ✅ |
true ✅ |
true ✅ |
false |
false |
false |
false |
single-class-export | babel babel-js rollup |
esbuild | node | parcel | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
<ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } } ✅ |
<ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } } ✅ |
<ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } } ✅ |
<ref *1> { [class (anonymous)] [length]: 0, [name]: '', [prototype]: { [constructor]: [Circular *1] } } 💎 |
<ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } } ✅ |
<ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } } ✅ |
<ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } } ✅ |
<ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } } ✅ |
import * as x; x.default |
<ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } } ✅ |
<ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } } ✅ |
<ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } } ✅ |
undefined 💎 |
<ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } } ✅ |
<ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } } ✅ |
<ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } } ✅ |
<ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } } ✅ |
import * as x; ident(x).default |
<ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } } ✅ |
<ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } } ✅ |
<ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } } ✅ |
undefined 💎 |
<ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } } ✅ |
undefined 💎 |
undefined 💎 |
<ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } } ✅ |
import { named as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).named x = require(); x.default x = require(); ident(x).default { named } = require() x = require(); x.named x = require(); ident(x).named { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { default: <ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } } } |
Function { default: <ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } }, [length]: [G: 0], [name]: [G: 'TheClass'], [prototype]: [G] <ref *2> { [constructor]: <ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: [Circular *2] } } } 🟡 |
[Module: null prototype] { default: <ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } }, [Module] } 🟡 |
<ref *1> { [class (anonymous)] [length]: 0, [name]: '', [prototype]: { [constructor]: [Circular *1] } } 🟡 |
[Module: null prototype] { [__esModule], default: [G: <Inspection threw>], [Module] } 🟡 |
<ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } } |
<ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } } |
[Module: null prototype] { [__esModule], default: <ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } }, [Module] } 🟡 |
import() |
[Object: null prototype] { default: <ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } } } |
Function { default: <ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } }, [length]: [G: 0], [name]: [G: 'TheClass'], [prototype]: [G] <ref *2> { [constructor]: <ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: [Circular *2] } } } 🟡 |
[Module: null prototype] { default: <ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } }, [Module] } 🟡 |
<ref *1> { [class (anonymous)] [length]: 0, [name]: '', [prototype]: { [constructor]: [Circular *1] } } 🟡 |
[Module: null prototype] { [__esModule], default: [G: <Inspection threw>], [Module] } |
[Module: null prototype] { [__esModule], default: [G: <Inspection threw>], [Module] } |
[Module: null prototype] { [__esModule], default: <ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } }, [Module] } |
[Module: null prototype] { [__esModule], default: <ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } }, [Module] } |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
false |
true |
true |
false |
false |
false |
false |
single-empty-string-export | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
'' ✅ |
'' ✅ |
'' ✅ |
'' ✅ |
'' ✅ |
'' ✅ |
'' ✅ |
'' ✅ |
'' ✅ |
import * as x; x.default |
'' ✅ |
'' ✅ |
'' ✅ |
undefined 💎 |
'' ✅ |
'' ✅ |
'' ✅ |
'' ✅ |
'' ✅ |
import * as x; ident(x).default |
'' ✅ |
'' ✅ |
'' ✅ |
undefined 💎 |
'' ✅ |
'' ✅ |
undefined 💎 |
undefined 💎 |
'' ✅ |
import { named as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).named x = require(); x.default x = require(); ident(x).default { named } = require() x = require(); x.named x = require(); ident(x).named { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
{ default: '' } |
String { default: '' } 🟡 |
[Module: null prototype] { default: '', [Module] } |
'' |
[Object: null prototype] { default: '' } 🟡 |
[Module: null prototype] { [__esModule], default: [G: ''], [Module] } 🟡 |
'' |
'' |
[Module: null prototype] { [__esModule], default: '', [Module] } 🟡 |
import() |
{ default: '' } |
String { default: '' } |
[Module: null prototype] { default: '', [Module] } |
'' |
[Object: null prototype] { default: '' } |
[Module: null prototype] { [__esModule], default: [G: ''], [Module] } |
[Module: null prototype] { [__esModule], default: [G: ''], [Module] } |
[Module: null prototype] { [__esModule], default: '', [Module] } |
[Module: null prototype] { [__esModule], default: '', [Module] } |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
false ✅ |
false ✅ |
true 💎 |
true 💎 |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
single-function-export | babel rollup |
babel-js | esbuild | node | parcel | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
<ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [prototype]: { [constructor]: [Circular *1] } } 💎 |
<ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } ✅ |
<ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } ✅ |
<ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } ✅ |
<ref *1> { [Function (anonymous)] [length]: 0, [name]: '', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } 💎 |
<ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } ✅ |
<ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } ✅ |
<ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } ✅ |
<ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } ✅ |
import * as x; x.default |
<ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [prototype]: { [constructor]: [Circular *1] } } 💎 |
<ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } ✅ |
<ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } ✅ |
<ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } ✅ |
undefined 💎 |
<ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } ✅ |
<ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } ✅ |
<ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } ✅ |
<ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } ✅ |
import * as x; ident(x).default |
<ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [prototype]: { [constructor]: [Circular *1] } } 💎 |
<ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } |
<ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } |
<ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } |
undefined 🟡 |
<ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } |
undefined 🟡 |
undefined 🟡 |
<ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } |
import { named as x } |
undefined ✅ |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).named x = require(); x.default x = require(); ident(x).default { named } = require() x = require(); x.named x = require(); ident(x).named { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { default: <ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [prototype]: { [constructor]: [Circular *1] } } } |
[Object: null prototype] { default: <ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } } |
Function { default: <ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } }, [length]: [G: 0], [name]: [G: 'theFunction'], [arguments]: [G: null], [caller]: [G: null], [prototype]: [G] <ref *2> { [constructor]: <ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: [Circular *2] } } } |
[Module: null prototype] { default: <ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } }, [Module] } |
<ref *1> { [Function (anonymous)] [length]: 0, [name]: '', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } |
[Module: null prototype] { [__esModule], default: [G: <Inspection threw>], [Module] } |
<ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } |
<ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } |
[Module: null prototype] { [__esModule], default: <ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } }, [Module] } |
import() |
[Object: null prototype] { default: <ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [prototype]: { [constructor]: [Circular *1] } } } |
[Object: null prototype] { default: <ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } } |
Function { default: <ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } }, [length]: [G: 0], [name]: [G: 'theFunction'], [arguments]: [G: null], [caller]: [G: null], [prototype]: [G] <ref *2> { [constructor]: <ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: [Circular *2] } } } |
[Module: null prototype] { default: <ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } }, [Module] } |
<ref *1> { [Function (anonymous)] [length]: 0, [name]: '', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } |
[Module: null prototype] { [__esModule], default: [G: <Inspection threw>], [Module] } |
[Module: null prototype] { [__esModule], default: [G: <Inspection threw>], [Module] } |
[Module: null prototype] { [__esModule], default: <ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } }, [Module] } |
[Module: null prototype] { [__esModule], default: <ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } }, [Module] } |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
true |
false |
true |
true |
false |
false |
false |
false |
single-null-export | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
import * as x; x.default |
null ✅ |
null ✅ |
null ✅ |
type error 💎 | null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
import * as x; ident(x).default |
null ✅ |
null ✅ |
null ✅ |
undefined 💎 |
null ✅ |
null ✅ |
undefined 💎 |
undefined 💎 |
null ✅ |
import { named as x } |
type error ✅ | undefined 💎 |
syntax error 💎 | type error ✅ | type error ✅ | type error ✅ | type error ✅ | type error ✅ | undefined + errors 💎 |
import * as x; x.named |
undefined |
undefined |
undefined |
type error | type error | type error | type error | type error | undefined + errors 💎 |
import * as x; ident(x).named x = require(); ident(x).default x = require(); ident(x).named x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } |
type error | undefined 💎 |
syntax error 💎 | type error | type error | true 💎 |
true 💎 |
type error | undefined + errors 💎 |
import * as x; x.__esModule |
undefined |
undefined |
undefined |
type error 🟡 | type error 🟡 | true 💎 |
true 💎 |
type error 🟡 | undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
{ default: null } |
{ default: null } |
[Module: null prototype] { default: null, [Module] } |
null |
[Object: null prototype] { default: null } 🟡 |
[Module: null prototype] { [__esModule], default: [G: null], [Module] } 🟡 |
null |
null |
[Module: null prototype] { [__esModule], default: null, [Module] } 🟡 |
import() |
{ default: null } |
{ default: null } |
[Module: null prototype] { default: null, [Module] } |
null 🟡 |
[Object: null prototype] { default: null } 🟡 |
[Module: null prototype] { [__esModule], default: [G: null], [Module] } |
[Module: null prototype] { [__esModule], default: [G: null], [Module] } |
[Module: null prototype] { [__esModule], default: null, [Module] } |
[Module: null prototype] { [__esModule], default: null, [Module] } |
x = require(); x.default { named } = require() x = require(); x.named { __esModule } = require() x = require(); x.__esModule |
type error ✅ | type error ✅ | type error ✅ | type error ✅ | type error ✅ | type error ✅ | type error ✅ | type error ✅ | type error ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
false ✅ |
false ✅ |
true 💎 |
true 💎 |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
single-object-export | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
import * as x; x.default |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
undefined 💎 |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
import * as x; ident(x).default |
{ named } ✅ |
{ named } ✅ |
{ named } ✅ |
undefined 💎 |
{ named } ✅ |
{ named } ✅ |
undefined 💎 |
undefined 💎 |
{ named } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
syntax error 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { named, default: { named } } |
{ default: { named }, named: [G] } 🟡 |
[Module: null prototype] { default: { named }, [Module] } |
{ named } |
[Object: null prototype] { default: { named }, named: [G] } 🟡 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named }, [Module] } 🟡 |
{ named } |
{ named } |
[Module: null prototype] { [__esModule], default: { named }, [Module] } 🟡 |
import() |
[Object: null prototype] { named, default: { named } } |
{ default: { named }, named: [G] } |
[Module: null prototype] { default: { named }, [Module] } |
{ named } |
[Object: null prototype] { default: { named }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named }, [Module] } |
[Module: null prototype] { [__esModule], default: { named }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { named }, [Module] } |
x = require(); x.default x = require(); ident(x).default { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true ✅ |
false |
true ✅ |
true ✅ |
true ✅ |
false |
false |
false |
false |
single-object-with-default-export | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
import * as x; x.default |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
import * as x; ident(x).default |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
'default' 💎 |
{ named, default } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
syntax error 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { named, default: { named, default } } |
{ default: { named, default }, named: [G] } 🟡 |
[Module: null prototype] { default: { named, default }, [Module] } |
{ named, default } |
[Object: null prototype] { default: { named, default }, named: [G] } 🟡 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } 🟡 |
{ named, default } |
{ named, default } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } 🟡 |
import() |
[Object: null prototype] { named, default: { named, default } } |
{ default: { named, default }, named: [G] } |
[Module: null prototype] { default: { named, default }, [Module] } |
{ named, default } |
[Object: null prototype] { default: { named, default }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true ✅ |
false |
true ✅ |
true ✅ |
true ✅ |
false |
false |
false |
false |
single-object-with-default-export-duplicate | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
import * as x; x.default |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
import * as x; ident(x).default |
{ named, default } ✅ |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
{ named, default } ✅ |
{ named, default } ✅ |
'default' 💎 |
'default' 💎 |
{ named, default } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
syntax error 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { named, default: { named, default } } |
{ default: { named, default }, named: [G] } 🟡 |
[Module: null prototype] { default: { named, default }, [Module] } |
{ named, default } |
[Object: null prototype] { default: { named, default }, named: [G] } 🟡 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } 🟡 |
{ named, default } |
{ named, default } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } 🟡 |
import() |
[Object: null prototype] { named, default: { named, default } } |
{ default: { named, default }, named: [G] } |
[Module: null prototype] { default: { named, default }, [Module] } |
{ named, default } |
[Object: null prototype] { default: { named, default }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default }, [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { named, default }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
'default' ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true ✅ |
false |
true ✅ |
true ✅ |
true ✅ |
false |
false |
false |
false |
single-object-with-null-default-export | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
import * as x; x.default |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
null 💎 |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
import * as x; ident(x).default |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
null 💎 |
{ named, default: null } ✅ |
{ named, default: null } ✅ |
null 💎 |
null 💎 |
{ named, default: null } ✅ |
import { named as x } |
'named' ✅ |
'named' ✅ |
syntax error 💎 | 'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; x.named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined + errors 💎 |
import * as x; ident(x).named |
'named' ✅ |
'named' ✅ |
undefined 💎 |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
undefined 💎 |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { named, default: { named, default: null } } |
{ default: { named, default: null }, named: [G] } 🟡 |
[Module: null prototype] { default: { named, default: null }, [Module] } |
{ named, default: null } |
[Object: null prototype] { default: { named, default: null }, named: [G] } 🟡 |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default: null }, [Module] } 🟡 |
{ named, default: null } |
{ named, default: null } |
[Module: null prototype] { [__esModule], default: { named, default: null }, [Module] } 🟡 |
import() |
[Object: null prototype] { named, default: { named, default: null } } |
{ default: { named, default: null }, named: [G] } |
[Module: null prototype] { default: { named, default: null }, [Module] } |
{ named, default: null } |
[Object: null prototype] { default: { named, default: null }, named: [G] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default: null }, [Module] } |
[Module: null prototype] { [__esModule], named: [G], default: [G] { named, default: null }, [Module] } |
[Module: null prototype] { [__esModule], default: { named, default: null }, named: [G], [Module] } |
[Module: null prototype] { [__esModule], default: { named, default: null }, [Module] } |
x = require(); x.default x = require(); ident(x).default |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
null ✅ |
{ named } = require() x = require(); x.named x = require(); ident(x).named |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
'named' ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true ✅ |
false |
true ✅ |
true ✅ |
true ✅ |
false |
false |
false |
false |
single-promise-object-export | babel babel-js rollup |
esbuild | node node-lts |
parcel | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
Promise { { named } } ✅ |
Promise { { named } } ✅ |
Promise { { named } } ✅ |
Promise { { named } } ✅ |
Promise { { named } } ✅ |
Promise { { named } } ✅ |
Promise { { named } } ✅ |
Promise { { named } } ✅ |
import * as x; x.default |
Promise { { named } } ✅ |
Promise { { named } } ✅ |
Promise { { named } } ✅ |
undefined 💎 |
Promise { { named } } ✅ |
Promise { { named } } ✅ |
Promise { { named } } ✅ |
Promise { { named } } ✅ |
import * as x; ident(x).default |
Promise { { named } } ✅ |
Promise { { named } } ✅ |
Promise { { named } } ✅ |
undefined 💎 |
Promise { { named } } ✅ |
undefined 💎 |
undefined 💎 |
Promise { { named } } ✅ |
import { named as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).named x = require(); x.default x = require(); ident(x).default { named } = require() x = require(); x.named x = require(); ident(x).named { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { default: Promise { { named } } } |
Promise { default: Promise { { named } } } 🟡 |
[Module: null prototype] { default: Promise { { named } }, [Module] } |
Promise { { named } } |
[Module: null prototype] { [__esModule], constructor: [G: <Inspection threw>], then: [G: <Inspection threw>], catch: [G: <Inspection threw>], finally: [G: <Inspection threw>], default: [G] Promise { { named } }, [Module] } 🟡 |
Promise { { named } } |
Promise { { named } } |
[Module: null prototype] { [__esModule], default: Promise { { named } }, [Module] } 🟡 |
import() |
[Object: null prototype] { default: Promise { { named } } } |
type error 🟡 | [Module: null prototype] { default: Promise { { named } }, [Module] } |
{ named } |
{ named } |
{ named } |
[Module: null prototype] { [__esModule], default: Promise { { named } }, [Module] } |
[Module: null prototype] { [__esModule], default: Promise { { named } }, [Module] } |
await import() === require() |
false ✅ |
type error 💎 | false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
type error 💎 | true |
false |
false |
false |
false |
false |
single-promise-object-with-default-export | babel babel-js rollup |
esbuild | node node-lts |
parcel | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
Promise { { named, default } } ✅ |
Promise { { named, default } } ✅ |
Promise { { named, default } } ✅ |
Promise { { named, default } } ✅ |
Promise { { named, default } } ✅ |
Promise { { named, default } } ✅ |
Promise { { named, default } } ✅ |
Promise { { named, default } } ✅ |
import * as x; x.default |
Promise { { named, default } } ✅ |
Promise { { named, default } } ✅ |
Promise { { named, default } } ✅ |
undefined 💎 |
Promise { { named, default } } ✅ |
Promise { { named, default } } ✅ |
Promise { { named, default } } ✅ |
Promise { { named, default } } ✅ |
import * as x; ident(x).default |
Promise { { named, default } } ✅ |
Promise { { named, default } } ✅ |
Promise { { named, default } } ✅ |
undefined 💎 |
Promise { { named, default } } ✅ |
undefined 💎 |
undefined 💎 |
Promise { { named, default } } ✅ |
import { named as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).named x = require(); x.default x = require(); ident(x).default { named } = require() x = require(); x.named x = require(); ident(x).named { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { default: Promise { { named, default } } } |
Promise { default: Promise { { named, default } } } 🟡 |
[Module: null prototype] { default: Promise { { named, default } }, [Module] } |
Promise { { named, default } } |
[Module: null prototype] { [__esModule], constructor: [G: <Inspection threw>], then: [G: <Inspection threw>], catch: [G: <Inspection threw>], finally: [G: <Inspection threw>], default: [G] Promise { { named, default } }, [Module] } 🟡 |
Promise { { named, default } } |
Promise { { named, default } } |
[Module: null prototype] { [__esModule], default: Promise { { named, default } }, [Module] } 🟡 |
import() |
[Object: null prototype] { default: Promise { { named, default } } } |
type error 🟡 | [Module: null prototype] { default: Promise { { named, default } }, [Module] } |
{ named, default } |
{ named, default } |
{ named, default } |
[Module: null prototype] { [__esModule], default: Promise { { named, default } }, [Module] } |
[Module: null prototype] { [__esModule], default: Promise { { named, default } }, [Module] } |
await import() === require() |
false ✅ |
type error 💎 | false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
type error 💎 | true |
false |
false |
false |
false |
false |
single-promise-string-export | babel babel-js rollup |
esbuild | node node-lts |
parcel | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
Promise { 'single' } ✅ |
Promise { 'single' } ✅ |
Promise { 'single' } ✅ |
Promise { 'single' } ✅ |
Promise { 'single' } ✅ |
Promise { 'single' } ✅ |
Promise { 'single' } ✅ |
Promise { 'single' } ✅ |
import * as x; x.default |
Promise { 'single' } ✅ |
Promise { 'single' } ✅ |
Promise { 'single' } ✅ |
undefined 💎 |
Promise { 'single' } ✅ |
Promise { 'single' } ✅ |
Promise { 'single' } ✅ |
Promise { 'single' } ✅ |
import * as x; ident(x).default |
Promise { 'single' } ✅ |
Promise { 'single' } ✅ |
Promise { 'single' } ✅ |
undefined 💎 |
Promise { 'single' } ✅ |
undefined 💎 |
undefined 💎 |
Promise { 'single' } ✅ |
import { named as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).named x = require(); x.default x = require(); ident(x).default { named } = require() x = require(); x.named x = require(); ident(x).named { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
[Object: null prototype] { default: Promise { 'single' } } |
Promise { default: Promise { 'single' } } 🟡 |
[Module: null prototype] { default: Promise { 'single' }, [Module] } |
Promise { 'single' } |
[Module: null prototype] { [__esModule], constructor: [G: <Inspection threw>], then: [G: <Inspection threw>], catch: [G: <Inspection threw>], finally: [G: <Inspection threw>], default: [G] Promise { 'single' }, [Module] } 🟡 |
Promise { 'single' } |
Promise { 'single' } |
[Module: null prototype] { [__esModule], default: Promise { 'single' }, [Module] } 🟡 |
import() |
[Object: null prototype] { default: Promise { 'single' } } |
type error 🟡 | [Module: null prototype] { default: Promise { 'single' }, [Module] } |
'single' |
'single' |
'single' |
[Module: null prototype] { [__esModule], default: Promise { 'single' }, [Module] } |
[Module: null prototype] { [__esModule], default: Promise { 'single' }, [Module] } |
await import() === require() |
false ✅ |
type error 💎 | false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
true |
type error 💎 | true |
false |
false |
false |
false |
false |
single-string-export | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
import * as x; x.default |
'single' ✅ |
'single' ✅ |
'single' ✅ |
undefined 💎 |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
import * as x; ident(x).default |
'single' ✅ |
'single' ✅ |
'single' ✅ |
undefined 💎 |
'single' ✅ |
'single' ✅ |
undefined 💎 |
undefined 💎 |
'single' ✅ |
import { named as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).named x = require(); x.default x = require(); ident(x).default { named } = require() x = require(); x.named x = require(); ident(x).named { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
{ default: 'single' } |
String { default: 'single' } 🟡 |
[Module: null prototype] { default: 'single', [Module] } |
'single' |
[Object: null prototype] { default: 'single' } 🟡 |
[Module: null prototype] { [__esModule], default: [G: 'single'], [Module] } 🟡 |
'single' |
'single' |
[Module: null prototype] { [__esModule], default: 'single', [Module] } 🟡 |
import() |
{ default: 'single' } |
String { default: 'single' } |
[Module: null prototype] { default: 'single', [Module] } |
'single' |
[Object: null prototype] { default: 'single' } |
[Module: null prototype] { [__esModule], default: [G: 'single'], [Module] } |
[Module: null prototype] { [__esModule], default: [G: 'single'], [Module] } |
[Module: null prototype] { [__esModule], default: 'single', [Module] } |
[Module: null prototype] { [__esModule], default: 'single', [Module] } |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
false ✅ |
false ✅ |
true 💎 |
true 💎 |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
single-string-export-defined | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
import * as x; x.default |
'single' ✅ |
'single' ✅ |
'single' ✅ |
undefined 💎 |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
import * as x; ident(x).default |
'single' ✅ |
'single' ✅ |
'single' ✅ |
undefined 💎 |
'single' ✅ |
'single' ✅ |
undefined 💎 |
undefined 💎 |
'single' ✅ |
import { named as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).named x = require(); x.default x = require(); ident(x).default { named } = require() x = require(); x.named x = require(); ident(x).named { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
{ default: 'single' } |
String { default: 'single' } 🟡 |
[Module: null prototype] { default: 'single', [Module] } |
'single' |
[Object: null prototype] { default: 'single' } 🟡 |
[Module: null prototype] { [__esModule], default: [G: 'single'], [Module] } 🟡 |
'single' |
'single' |
[Module: null prototype] { [__esModule], default: 'single', [Module] } 🟡 |
import() |
{ default: 'single' } |
String { default: 'single' } |
[Module: null prototype] { default: 'single', [Module] } |
'single' |
[Object: null prototype] { default: 'single' } |
[Module: null prototype] { [__esModule], default: [G: 'single'], [Module] } |
[Module: null prototype] { [__esModule], default: [G: 'single'], [Module] } |
[Module: null prototype] { [__esModule], default: 'single', [Module] } |
[Module: null prototype] { [__esModule], default: 'single', [Module] } |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
false ✅ |
false ✅ |
true 💎 |
true 💎 |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
single-string-export-duplicate | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
import * as x; x.default |
'single' ✅ |
'single' ✅ |
'single' ✅ |
undefined 💎 |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
import * as x; ident(x).default |
'single' ✅ |
'single' ✅ |
'single' ✅ |
undefined 💎 |
'single' ✅ |
'single' ✅ |
undefined 💎 |
undefined 💎 |
'single' ✅ |
import { named as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).named x = require(); x.default x = require(); ident(x).default { named } = require() x = require(); x.named x = require(); ident(x).named { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
{ default: 'single' } |
String { default: 'single' } 🟡 |
[Module: null prototype] { default: 'single', [Module] } |
'single' |
[Object: null prototype] { default: 'single' } 🟡 |
[Module: null prototype] { [__esModule], default: [G: 'single'], [Module] } 🟡 |
'single' |
'single' |
[Module: null prototype] { [__esModule], default: 'single', [Module] } 🟡 |
import() |
{ default: 'single' } |
String { default: 'single' } |
[Module: null prototype] { default: 'single', [Module] } |
'single' |
[Object: null prototype] { default: 'single' } |
[Module: null prototype] { [__esModule], default: [G: 'single'], [Module] } |
[Module: null prototype] { [__esModule], default: [G: 'single'], [Module] } |
[Module: null prototype] { [__esModule], default: 'single', [Module] } |
[Module: null prototype] { [__esModule], default: 'single', [Module] } |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
false ✅ |
false ✅ |
true 💎 |
true 💎 |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
single-string-export-esm-reexport | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 webpack4-mjs |
---|---|---|---|---|---|---|---|---|
import x import { default as x } |
undefined |
undefined |
syntax error 💎 | compilation error 💎 | compilation error 💎 | undefined + errors 💎 |
undefined + warnings 💎 |
undefined |
import * as x; x.default |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + warnings 💎 |
undefined + errors 💎 |
undefined + warnings 💎 |
undefined ✅ |
import * as x; ident(x).default import * as x; x.named import * as x; ident(x).named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { named as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } |
true |
undefined |
syntax error 💎 | true |
undefined |
true |
true |
undefined |
import * as x; x.__esModule |
true |
undefined ✅ |
undefined ✅ |
true |
undefined ✅ |
true |
true |
undefined ✅ |
import * as x; ident(x).__esModule |
true ✅ |
undefined 💎 |
undefined 💎 |
true ✅ |
undefined 💎 |
true ✅ |
true ✅ |
true ✅ |
import * as x |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule] } |
{} 🟡 |
[Module: null prototype] { [Module] } |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule] } |
[Object: null prototype] {} 🟡 |
{ [__esModule], [Module] } |
{ [__esModule], [Module] } |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule], [Module] } |
import() |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule] } |
{} 🟡 |
[Module: null prototype] { [Module] } 🟡 |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule] } |
{} 🟡 |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule], [Module] } |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule], [Module] } |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule], [Module] } |
x = require(); x.default x = require(); ident(x).default { named } = require() x = require(); x.named x = require(); ident(x).named |
undefined ✅ |
undefined ✅ |
require(esm) not allowed 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
{ __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
true ✅ |
true ✅ |
require(esm) not allowed 💎 | true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
x = require() |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule] } |
{ [__esModule] } 🟡 |
require(esm) not allowed 🟡 | { '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule] } |
{ [__esModule] } 🟡 |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule], [Module] } |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule], [Module] } |
{ '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule], [Module] } |
await import() === require() |
true ✅ |
false 💎 |
require(esm) not allowed 💎 | true ✅ |
false 💎 |
true ✅ |
true ✅ |
true ✅ |
import * as x; x === await import() |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
true ✅ |
single-string-export-getter | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
import * as x; x.default |
'single' ✅ |
'single' ✅ |
'single' ✅ |
undefined 💎 |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
import * as x; ident(x).default |
'single' ✅ |
'single' ✅ |
'single' ✅ |
undefined 💎 |
'single' ✅ |
'single' ✅ |
undefined 💎 |
undefined 💎 |
'single' ✅ |
import { named as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).named x = require(); x.default x = require(); ident(x).default { named } = require() x = require(); x.named x = require(); ident(x).named { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
{ default: 'single' } |
String { default: 'single' } 🟡 |
[Module: null prototype] { default: 'single', [Module] } |
'single' |
[Object: null prototype] { default: 'single' } 🟡 |
[Module: null prototype] { [__esModule], default: [G: 'single'], [Module] } 🟡 |
'single' |
'single' |
[Module: null prototype] { [__esModule], default: 'single', [Module] } 🟡 |
import() |
{ default: 'single' } |
String { default: 'single' } |
[Module: null prototype] { default: 'single', [Module] } |
'single' |
[Object: null prototype] { default: 'single' } |
[Module: null prototype] { [__esModule], default: [G: 'single'], [Module] } |
[Module: null prototype] { [__esModule], default: [G: 'single'], [Module] } |
[Module: null prototype] { [__esModule], default: 'single', [Module] } |
[Module: null prototype] { [__esModule], default: 'single', [Module] } |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
false ✅ |
false ✅ |
true 💎 |
true 💎 |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
single-string-export-live | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
'single-outdated' ✅ |
'single-outdated' ✅ |
'single-outdated' ✅ |
'single-outdated' ✅ |
'single-outdated' ✅ |
'single-outdated' ✅ |
'single-outdated' ✅ |
'single-outdated' ✅ |
'single-outdated' ✅ |
import * as x; x.default |
'single-outdated' ✅ |
'single-outdated' ✅ |
'single-outdated' ✅ |
undefined 💎 |
'single-outdated' ✅ |
'single-outdated' ✅ |
'single-outdated' ✅ |
'single-outdated' ✅ |
'single-outdated' ✅ |
import * as x; ident(x).default |
'single-outdated' ✅ |
'single-outdated' ✅ |
'single-outdated' ✅ |
undefined 💎 |
'single-outdated' ✅ |
'single-outdated' ✅ |
undefined 💎 |
undefined 💎 |
'single-outdated' ✅ |
import { named as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).named x = require(); x.default x = require(); ident(x).default { named } = require() x = require(); x.named x = require(); ident(x).named { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
{ default: 'single-outdated' } |
String { default: 'single-outdated' } 🟡 |
[Module: null prototype] { default: 'single-outdated', [Module] } |
'single-outdated' |
[Object: null prototype] { default: 'single-outdated' } 🟡 |
[Module: null prototype] { [__esModule], default: [G: 'single-outdated'], [Module] } 🟡 |
'single-outdated' |
'single-outdated' |
[Module: null prototype] { [__esModule], default: 'single-outdated', [Module] } 🟡 |
import() |
{ default: 'single-outdated' } |
String { default: 'single-outdated' } |
[Module: null prototype] { default: 'single-outdated', [Module] } |
'single' |
[Object: null prototype] { default: 'single-outdated' } |
[Module: null prototype] { [__esModule], default: [G: 'single-outdated'], [Module] } |
[Module: null prototype] { [__esModule], default: [G: 'single-outdated'], [Module] } |
[Module: null prototype] { [__esModule], default: 'single-outdated', [Module] } |
[Module: null prototype] { [__esModule], default: 'single-outdated', [Module] } |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
false ✅ |
false ✅ |
true 💎 |
true 💎 |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
single-string-export-reexport | babel babel-js |
esbuild | node node-lts |
parcel | rollup | webpack | webpack-js | webpack4 | webpack4-mjs |
---|---|---|---|---|---|---|---|---|---|
import x import { default as x } x = require() |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
import * as x; x.default |
'single' ✅ |
'single' ✅ |
'single' ✅ |
undefined 💎 |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
'single' ✅ |
import * as x; ident(x).default |
'single' ✅ |
'single' ✅ |
'single' ✅ |
undefined 💎 |
'single' ✅ |
'single' ✅ |
undefined 💎 |
undefined 💎 |
'single' ✅ |
import { named as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.named |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).named x = require(); x.default x = require(); ident(x).default { named } = require() x = require(); x.named x = require(); ident(x).named { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
import { __esModule as x } |
undefined ✅ |
undefined ✅ |
syntax error 💎 | undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; x.__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
true 💎 |
undefined ✅ |
undefined + errors 💎 |
import * as x; ident(x).__esModule |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
undefined ✅ |
true 💎 |
undefined ✅ |
undefined ✅ |
true 💎 |
import * as x |
{ default: 'single' } |
String { default: 'single' } 🟡 |
[Module: null prototype] { default: 'single', [Module] } |
'single' |
[Object: null prototype] { default: 'single' } 🟡 |
[Module: null prototype] { [__esModule], default: [G: 'single'], [Module] } 🟡 |
'single' |
'single' |
[Module: null prototype] { [__esModule], default: 'single', [Module] } 🟡 |
import() |
{ default: 'single' } |
String { default: 'single' } |
[Module: null prototype] { default: 'single', [Module] } |
'single' |
[Object: null prototype] { default: 'single' } |
[Module: null prototype] { [__esModule], default: [G: 'single'], [Module] } |
[Module: null prototype] { [__esModule], default: [G: 'single'], [Module] } |
[Module: null prototype] { [__esModule], default: 'single', [Module] } |
[Module: null prototype] { [__esModule], default: 'single', [Module] } |
await import() === require() |
false ✅ |
false ✅ |
false ✅ |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
import * as x; x === await import() |
false ✅ |
false ✅ |
true 💎 |
true 💎 |
true 💎 |
false ✅ |
false ✅ |
false ✅ |
false ✅ |
tla-esModule | babel babel-js node node-lts |
esbuild parcel rollup webpack webpack-js webpack4 webpack4-mjs |
---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default import { named as x } import * as x; x.named import * as x; ident(x).named import { __esModule as x } import * as x; x.__esModule import * as x; ident(x).__esModule import * as x import() x = require(); x.default x = require(); ident(x).default { named } = require() x = require(); x.named x = require(); ident(x).named { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule x = require() await import() === require() import * as x; x === await import() |
syntax error 💎 | compilation error ✅ |
tla-esModule-esm-reexport | babel babel-js |
esbuild parcel rollup webpack webpack-js webpack4 webpack4-mjs |
node node-lts |
---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default import { named as x } import * as x; x.named import * as x; ident(x).named import { __esModule as x } import * as x; x.__esModule import * as x; ident(x).__esModule import * as x import() await import() === require() import * as x; x === await import() |
syntax error 💎 | compilation error ✅ | syntax error 💎 |
x = require(); x.default x = require(); ident(x).default { named } = require() x = require(); x.named x = require(); ident(x).named { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule x = require() |
syntax error 💎 | compilation error ✅ | require(esm) not allowed 💎 |
tla-esm | babel babel-js |
esbuild parcel rollup webpack4 webpack4-mjs |
node node-lts |
webpack | webpack-js |
---|---|---|---|---|---|
import x import { default as x } import * as x; x.default import * as x; ident(x).default |
syntax error 💎 | compilation error | 'default' |
'default' |
'default' |
import { named as x } import * as x; x.named import * as x; ident(x).named |
syntax error 💎 | compilation error | 'named' |
'named' |
'named' |
import { __esModule as x } |
syntax error | compilation error | syntax error | true + errors 💎 |
true + warnings 💎 |
import * as x; x.__esModule |
syntax error 💎 | compilation error | undefined 💎 |
true + errors 💎 |
true + warnings 💎 |
import * as x; ident(x).__esModule |
syntax error 💎 | compilation error | undefined 💎 |
true 💎 |
true 💎 |
import * as x import() |
syntax error 💎 | compilation error | [Module: null prototype] { default, named, [Module] } 💎 |
{ [__esModule], default: [G], named: [G], [Module] } 💎 |
{ [__esModule], default: [G], named: [G], [Module] } 💎 |
x = require(); x.default x = require(); ident(x).default { named } = require() x = require(); x.named x = require(); ident(x).named { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
syntax error 💎 | compilation error | require(esm) not allowed 💎 | undefined 💎 |
undefined 💎 |
x = require() |
syntax error 💎 | compilation 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]: '' } } 💎 |
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() |
syntax error 💎 | compilation error | require(esm) not allowed 💎 | false 💎 |
false 💎 |
import * as x; x === await import() |
syntax error 💎 | compilation error | true |
true |
true |
tla-esm-esm-reexport | babel babel-js |
esbuild parcel rollup webpack4 webpack4-mjs |
node node-lts |
webpack | webpack-js |
---|---|---|---|---|---|
import x import { default as x } |
runtime error 💎 | compilation error | syntax error 💎 | undefined + errors 💎 |
undefined + warnings 💎 |
import * as x; x.default |
runtime error 💎 | compilation error | undefined 💎 |
undefined + errors 💎 |
undefined + warnings 💎 |
import * as x; ident(x).default |
runtime error 💎 | compilation error | undefined |
undefined |
undefined |
import { named as x } import * as x; x.named import * as x; ident(x).named |
runtime error 💎 | compilation error | 'named' |
'named' |
'named' |
import { __esModule as x } |
runtime error 💎 | compilation error | syntax error 💎 | true + errors 💎 |
true + warnings 💎 |
import * as x; x.__esModule |
runtime error 💎 | compilation error | undefined 💎 |
true + errors 💎 |
true + warnings 💎 |
import * as x; ident(x).__esModule |
runtime error 💎 | compilation error | undefined 💎 |
true 💎 |
true 💎 |
import * as x import() |
runtime error 💎 | compilation error | [Module: null prototype] { named, [Module] } 💎 |
{ [__esModule], named: [G], [Module] } 💎 |
{ [__esModule], named: [G], [Module] } 💎 |
x = require(); x.default x = require(); ident(x).default { named } = require() x = require(); x.named x = require(); ident(x).named { __esModule } = require() x = require(); x.__esModule x = require(); ident(x).__esModule |
runtime error 💎 | compilation error | require(esm) not allowed 💎 | undefined 💎 |
undefined 💎 |
x = require() |
runtime error 💎 | compilation error | require(esm) not allowed 💎 | Promise { { [__esModule], named: [G], [Module] }, [Symbol(webpack exports)]: { [__esModule], named: [G], [Module] }, [Symbol(webpack queues)]: { [Function (anonymous)] [length]: 1, [name]: '' } } 💎 |
Promise { { [__esModule], named: [G], [Module] }, [Symbol(webpack exports)]: { [__esModule], named: [G], [Module] }, [Symbol(webpack queues)]: { [Function (anonymous)] [length]: 1, [name]: '' } } 💎 |
await import() === require() |
runtime error 💎 | compilation error | require(esm) not allowed 💎 | false 💎 |
false 💎 |
import * as x; x === await import() |
runtime error 💎 | compilation error | true |
true |
true |