Skip to main content

ES module system

I1 requires ECMAScript module semantics, not Node’s resolver, not Bun’s package rules, and not Deno’s URL imports. Host resolution (filesystem, HTTPS, node_modules) is a runtime concern layered on top of language module records.

In scope for I1

Out of scope for I1 (host / later)

Current scripty state

Smokes: testdata/smoke/esm_main.js, testdata/smoke/ts_main.ts (in the scripty repo).

Host loader contract (sketch)

The engine should call a host resolve + load hook:
I1 correctness is about what happens after source text is obtained. Host policy (permissions, network, cache) belongs to runtime matrices.

Phase alignment

Exit criteria

  • In-scope module Test262 green
  • Cyclic dependency fixtures pass
  • Dynamic import() passes in-scope tests
  • Fail closed on unsupported host resolution schemes (clear error)