From a989612ce7324a7f62b0710a895f790491ff1e48 Mon Sep 17 00:00:00 2001 From: Malte Ubl Date: Wed, 28 Oct 2026 09:38:22 -0700 Subject: [PATCH] Record the island case's unresolved import() fence as a divergence The stale i6 branch marked lazy-traps island-only, which held while the whole package was refused and ran in a Node island. main compiles the package statically with a throwing stub per blocked edge, so its require() edges still match Node through an island while an import() whose literal specifier resolves nowhere is a deferred SC2012 fence. Record that remaining gap the way main does instead of claiming Node parity. Co-Authored-By: Claude Opus 5.5 --- tests/harness/npm-suite.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/harness/npm-suite.ts b/tests/harness/npm-suite.ts index 2eec4c7b1..1463e3354 100644 --- a/tests/harness/npm-suite.ts +++ b/tests/harness/npm-suite.ts @@ -69,7 +69,13 @@ const KNOWN: Record = { }, // require() inside a function. "island-web-plumbing": { run: "SC1090" }, - "lazy-traps": { island: true }, + // The package's require() edges run in a Node island and match Node; its + // import() of a specifier that resolves to nothing is a deferred SC2012 + // fence instead of Node's ERR_MODULE_NOT_FOUND rejection. + "lazy-traps": { + divergence: + "an import() whose literal specifier resolves to nothing is fenced with SC2012 instead of rejecting like Node", + }, "misc-shims": { run: "SC1090" }, namespace: { island: true }, "node24-async-events": { run: "SC2020" },