From 4b6d77d42ebcdcf0592124dc910913c1948b130c 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 (#1669) 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 905efafea9..a36a6dc647 100644 --- a/spec.html +++ b/spec.html @@ -23162,6 +23162,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.