interop-test

ESM-CJS interop test

This project is maintained by sokra

Direct differences

For readablility some shortcuts are applied:

import * as x and import() are excluded from these tables as they are too different.

Webpack <-> Node.js (.mjs)

When using .mjs Webpack tries to be compatible to Node.js.

webpack-node fixture webpack node
import x

import { default as x }
default-export-esModule-esm-reexport

named-and-default-export-esModule-esm-reexport

named-and-default-export-esm-esm-reexport

named-and-default-export-esm-reexport

named-export-esm

order-esm

single-string-export-esm-reexport

tla-esm-esm-reexport
undefined + errors syntax error
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

await import() === require()

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

tla-esModule-esm-reexport
compilation error syntax error
import * as x; x.default default-export-esModule-esm-reexport

named-and-default-export-esModule-esm-reexport

named-and-default-export-esm-esm-reexport

named-and-default-export-esm-reexport

named-export-esm

order-esm

single-string-export-esm-reexport

tla-esm-esm-reexport
undefined + errors undefined
import { named as x } default-export

default-export-esModule

default-export-esModule-esm-reexport

default-export-esm

order

order-esModule

order-esm
undefined + errors syntax error
import { named as x } default-export-runtime

single-class-export

single-empty-string-export

single-function-export

single-promise-object-export

single-promise-object-with-default-export

single-promise-string-export

single-string-export

single-string-export-defined

single-string-export-duplicate

single-string-export-esm-reexport

single-string-export-getter

single-string-export-live

single-string-export-reexport
undefined syntax error
import { named as x } named-and-default-export-getter

named-and-default-export-getter-esModule

named-and-default-export-inherited

named-and-default-export-non-enumerable-inherited

named-and-default-export-runtime

named-and-default-export-runtime-esModule

named-and-null-default-export-runtime

named-and-null-default-export-runtime-esModule

named-export-runtime

named-export-runtime-esModule

single-object-export

single-object-with-default-export

single-object-with-default-export-duplicate

single-object-with-null-default-export
'named' syntax error
import { named as x }

import * as x; x.named

import * as x; ident(x).named
named-and-default-export-live 'named' 'named-outdated'
import { named as x } single-null-export type error syntax error
import * as x; x.named default-export

default-export-esModule

default-export-esModule-esm-reexport

default-export-esm

order

order-esModule

order-esm
undefined + errors undefined
import * as x; x.named

import * as x; ident(x).named
named-and-default-export-getter

named-and-default-export-getter-esModule

named-and-default-export-inherited

named-and-default-export-non-enumerable-inherited

named-and-default-export-runtime

named-and-default-export-runtime-esModule

named-and-null-default-export-runtime

named-and-null-default-export-runtime-esModule

named-export-runtime

named-export-runtime-esModule

single-object-export

single-object-with-default-export

single-object-with-default-export-duplicate

single-object-with-null-default-export
'named' undefined
import * as x; x.named single-null-export type error undefined
import { __esModule as x } default-export

default-export-esm

named-and-default-export

named-and-default-export-duplicate

named-and-default-export-esm

named-and-default-export-esm-esm-reexport

named-and-default-export-esm-reexport

named-and-default-export-getter

named-and-default-export-live

named-and-default-export-non-enumerable

named-and-default-export-reexport

named-and-null-default-export

named-and-null-default-export-non-enumerable

named-export

named-export-esm

named-export-non-enumerable

order

order-esm

require-circular

require-circular-self

require-conditional-execution

tla-esm

tla-esm-esm-reexport
true + errors syntax error
import { __esModule as x } default-export-runtime

named-and-default-export-getter-esModule

named-and-default-export-inherited

named-and-default-export-non-enumerable-inherited

named-and-default-export-runtime

named-and-default-export-runtime-esModule

named-and-null-default-export-runtime

named-and-null-default-export-runtime-esModule

named-export-runtime

named-export-runtime-esModule

single-class-export

single-empty-string-export

single-function-export

single-null-export

single-object-export

single-object-with-default-export

single-object-with-default-export-duplicate

single-object-with-null-default-export

single-promise-object-export

single-promise-object-with-default-export

single-promise-string-export

single-string-export

single-string-export-defined

single-string-export-duplicate

single-string-export-esm-reexport

single-string-export-getter

single-string-export-live

single-string-export-reexport
true syntax error
import * as x; x.__esModule default-export

default-export-esm

named-and-default-export

named-and-default-export-duplicate

named-and-default-export-esm

named-and-default-export-esm-esm-reexport

named-and-default-export-esm-reexport

named-and-default-export-getter

named-and-default-export-live

named-and-default-export-non-enumerable

named-and-default-export-reexport

named-and-null-default-export

named-and-null-default-export-non-enumerable

named-export

named-export-esm

named-export-non-enumerable

order

order-esm

require-circular

require-circular-self

require-conditional-execution

tla-esm

tla-esm-esm-reexport
true + errors undefined
import * as x; x.__esModule default-export-runtime

named-and-default-export-getter-esModule

