Title: [273292] trunk/Source/_javascript_Core
Revision
273292
Author
[email protected]
Date
2021-02-22 18:02:01 -0800 (Mon, 22 Feb 2021)

Log Message

Move asyncModuleEvaluation into its own function and use intrinsic constants
https://bugs.webkit.org/show_bug.cgi?id=222281

Reviewed by Yusuke Suzuki.

Also delete an unused field on the module entry.

* builtins/ModuleLoader.js:
(globalPrivate.newRegistryEntry):
(moduleEvaluation):
(async asyncModuleEvaluation):
* runtime/JSModuleLoader.cpp:

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (273291 => 273292)


--- trunk/Source/_javascript_Core/ChangeLog	2021-02-23 02:00:56 UTC (rev 273291)
+++ trunk/Source/_javascript_Core/ChangeLog	2021-02-23 02:02:01 UTC (rev 273292)
@@ -1,5 +1,20 @@
 2021-02-22  Keith Miller  <[email protected]>
 
+        Move asyncModuleEvaluation into its own function and use intrinsic constants
+        https://bugs.webkit.org/show_bug.cgi?id=222281
+
+        Reviewed by Yusuke Suzuki.
+
+        Also delete an unused field on the module entry.
+
+        * builtins/ModuleLoader.js:
+        (globalPrivate.newRegistryEntry):
+        (moduleEvaluation):
+        (async asyncModuleEvaluation):
+        * runtime/JSModuleLoader.cpp:
+
+2021-02-22  Keith Miller  <[email protected]>
+
         Remove unused internal fields from AbstractModuleLoader
         https://bugs.webkit.org/show_bug.cgi?id=222256
 

Modified: trunk/Source/_javascript_Core/builtins/ModuleLoader.js (273291 => 273292)


--- trunk/Source/_javascript_Core/builtins/ModuleLoader.js	2021-02-23 02:00:56 UTC (rev 273291)
+++ trunk/Source/_javascript_Core/builtins/ModuleLoader.js	2021-02-23 02:02:01 UTC (rev 273292)
@@ -101,7 +101,6 @@
         evaluated: false,
         then: @undefined,
         isAsync: false,
-        completionPromise: @undefined,
     };
 }
 
@@ -327,26 +326,30 @@
         }
 
         this.evaluate(entry.key, entry.module, fetcher);
-    } else {
-        return (async function asyncModuleEvaluation(entry, dependencies) {
-            for (var i = 0, length = dependencies.length; i < length; ++i)
-                await this.moduleEvaluation(dependencies[i], fetcher);
+    } else
+        return this.asyncModuleEvaluation(entry, fetcher, dependencies);
+}
 
-            var resumeMode = 0;
-            while (true) {
-                var awaitedValue = this.evaluate(entry.key, entry.module, fetcher, awaitedValue, resumeMode);
-                if (@getAbstractModuleRecordInternalField(entry.module, @abstractModuleRecordFieldState) == @GeneratorStateExecuting)
-                    return;
+async function asyncModuleEvaluation(entry, fetcher, dependencies)
+{
+    "use strict";
 
-                try {
-                    awaitedValue = await awaitedValue;
-                    resumeMode = 0;
-                } catch (e) {
-                    awaitedValue = e;
-                    resumeMode = 2;
-                }
-            }
-        }).@call(this, entry, dependencies);
+    for (var i = 0, length = dependencies.length; i < length; ++i)
+        await this.moduleEvaluation(dependencies[i], fetcher);
+
+    var resumeMode = @GeneratorResumeModeNormal;
+    while (true) {
+        var awaitedValue = this.evaluate(entry.key, entry.module, fetcher, awaitedValue, resumeMode);
+        if (@getAbstractModuleRecordInternalField(entry.module, @abstractModuleRecordFieldState) == @GeneratorStateExecuting)
+            return;
+
+        try {
+            awaitedValue = await awaitedValue;
+            resumeMode = @GeneratorResumeModeNormal;
+        } catch (e) {
+            awaitedValue = e;
+            resumeMode = @GeneratorResumeModeThrow;
+        }
     }
 }
 

Modified: trunk/Source/_javascript_Core/runtime/JSModuleLoader.cpp (273291 => 273292)


--- trunk/Source/_javascript_Core/runtime/JSModuleLoader.cpp	2021-02-23 02:00:56 UTC (rev 273291)
+++ trunk/Source/_javascript_Core/runtime/JSModuleLoader.cpp	2021-02-23 02:02:01 UTC (rev 273292)
@@ -74,6 +74,7 @@
     link                           JSBuiltin                                  DontEnum|Function 2
     moduleDeclarationInstantiation moduleLoaderModuleDeclarationInstantiation DontEnum|Function 2
     moduleEvaluation               JSBuiltin                                  DontEnum|Function 2
+    asyncModuleEvaluation          JSBuiltin                                  DontEnum|Function 3
     evaluate                       moduleLoaderEvaluate                       DontEnum|Function 3
     provideFetch                   JSBuiltin                                  DontEnum|Function 2
     loadAndEvaluateModule          JSBuiltin                                  DontEnum|Function 3
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to