From c77d2564ec3d9675bfc88bcfa1bc4387dcd3bf97 Mon Sep 17 00:00:00 2001 From: Gus Caplan Date: Wed, 14 Aug 2019 15:33:25 -0500 Subject: [PATCH] Normative: Prevent DFS invariants from being broken An implementation of HostImportModuleDynamically, could, in theory, call Evaluate() in the same tick as the call to HostImportModuleDynamically. If that call to HostImportModuleDynamically was the direct result of another call to Evaluate(), this may eagerly evaluate a module that is already queued to be run at a later time. --- spec.html | 1 + 1 file changed, 1 insertion(+) diff --git a/spec.html b/spec.html index aa6a0c320cf..4bc4ddf5508 100644 --- a/spec.html +++ b/spec.html @@ -21880,6 +21880,7 @@

Evaluate ( ) Concrete Method

This abstract method performs the following steps (most of the work is done by the auxiliary function InnerModuleEvaluation):

+ 1. Assert: This call to Evaluate is not happening at the same time as another call to Evaluate within the surrounding agent. 1. Let _module_ be this Cyclic Module Record. 1. Assert: _module_.[[Status]] is `"linked"` or `"evaluated"`. 1. Let _stack_ be a new empty List.