named-and-default-export-inherited

named-and-default-export-non-enumerable-inherited

named-and-default-export-runtime

named-and-default-export-runtime-esModule

named-and-null-default-export-runtime

named-and-null-default-export-runtime-esModule

named-export-runtime

named-export-runtime-esModule

single-class-export

single-empty-string-export

single-function-export

single-null-export

single-object-export

single-object-with-default-export

single-object-with-default-export-duplicate

single-object-with-null-default-export

single-promise-object-export

single-promise-object-with-default-export

single-promise-string-export

single-string-export

single-string-export-defined

single-string-export-duplicate

single-string-export-esm-reexport

single-string-export-getter

single-string-export-live

single-string-export-reexport
true undefined
import * as x; ident(x).__esModule default-export

default-export-esm

default-export-runtime

named-and-default-export

named-and-default-export-duplicate

named-and-default-export-esm

named-and-default-export-esm-esm-reexport

named-and-default-export-esm-reexport

named-and-default-export-getter

named-and-default-export-getter-esModule

named-and-default-export-inherited

named-and-default-export-live

named-and-default-export-non-enumerable

named-and-default-export-non-enumerable-inherited

named-and-default-export-reexport

named-and-default-export-runtime

named-and-default-export-runtime-esModule

named-and-null-default-export

named-and-null-default-export-non-enumerable

named-and-null-default-export-runtime

named-and-null-default-export-runtime-esModule

named-export

named-export-esm

named-export-non-enumerable

named-export-runtime

named-export-runtime-esModule

order

order-esm

require-circular

require-circular-self

require-conditional-execution

single-class-export

single-empty-string-export

single-function-export

single-null-export

single-object-export

single-object-with-default-export

single-object-with-default-export-duplicate

single-object-with-null-default-export

single-promise-object-export

single-promise-object-with-default-export

single-promise-string-export

single-string-export

single-string-export-defined

single-string-export-duplicate

single-string-export-esm-reexport

single-string-export-getter

single-string-export-live

single-string-export-reexport

tla-esm

tla-esm-esm-reexport
true undefined
x = require(); x.default

x = require(); ident(x).default
default-export-esModule-esm-reexport

named-and-default-export-esModule-esm-reexport

named-and-default-export-esm-esm-reexport

named-and-default-export-esm-reexport

named-export-esm

order-esm

single-string-export-esm-reexport

tla-esm

tla-esm-esm-reexport
undefined require(esm) not allowed
x = require(); x.default

x = require(); ident(x).default
default-export-esm

named-and-default-export-esm
'default' require(esm) not allowed
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()
tla-esModule 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()
tla-esModule-esm-reexport compilation error require(esm) not allowed
{ named } = require()

x = require(); x.named

x = require(); ident(x).named
default-export-esModule-esm-reexport

default-export-esm

order-esm

single-string-export-esm-reexport

tla-esm

tla-esm-esm-reexport
undefined require(esm) not allowed
{ named } = require()

x = require(); x.named

x = require(); ident(x).named
named-and-default-export-esModule-esm-reexport

named-and-default-export-esm

named-and-default-export-esm-esm-reexport

named-and-default-export-esm-reexport

named-export-esm
'named' require(esm) not allowed
{ __esModule } = require()

x = require(); x.__esModule

x = require(); ident(x).__esModule

await import() === require()
default-export-esModule-esm-reexport

default-export-esm

named-and-default-export-esModule-esm-reexport

named-and-default-export-esm

named-and-default-export-esm-esm-reexport

named-and-default-export-esm-reexport

named-export-esm

order-esm

single-string-export-esm-reexport
true require(esm) not allowed
{ __esModule } = require()

x = require(); x.__esModule

x = require(); ident(x).__esModule
tla-esm

tla-esm-esm-reexport
undefined require(esm) not allowed
x = require() default-export-esModule-esm-reexport { [__esModule], [Module] } require(esm) not allowed
x = require() default-export-esm { [__esModule], default: [G], [Module] } require(esm) not allowed
x = require() named-and-default-export-esModule-esm-reexport

named-and-default-export-esm-esm-reexport

named-and-default-export-esm-reexport

named-export-esm
{ [__esModule], named: [G], [Module] } require(esm) not allowed
x = require() named-and-default-export-esm { [__esModule], default: [G], named: [G], [Module] } require(esm) not allowed
x = require() order-esm { [__esModule], a: [G: 'a'], b: [G: 'b'], c: [G: 'c'], [Module] } require(esm) not allowed
x = require() single-string-export-esm-reexport { '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule], [Module] } require(esm) not allowed
x = require() tla-esm Promise { { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack exports)]: { [__esModule], default: [G], named: [G], [Module] }, [Symbol(webpack queues)]: { [Function (anonymous)] [length]: 1, [name]: '' } } require(esm) not allowed
x = require() tla-esm-esm-reexport Promise { { [__esModule], named: [G], [Module] }, [Symbol(webpack exports)]: { [__esModule], named: [G], [Module] }, [Symbol(webpack queues)]: { [Function (anonymous)] [length]: 1, [name]: '' } } require(esm) not allowed
await import() === require() default-export-esModule

