interop-test

ESM-CJS interop test

This project is maintained by sokra

Results by test case

For readablility some shortcuts are applied:

default-export

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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