diff --git a/build/index.html b/build/index.html
index 1cc60b9..73c164c 100644
--- a/build/index.html
+++ b/build/index.html
@@ -3993,7 +3993,7 @@
Stage 2.7 Draft / March 24, 2026
ECMAScript Module Phase Imports
+ Stage 2.7 Draft / April 25, 2026
ECMAScript Module Phase Imports
1 ECMAScript Data Types and Values
@@ -4808,7 +4808,7 @@ 13.3.10 Import Calls
13.3.10.1 EvaluateImportCall ( specifierExpression, phase [ , optionsExpression ] )
The abstract operation EvaluateImportCall takes arguments specifierExpression (a Parse Node) and phase (source or evaluation) and optional argument optionsExpression (a Parse Node) and returns either a normal completion containing a Promise or a throw completion. It performs the following steps when called:
- - Let referrer be GetActiveScriptOrModule().
- If referrer is null, set referrer to the current Realm Record.
- Let specifierRef be ? Evaluation of specifierExpression.
- Let specifier be ? GetValue(specifierRef).
- If optionsExpression is present, then
- Let optionsRef be ? Evaluation of optionsExpression.
- Let options be ? GetValue(optionsRef).
- Else,
- Let options be undefined.
- Let promiseCapability be ! NewPromiseCapability(%Promise%).
- Let attributesObj be undefined.
- If specifier is an Object, then
- Let moduleSourceRecord be GetModuleSourceRecord(specifier).
- If moduleSourceRecord is not not-a-source, then
- If options is not undefined, then
- If options is not an Object, then
- Perform ! Call(promiseCapability.[[Reject]], undefined, « a newly created TypeError object »).
- Return promiseCapability.[[Promise]].
- Set attributesObj to Completion(Get(options, "with")).
- IfAbruptRejectPromise(attributesObj, promiseCapability).
- If attributesObj is not undefined, then
- Perform ! Call(promiseCapability.[[Reject]], undefined, « a newly created TypeError object »).
- Return promiseCapability.[[Promise]].
- Let proto be ? specifier.[[GetPrototypeOf]]().
- Let superProto be ? proto.[[GetPrototypeOf]]().
- if SameValue(superProto, %AbstractModuleSource.prototype%) is false, then:
- Perform ! Call(promiseCapability.[[Reject]], undefined, « a newly created TypeError object »).
- Return promiseCapability.[[Promise]].
- Let moduleRequest be a new ModuleRequest Record { [[Specifier]]: moduleSourceRecord, [[Phase]]: phase, [[Attributes]]: « » }.
- Perform HostLoadImportedModule(referrer, moduleRequest, empty, promiseCapability).
- Return promiseCapability.[[Promise]].
- Let specifierString be Completion(ToString(specifier)).
- IfAbruptRejectPromise(specifierString, promiseCapability).
- Let attributes be a new empty List.
- If options is not undefined, then
- If options is not an Object, then
- Perform ! Call(promiseCapability.[[Reject]], undefined, « a newly created TypeError object »).
- Return promiseCapability.[[Promise]].
- Set attributesObj to Completion(Get(options, "with")).
- IfAbruptRejectPromise(attributesObj, promiseCapability).
- If attributesObj is not undefined, then
- If attributesObj is not an Object, then
- Perform ! Call(promiseCapability.[[Reject]], undefined, « a newly created TypeError object »).
- Return promiseCapability.[[Promise]].
- Let entries be Completion(EnumerableOwnProperties(attributesObj, key+value)).
- IfAbruptRejectPromise(entries, promiseCapability).
- For each element entry of entries, do
- Let key be ! Get(entry, "0").
- Let value be ! Get(entry, "1").
- If key is a String, then
- If value is not a String, then
- Perform ! Call(promiseCapability.[[Reject]], undefined, « a newly created TypeError object »).
- Return promiseCapability.[[Promise]].
- Append the ImportAttribute Record { [[Key]]: key, [[Value]]: value } to attributes.
- If AllImportAttributesSupported(attributes) is false, then
- Perform ! Call(promiseCapability.[[Reject]], undefined, « a newly created TypeError object »).
- Return promiseCapability.[[Promise]].
- Sort attributes according to the lexicographic order of their [[Key]] fields, treating the value of each such field as a sequence of UTF-16 code unit values. NOTE: This sorting is observable only in that hosts are prohibited from changing behaviour based on the order in which attributes are enumerated.
- Let moduleRequest be a new ModuleRequest Record { [[Specifier]]: specifierString, [[Phase]]: phase, [[Attributes]]: attributes }.
- Perform HostLoadImportedModule(referrer, moduleRequest, empty, promiseCapability).
- Return promiseCapability.[[Promise]].
+ - Let referrer be GetActiveScriptOrModule().
- If referrer is null, set referrer to the current Realm Record.
- Let specifierRef be ? Evaluation of specifierExpression.
- Let specifier be ? GetValue(specifierRef).
- If optionsExpression is present, then
- Let optionsRef be ? Evaluation of optionsExpression.
- Let options be ? GetValue(optionsRef).
- Else,
- Let options be undefined.
- Let promiseCapability be ! NewPromiseCapability(%Promise%).
- Let attributesObj be undefined.
- If specifier is an Object, then
- Let moduleSourceRecord be GetModuleSourceRecord(specifier).
- If moduleSourceRecord is not not-a-source, then
- If options is not undefined, then
- If options is not an Object, then
- Perform ! Call(promiseCapability.[[Reject]], undefined, « a newly created TypeError object »).
- Return promiseCapability.[[Promise]].
- Set attributesObj to Completion(Get(options, "with")).
- IfAbruptRejectPromise(attributesObj, promiseCapability).
- If attributesObj is not undefined, then
- Perform ! Call(promiseCapability.[[Reject]], undefined, « a newly created TypeError object »).
- Return promiseCapability.[[Promise]].
- Let moduleRequest be a new ModuleRequest Record { [[Specifier]]: moduleSourceRecord, [[Phase]]: phase, [[Attributes]]: « » }.
- Perform HostLoadImportedModule(referrer, moduleRequest, empty, promiseCapability).
- Return promiseCapability.[[Promise]].
- Let specifierString be Completion(ToString(specifier)).
- IfAbruptRejectPromise(specifierString, promiseCapability).
- Let attributes be a new empty List.
- If options is not undefined, then
- If options is not an Object, then
- Perform ! Call(promiseCapability.[[Reject]], undefined, « a newly created TypeError object »).
- Return promiseCapability.[[Promise]].
- Set attributesObj to Completion(Get(options, "with")).
- IfAbruptRejectPromise(attributesObj, promiseCapability).
- If attributesObj is not undefined, then
- If attributesObj is not an Object, then
- Perform ! Call(promiseCapability.[[Reject]], undefined, « a newly created TypeError object »).
- Return promiseCapability.[[Promise]].
- Let entries be Completion(EnumerableOwnProperties(attributesObj, key+value)).
- IfAbruptRejectPromise(entries, promiseCapability).
- For each element entry of entries, do
- Let key be ! Get(entry, "0").
- Let value be ! Get(entry, "1").
- If key is a String, then
- If value is not a String, then
- Perform ! Call(promiseCapability.[[Reject]], undefined, « a newly created TypeError object »).
- Return promiseCapability.[[Promise]].
- Append the ImportAttribute Record { [[Key]]: key, [[Value]]: value } to attributes.
- If AllImportAttributesSupported(attributes) is false, then
- Perform ! Call(promiseCapability.[[Reject]], undefined, « a newly created TypeError object »).
- Return promiseCapability.[[Promise]].
- Sort attributes according to the lexicographic order of their [[Key]] fields, treating the value of each such field as a sequence of UTF-16 code unit values. NOTE: This sorting is observable only in that hosts are prohibited from changing behaviour based on the order in which attributes are enumerated.
- Let moduleRequest be a new ModuleRequest Record { [[Specifier]]: specifierString, [[Phase]]: phase, [[Attributes]]: attributes }.
- Perform HostLoadImportedModule(referrer, moduleRequest, empty, promiseCapability).
- Return promiseCapability.[[Promise]].
diff --git a/spec.emu b/spec.emu
index 32cdf63..66b30bc 100644
--- a/spec.emu
+++ b/spec.emu
@@ -853,11 +853,6 @@ contributors: Luca Casonato, Guy Bedford
1. If _attributesObj_ is not *undefined*, then
1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « a newly created *TypeError* object »).
1. Return _promiseCapability_.[[Promise]].
- 1. Let _proto_ be ? _specifier_.[[GetPrototypeOf]]().
- 1. Let _superProto_ be ? _proto_.[[GetPrototypeOf]]().
- 1. if SameValue(_superProto_, %AbstractModuleSource.prototype%) is *false*, then:
- 1. Perform ! Call(_promiseCapability_.[[Reject]], *undefined*, « a newly created *TypeError* object »).
- 1. Return _promiseCapability_.[[Promise]].
1. Let _moduleRequest_ be a new ModuleRequest Record { [[Specifier]]: _moduleSourceRecord_, [[Phase]]: _phase_, [[Attributes]]: « » }.
1. Perform HostLoadImportedModule(_referrer_, _moduleRequest_, ~empty~, _promiseCapability_).
1. Return _promiseCapability_.[[Promise]].