named-and-default-export-babel-getter

named-and-default-export-esModule

named-and-default-export-esModule-duplicate

named-and-default-export-esModule-reexport

named-and-default-export-getter-esModule

named-and-default-export-runtime-esModule

named-and-null-default-export-esModule

named-and-null-default-export-runtime-esModule

named-export-esModule

named-export-runtime-esModule

order-esModule
true false
await import() === require() tla-esm

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

default-export-esModule

default-export-runtime

named-and-default-export

named-and-default-export-babel-getter

named-and-default-export-duplicate

named-and-default-export-esModule

named-and-default-export-esModule-duplicate

named-and-default-export-esModule-reexport

named-and-default-export-getter

named-and-default-export-getter-esModule

named-and-default-export-inherited

named-and-default-export-live

named-and-default-export-non-enumerable

named-and-default-export-non-enumerable-inherited

named-and-default-export-reexport

named-and-default-export-runtime

named-and-default-export-runtime-esModule

named-and-null-default-export

named-and-null-default-export-esModule

named-and-null-default-export-non-enumerable

named-and-null-default-export-runtime

named-and-null-default-export-runtime-esModule

named-export

named-export-esModule

named-export-non-enumerable

named-export-runtime

named-export-runtime-esModule

order

order-esModule

require-circular

require-circular-self

require-conditional-execution

single-class-export

single-empty-string-export

single-function-export

single-null-export

single-object-export

single-object-with-default-export

single-object-with-default-export-duplicate

single-object-with-null-default-export

single-promise-object-export

single-promise-object-with-default-export

single-promise-string-export

single-string-export

single-string-export-defined

single-string-export-duplicate

single-string-export-getter

single-string-export-live

single-string-export-reexport
false true

Babel <-> Node.js (.mjs)

When using .mjs Babel tries to be compatible to Node.js.

babel-node fixture babel node
import x

import { default as x }

import * as x; x.default

import * as x; ident(x).default
default-export-esModule 'default' { [__esModule], default }
import x

import { default as x }
default-export-esModule-esm-reexport

named-and-default-export-esModule-esm-reexport

named-and-default-export-esm-reexport

named-export-esm

order-esm

single-string-export-esm-reexport
undefined syntax error
import x

import { default as x }

import * as x; x.default

import * as x; ident(x).default
named-and-default-export-babel-getter 'default' { [__esModule], named: [G], default: [G] }
import x

import { default as x }

import * as x; x.default

import * as x; ident(x).default
named-and-default-export-esModule

named-and-default-export-esModule-duplicate

named-and-default-export-esModule-reexport

named-and-default-export-runtime-esModule
'default' { [__esModule], named, default }
import x

import { default as x }

import { __esModule as x }
named-and-default-export-esm-esm-reexport

tla-esm-esm-reexport
runtime error syntax error
import x

import { default as x }

import * as x; x.default

import * as x; ident(x).default
named-and-default-export-getter-esModule 'default' { [__esModule]: [G: true], [named]: [G], [default]: [G] }
import x

import { default as x }

import * as x; x.default

import * as x; ident(x).default
named-and-null-default-export-esModule

named-and-null-default-export-runtime-esModule
null { [__esModule], named, default: null }
import x

import { default as x }

import * as x; x.default

import * as x; ident(x).default
named-export-esModule

named-export-runtime-esModule
undefined { [__esModule], named }
import x

import { default as x }

import * as x; x.default

import * as x; ident(x).default
order-esModule undefined { [__esModule], b, a, c }
import x

import { default as x }

import * as x; x.default

import * as x; ident(x).default

x = require()
single-function-export <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] } }
import x

import { default as x }

import * as x; x.default

import * as x; ident(x).default
tla-esm syntax error 'default'
import * as x; x.default

import * as x; ident(x).default

import * as x; x.__esModule

import * as x; ident(x).__esModule
named-and-default-export-esm-esm-reexport

tla-esm-esm-reexport
runtime error undefined
import { named as x } default-export

default-export-esModule

default-export-esModule-esm-reexport

default-export-esm

default-export-runtime

order

order-esModule

order-esm

single-class-export

single-empty-string-export

single-function-export

single-promise-object-export

single-promise-object-with-default-export

single-promise-string-export

single-string-export

single-string-export-defined

single-string-export-duplicate

single-string-export-esm-reexport

single-string-export-getter

single-string-export-live

single-string-export-reexport
undefined syntax error
import { named as x }

import * as x; x.named

import * as x; ident(x).named
named-and-default-export-esm-esm-reexport

tla-esm-esm-reexport
runtime error 'named'
import { named as x } named-and-default-export-getter

named-and-default-export-getter-esModule

named-and-default-export-inherited

named-and-default-export-non-enumerable-inherited

named-and-default-export-runtime

named-and-default-export-runtime-esModule

