diff --git a/spec.html b/spec.html index 4c2111e..338d690 100644 --- a/spec.html +++ b/spec.html @@ -40,77 +40,126 @@
The InnerModuleEvaluation abstract operation is used by Evaluate to perform the actual evaluation process for the Source Text Module Record _module_, as well as recursively on all other modules in the dependency graph. The _stack_ and _index_ parameters, as well as _module_'s [[DFSIndex]] and [[DFSAncestoreIndex]] fields, are used the same way as in InnerModuleInstantiation.
+The Evaluate concrete method of a Source Text Module Record implements the corresponding Module Record abstract method.
+By the time the promise returned by Evaluate settles, Evaluate transitions this module's [[Status]] from `"instantiated"` to `"evaluated"`.
-This abstract operation performs the following steps:
+If execution results in an exception, that exception is recorded in the [[EvaluationError]] field and rethrown by future invocations of Evaluate.
If execution results in a rejected promise, the promise's rejection reason is recorded in the [[EvaluationError]] field. Future invocations of Evaluate will then return a new promise rejected with that same rejection reason.
+ +This abstract method performs the following steps (most of the work is done by the auxiliary function InnerModuleEvaluation):
The ModuleExecution abstract operation is used by InnerModuleEvaluation to initialize the execution context of the module and evaluate the module's code within it.
+The InnerModuleEvaluation abstract operation is used by Evaluate to perform the actual evaluation process for the Source Text Module Record _module_, as well as recursively on all other modules in the dependency graph. The _stack_ and _index_ parameters, as well as _module_'s [[DFSIndex]] and [[DFSAncestoreIndex]] fields, are used the same way as in InnerModuleInstantiation.
-This abstract operation performs the following steps:
+This abstract operation performs the following steps:
-The ModuleExecution abstract operation is used by InnerModuleEvaluation to initialize the execution context of the module and evaluate the module's code within it.
+ +This abstract operation performs the following steps:
+ +