named-and-null-default-export-runtime

named-and-null-default-export-runtime-esModule

named-export-runtime

named-export-runtime-esModule

single-object-export

single-object-with-default-export

single-object-with-default-export-duplicate

single-object-with-null-default-export
'named' syntax error
import { named as x } named-and-default-export-live 'named' 'named-outdated'
import { named as x }

import { __esModule as x }
single-null-export type error syntax error
import { named as x }

import * as x; x.named

import * as x; ident(x).named
tla-esm syntax error 'named'
import * as x; x.named

import * as x; ident(x).named
named-and-default-export-getter-esModule

named-and-default-export-runtime

named-and-default-export-runtime-esModule

named-and-null-default-export-runtime

named-and-null-default-export-runtime-esModule

named-export-runtime

named-export-runtime-esModule

single-object-export

single-object-with-default-export

single-object-with-default-export-duplicate

single-object-with-null-default-export
'named' undefined
import * as x; x.named

import * as x; ident(x).named
named-and-default-export-non-enumerable

named-and-null-default-export-non-enumerable

named-export-non-enumerable
undefined 'named'
import { __esModule as x } default-export

default-export-runtime

named-and-default-export

named-and-default-export-duplicate

named-and-default-export-getter

named-and-default-export-inherited

named-and-default-export-live

named-and-default-export-non-enumerable

named-and-default-export-non-enumerable-inherited

named-and-default-export-reexport

named-and-default-export-runtime

named-and-null-default-export

named-and-null-default-export-non-enumerable

named-and-null-default-export-runtime

named-export

named-export-non-enumerable

named-export-runtime

order

require-circular

require-circular-self

require-conditional-execution

single-class-export

single-empty-string-export

single-function-export

single-object-export

single-object-with-default-export

single-object-with-default-export-duplicate

single-object-with-null-default-export

single-promise-object-export

single-promise-object-with-default-export

single-promise-string-export

single-string-export

single-string-export-defined

single-string-export-duplicate

single-string-export-getter

single-string-export-live

single-string-export-reexport
undefined syntax error
import { __esModule as x } default-export-esm

named-and-default-export-esm

named-and-default-export-esm-reexport

named-and-default-export-getter-esModule

named-and-default-export-runtime-esModule

named-and-null-default-export-runtime-esModule

named-export-esm

named-export-runtime-esModule

order-esm

single-string-export-esm-reexport
true syntax error
import * as x; x.__esModule

import * as x; ident(x).__esModule
default-export-esm

named-and-default-export-esm

named-and-default-export-esm-reexport

named-and-default-export-getter-esModule

named-and-default-export-runtime-esModule

named-and-null-default-export-runtime-esModule

named-export-esm

named-export-runtime-esModule

order-esm

single-string-export-esm-reexport
true undefined
import * as x; x.__esModule

import * as x; ident(x).__esModule
tla-esm syntax error undefined
x = require(); x.default

x = require(); ident(x).default
default-export-esModule-esm-reexport

named-and-default-export-esModule-esm-reexport

named-and-default-export-esm-reexport

named-export-esm

order-esm

single-string-export-esm-reexport
undefined require(esm) not allowed
x = require(); x.default

x = require(); ident(x).default
default-export-esm

named-and-default-export-esm
'default' require(esm) not allowed
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()
named-and-default-export-esm-esm-reexport

tla-esm-esm-reexport
runtime error require(esm) not allowed
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()
tla-esModule-esm-reexport

tla-esm
syntax error require(esm) not allowed
{ named } = require()

x = require(); x.named

x = require(); ident(x).named
default-export-esModule-esm-reexport

default-export-esm

order-esm

single-string-export-esm-reexport
undefined require(esm) not allowed
{ named } = require()

x = require(); x.named

x = require(); ident(x).named
named-and-default-export-esModule-esm-reexport

named-and-default-export-esm

named-and-default-export-esm-reexport

named-export-esm
'named' require(esm) not allowed
{ __esModule } = require()

x = require(); x.__esModule

x = require(); ident(x).__esModule

await import() === require()
default-export-esModule-esm-reexport

default-export-esm

named-and-default-export-esModule-esm-reexport

named-and-default-export-esm

named-and-default-export-esm-reexport

named-export-esm

order-esm

single-string-export-esm-reexport
true require(esm) not allowed
x = require() default-export-esModule-esm-reexport { [__esModule] } require(esm) not allowed
x = require() default-export-esm { [__esModule], default } require(esm) not allowed
x = require() named-and-default-export-esModule-esm-reexport

named-and-default-export-esm-reexport
{ [__esModule], named: [G] } require(esm) not allowed
x = require() named-and-default-export-esm { [__esModule], default, named } require(esm) not allowed
x = require() named-export-esm { [__esModule], named } require(esm) not allowed
x = require() order-esm { [__esModule], a, b, c } require(esm) not allowed
x = require() single-string-export-esm-reexport { '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule] } require(esm) not allowed
await import() === require() default-export-esModule

named-and-default-export-babel-getter

named-and-default-export-esModule

named-and-default-export-esModule-duplicate

named-and-default-export-esModule-reexport

named-and-default-export-getter-esModule

named-and-default-export-runtime-esModule

named-and-null-default-export-esModule

named-and-null-default-export-runtime-esModule

named-export-esModule

named-export-runtime-esModule

order-esModule
true false
await import() === require() tla-esm syntax error require(esm) not allowed
import * as x; x === await import() named-and-default-export-esm-esm-reexport

tla-esm-esm-reexport
runtime error true
import * as x; x === await import() single-empty-string-export

single-null-export

single-string-export

single-string-export-defined

single-string-export-duplicate

single-string-export-getter

single-string-export-live

single-string-export-reexport
false true
import * as x; x === await import() tla-esm syntax error true

Parcel <-> Node.js

parcel-node fixture parcel node
import x

import { default as x }

import * as x; x.default

import * as x; ident(x).default
default-export-esModule 'default' { [__esModule], default }
import x

import { default as x }
default-export-esModule-esm-reexport

named-and-default-export-esModule-esm-reexport

named-and-default-export-esm-esm-reexport

named-and-default-export-esm-reexport

named-export-esm

order-esm

single-string-export-esm-reexport

tla-esModule

tla-esModule-esm-reexport

tla-esm-esm-reexport
compilation error syntax error
import x

import { default as x }

import * as x; x.default

import * as x; ident(x).default
named-and-default-export-babel-getter 'default' { [__esModule], named: [G], default: [G] }
import x

import { default as x }

import * as x; x.default

import * as x; ident(x).default
named-and-default-export-esModule

named-and-default-export-esModule-duplicate

named-and-default-export-esModule-reexport

named-and-default-export-runtime-esModule
'default' { [__esModule], named, default }
import x

import { default as x }

import * as x; x.default

import * as x; ident(x).default
named-and-default-export-getter-esModule 'default' { [__esModule]: [G: true], [named]: [G], [default]: [G] }
import x

import { default as x }

import * as x; x.default

import * as x; ident(x).default
named-and-null-default-export-esModule

named-and-null-default-export-runtime-esModule
null { [__esModule], named, default: null }
import x

import { default as x }

import * as x; x.default

import * as x; ident(x).default
named-export-esModule

named-export-runtime-esModule
undefined { [__esModule], named }
import x

import { default as x }

import * as x; x.default

import * as x; ident(x).default
order-esModule undefined { [__esModule], b, a, c }
import x

import { default as x }

x = require()
single-class-export <ref *1> { [class (anonymous)] [length]: 0, [name]: '', [prototype]: { [constructor]: [Circular *1] } } <ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } }
import x

import { default as x }

x = require()
single-function-export <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] } }
import x

import { default as x }

import * as x; x.default

import * as x; ident(x).default
tla-esm compilation error 'default'
import * as x; x.default

import * as x; ident(x).default
default-export

default-export-runtime
'default' { default }
import * as x; x.default

import * as x; ident(x).default
named-and-default-export

named-and-default-export-duplicate

named-and-default-export-inherited

named-and-default-export-live

named-and-default-export-reexport

named-and-default-export-runtime

single-object-with-default-export

single-object-with-default-export-duplicate
'default' { named, default }
import * as x; x.default

import * as x; ident(x).default
named-and-default-export-getter 'default' { [named]: [G], [default]: [G] }
import * as x; x.default

import * as x; ident(x).default
named-and-default-export-non-enumerable

named-and-default-export-non-enumerable-inherited
'default' { [named], [default] }
import * as x; x.default

import * as x; ident(x).default
named-and-null-default-export

named-and-null-default-export-runtime

single-object-with-null-default-export
null { named, default: null }
import * as x; x.default

import * as x; ident(x).default
named-and-null-default-export-non-enumerable null { [named], [default]: null }
import * as x; x.default

import * as x; ident(x).default
named-export

named-export-runtime

single-object-export
undefined { named }
import * as x; x.default

import * as x; ident(x).default
named-export-non-enumerable undefined { [named] }
import * as x; x.default

import * as x; ident(x).default
order undefined { b, a, c }
import * as x; x.default

import * as x; ident(x).default
require-circular

require-circular-self

require-conditional-execution
'default' { default, named }
import * as x; x.default

import * as x; ident(x).default
single-class-export undefined <ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } }
import * as x; x.default

import * as x; ident(x).default
single-empty-string-export undefined ''
import * as x; x.default

import * as x; ident(x).default
single-function-export undefined <ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } }
import * as x; x.default single-null-export type error null
import * as x; x.default

import * as x; ident(x).default
single-promise-object-export undefined Promise { { named } }
import * as x; x.default

import * as x; ident(x).default
single-promise-object-with-default-export undefined Promise { { named, default } }
import * as x; x.default

import * as x; ident(x).default
single-promise-string-export undefined Promise { 'single' }
import * as x; x.default

import * as x; ident(x).default
single-string-export

single-string-export-defined

single-string-export-duplicate

single-string-export-getter

single-string-export-reexport
undefined 'single'
import * as x; x.default

import * as x; ident(x).default
single-string-export-live undefined 'single-outdated'
import * as x; x.default

import * as x; ident(x).default

import * as x; x.named

import * as x; ident(x).named

import * as x; x.__esModule

import * as x; ident(x).__esModule

await import() === require()

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

tla-esModule-esm-reexport
compilation error syntax error
import * as x; x.default

import * as x; ident(x).default
tla-esm-esm-reexport compilation error undefined
import * as x; ident(x).default single-null-export undefined null
import { named as x } default-export

default-export-esModule

default-export-esModule-esm-reexport

default-export-runtime

order

order-esModule

single-class-export

single-empty-string-export

single-function-export

single-promise-object-export

single-promise-object-with-default-export

single-promise-string-export

single-string-export

single-string-export-defined

single-string-export-duplicate

single-string-export-esm-reexport

single-string-export-getter

single-string-export-live

single-string-export-reexport
undefined syntax error
import { named as x } default-export-esm

order-esm

tla-esModule

tla-esModule-esm-reexport
compilation error syntax error
import { named as x } named-and-default-export-getter

named-and-default-export-getter-esModule

named-and-default-export-inherited

named-and-default-export-non-enumerable-inherited

named-and-default-export-runtime

named-and-default-export-runtime-esModule

named-and-null-default-export-runtime

named-and-null-default-export-runtime-esModule

named-export-runtime

named-export-runtime-esModule

single-object-export

single-object-with-default-export

single-object-with-default-export-duplicate

single-object-with-null-default-export
'named' syntax error
import { named as x }

import * as x; x.named

import * as x; ident(x).named
named-and-default-export-live 'named' 'named-outdated'
import { named as x }

import { __esModule as x }
single-null-export type error syntax error
import { named as x }

import * as x; x.named

import * as x; ident(x).named
tla-esm

tla-esm-esm-reexport
compilation error 'named'
import * as x; x.named

import * as x; ident(x).named
named-and-default-export-getter

named-and-default-export-getter-esModule

named-and-default-export-inherited

named-and-default-export-non-enumerable-inherited

named-and-default-export-runtime

named-and-default-export-runtime-esModule

named-and-null-default-export-runtime

named-and-null-default-export-runtime-esModule

named-export-runtime

named-export-runtime-esModule

single-object-export

single-object-with-default-export

single-object-with-default-export-duplicate

single-object-with-null-default-export
'named' undefined
import * as x; x.named

import * as x; x.__esModule
single-null-export type error undefined
import { __esModule as x } default-export

default-export-runtime

named-and-default-export

named-and-default-export-duplicate

named-and-default-export-getter

named-and-default-export-inherited

named-and-default-export-live

named-and-default-export-non-enumerable

named-and-default-export-non-enumerable-inherited

named-and-default-export-reexport

named-and-default-export-runtime

named-and-null-default-export

named-and-null-default-export-non-enumerable

named-and-null-default-export-runtime

named-export

named-export-non-enumerable

named-export-runtime

order

require-circular

require-circular-self

require-conditional-execution

single-class-export

single-empty-string-export

single-function-export

single-object-export

single-object-with-default-export

single-object-with-default-export-duplicate

single-object-with-null-default-export

single-promise-object-export

single-promise-object-with-default-export

single-promise-string-export

single-string-export

single-string-export-defined

single-string-export-duplicate

single-string-export-getter

single-string-export-live

single-string-export-reexport
undefined syntax error
import { __esModule as x } default-export-esm

named-and-default-export-esm

named-and-default-export-esm-esm-reexport

named-export-esm

order-esm

tla-esModule

tla-esModule-esm-reexport

tla-esm

tla-esm-esm-reexport
compilation error syntax error
import { __esModule as x } named-and-default-export-esm-reexport

named-and-default-export-getter-esModule

named-and-default-export-runtime-esModule

named-and-null-default-export-runtime-esModule

named-export-runtime-esModule

single-string-export-esm-reexport
true syntax error
import * as x; x.__esModule

import * as x; ident(x).__esModule
default-export-esm

named-and-default-export-esm

named-and-default-export-esm-esm-reexport

named-and-default-export-esm-reexport

named-and-default-export-getter-esModule

named-and-default-export-runtime-esModule

named-and-null-default-export-runtime-esModule

named-export-esm

named-export-runtime-esModule

order-esm

single-string-export-esm-reexport
true undefined
import * as x; x.__esModule

import * as x; ident(x).__esModule
tla-esm

tla-esm-esm-reexport
compilation error undefined
x = require(); x.default

x = require(); ident(x).default
default-export-esModule-esm-reexport

named-and-default-export-esModule-esm-reexport

named-and-default-export-esm-esm-reexport

named-and-default-export-esm-reexport

named-export-esm

order-esm

single-string-export-esm-reexport
undefined require(esm) not allowed
x = require(); x.default

x = require(); ident(x).default
default-export-esm

named-and-default-export-esm
'default' require(esm) not allowed
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()
tla-esModule compilation error syntax error
x = require(); x.default

x = require(); ident(x).default

x = require(); x.named

x = require(); ident(x).named

x = require(); x.__esModule

x = require(); ident(x).__esModule

x = require()
tla-esModule-esm-reexport

tla-esm

tla-esm-esm-reexport
compilation error require(esm) not allowed
{ named } = require() default-export-esModule-esm-reexport

single-string-export-esm-reexport
undefined require(esm) not allowed
{ named } = require() default-export-esm

order-esm

tla-esModule-esm-reexport

tla-esm

tla-esm-esm-reexport
compilation error require(esm) not allowed
{ named } = require()

x = require(); x.named

x = require(); ident(x).named
named-and-default-export-esModule-esm-reexport

named-and-default-export-esm

named-and-default-export-esm-esm-reexport

named-and-default-export-esm-reexport

named-export-esm
'named' require(esm) not allowed
x = require(); x.named

x = require(); ident(x).named
default-export-esModule-esm-reexport

default-export-esm

order-esm

single-string-export-esm-reexport
undefined require(esm) not allowed
{ __esModule } = require() default-export-esModule-esm-reexport

named-and-default-export-esModule-esm-reexport

named-and-default-export-esm-reexport

single-string-export-esm-reexport
true require(esm) not allowed
{ __esModule } = require() default-export-esm

named-and-default-export-esm

named-and-default-export-esm-esm-reexport

named-export-esm

order-esm

tla-esModule-esm-reexport

tla-esm

tla-esm-esm-reexport
compilation error require(esm) not allowed
x = require(); x.__esModule

x = require(); ident(x).__esModule

await import() === require()
default-export-esModule-esm-reexport

default-export-esm

named-and-default-export-esModule-esm-reexport

named-and-default-export-esm

named-and-default-export-esm-esm-reexport

named-and-default-export-esm-reexport

named-export-esm

order-esm

single-string-export-esm-reexport
true require(esm) not allowed
x = require() default-export-esModule-esm-reexport { [__esModule] } require(esm) not allowed
x = require() default-export-esm { [__esModule], default } require(esm) not allowed
x = require() named-and-default-export-esModule-esm-reexport

named-and-default-export-esm-esm-reexport

named-and-default-export-esm-reexport

named-export-esm
{ [__esModule], named: [G] } require(esm) not allowed
x = require() named-and-default-export-esm { [__esModule], named: [G], default } require(esm) not allowed
x = require() order-esm { [__esModule], b: [G: 'b'], a: [G: 'a'], c: [G: 'c'] } require(esm) not allowed
x = require() single-string-export-esm-reexport { '0': [G: 's'], '1': [G: 'i'], '2': [G: 'n'], '3': [G: 'g'], '4': [G: 'l'], '5': [G: 'e'], [__esModule] } require(esm) not allowed
await import() === require() default-export

default-export-esModule

default-export-runtime

named-and-default-export

named-and-default-export-babel-getter

named-and-default-export-duplicate

named-and-default-export-esModule

named-and-default-export-esModule-duplicate

named-and-default-export-esModule-reexport

named-and-default-export-getter

named-and-default-export-getter-esModule

named-and-default-export-inherited

named-and-default-export-live

named-and-default-export-non-enumerable

named-and-default-export-non-enumerable-inherited

named-and-default-export-reexport

named-and-default-export-runtime

named-and-default-export-runtime-esModule

named-and-null-default-export

named-and-null-default-export-esModule

named-and-null-default-export-non-enumerable

named-and-null-default-export-runtime

named-and-null-default-export-runtime-esModule

named-export

named-export-esModule

named-export-non-enumerable

named-export-runtime

named-export-runtime-esModule

order

order-esModule

require-circular

require-circular-self

require-conditional-execution

single-class-export

single-empty-string-export

single-function-export

single-null-export

single-object-export

single-object-with-default-export

single-object-with-default-export-duplicate

single-object-with-null-default-export

single-string-export

single-string-export-defined

single-string-export-duplicate

single-string-export-getter

single-string-export-reexport
true false
await import() === require() tla-esm

tla-esm-esm-reexport
compilation error require(esm) not allowed
import * as x; x === await import() single-promise-object-export

single-promise-object-with-default-export

single-promise-string-export
false true
import * as x; x === await import() tla-esm

tla-esm-esm-reexport
compilation error true

Babel .mjs <-> .js

babel-babel-js fixture babel babel-js
import x

import { default as x }

import * as x; x.default

import * as x; ident(x).default

x = require()
single-function-export <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] } }

Webpack .mjs <-> .js

webpack-webpack-js fixture webpack webpack-js
import x

import { default as x }

import * as x; x.default

import * as x; ident(x).default
default-export-esModule { [__esModule], default } 'default'
import x

import { default as x }

import * as x; x.default
default-export-esModule-esm-reexport

named-and-default-export-esModule-esm-reexport

named-and-default-export-esm-esm-reexport

named-and-default-export-esm-reexport

named-export-esm

order-esm

single-string-export-esm-reexport

tla-esm-esm-reexport
undefined + errors undefined + warnings
import x

import { default as x }

import * as x; x.default

import * as x; ident(x).default
named-and-default-export-babel-getter { [__esModule], named: [G], default: [G] } 'default'
import x

import { default as x }

import * as x; x.default

import * as x; ident(x).default
named-and-default-export-esModule

named-and-default-export-esModule-duplicate

named-and-default-export-esModule-reexport

named-and-default-export-runtime-esModule
{ [__esModule], named, default } 'default'
import x

import { default as x }

import * as x; x.default

import * as x; ident(x).default
named-and-default-export-getter-esModule { [__esModule]: [G: true], [named]: [G], [default]: [G] } 'default'
import x

import { default as x }

import * as x; x.default

import * as x; ident(x).default
named-and-null-default-export-esModule

named-and-null-default-export-runtime-esModule
{ [__esModule], named, default: null } null
import x

import { default as x }

import * as x; x.default
named-export-esModule { [__esModule], named } undefined + warnings
import x

import { default as x }

import * as x; x.default
named-export-runtime-esModule { [__esModule], named } undefined
import x

import { default as x }

import * as x; x.default
order-esModule { [__esModule], b, a, c } undefined + warnings
import * as x; ident(x).default default-export-runtime { default } 'default'
import * as x; ident(x).default named-and-default-export-inherited

named-and-default-export-runtime

single-object-with-default-export

single-object-with-default-export-duplicate
{ named, default } 'default'
import * as x; ident(x).default named-and-default-export-non-enumerable-inherited { [named], [default] } 'default'
import * as x; ident(x).default named-and-null-default-export-runtime

single-object-with-null-default-export
{ named, default: null } null
import * as x; ident(x).default named-export-esModule

named-export-runtime-esModule
{ [__esModule], named } undefined
import * as x; ident(x).default named-export-runtime

single-object-export
{ named } undefined
import * as x; ident(x).default order-esModule { [__esModule], b, a, c } undefined
import * as x; ident(x).default single-class-export <ref *1> { [class TheClass] [length]: 0, [name]: 'TheClass', [prototype]: { [constructor]: [Circular *1] } } undefined
import * as x; ident(x).default single-empty-string-export '' undefined
import * as x; ident(x).default single-function-export <ref *1> { [Function: theFunction] [length]: 0, [name]: 'theFunction', [arguments]: null, [caller]: null, [prototype]: { [constructor]: [Circular *1] } } undefined
import * as x; ident(x).default single-null-export null undefined
import * as x; ident(x).default single-promise-object-export Promise { { named } } undefined
import * as x; ident(x).default single-promise-object-with-default-export Promise { { named, default } } undefined
import * as x; ident(x).default single-promise-string-export Promise { 'single' } undefined
import * as x; ident(x).default single-string-export

single-string-export-defined

single-string-export-duplicate

single-string-export-getter

single-string-export-reexport
'single' undefined
import * as x; ident(x).default single-string-export-live 'single-outdated' undefined
import { named as x }

import * as x; x.named
default-export

default-export-esModule

default-export-esModule-esm-reexport

default-export-esm

order

order-esModule

order-esm
undefined + errors undefined + warnings
import { __esModule as x }

import * as x; x.__esModule
default-export

default-export-esm

named-and-default-export

named-and-default-export-duplicate

named-and-default-export-esm

named-and-default-export-esm-esm-reexport

named-and-default-export-esm-reexport

named-and-default-export-getter

named-and-default-export-live

named-and-default-export-non-enumerable

named-and-default-export-reexport

named-and-null-default-export

named-and-null-default-export-non-enumerable

named-export

named-export-esm

named-export-non-enumerable

order

order-esm

require-circular

require-circular-self

require-conditional-execution

tla-esm

tla-esm-esm-reexport
true + errors true + warnings
import * as x; ident(x).__esModule default-export-runtime

named-and-default-export-inherited

named-and-default-export-non-enumerable-inherited

named-and-default-export-runtime

named-and-null-default-export-runtime

named-export-runtime

single-class-export

single-empty-string-export

single-function-export

single-null-export

single-object-export

single-object-with-default-export

single-object-with-default-export-duplicate

single-object-with-null-default-export

single-promise-object-export

single-promise-object-with-default-export

single-promise-string-export

single-string-export

single-string-export-defined

single-string-export-duplicate

single-string-export-getter

single-string-export-live

single-string-export-reexport
true undefined
import * as x; x === await import() default-export-esModule

named-and-default-export-babel-getter

named-and-default-export-esModule

named-and-default-export-esModule-duplicate

named-and-default-export-esModule-reexport

named-and-default-export-getter-esModule

named-and-default-export-runtime-esModule

named-and-null-default-export-esModule

named-and-null-default-export-runtime-esModule

named-export-esModule

named-export-runtime-esModule

order-esModule
false true