Changeset 273292 in webkit


Ignore:
Timestamp:
Feb 22, 2021 6:02:01 PM (3 years ago)
Author:
keith_miller@apple.com
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:
Location:
trunk/Source/JavaScriptCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r273269 r273292  
     12021-02-22  Keith Miller  <keith_miller@apple.com>
     2
     3        Move asyncModuleEvaluation into its own function and use intrinsic constants
     4        https://bugs.webkit.org/show_bug.cgi?id=222281
     5
     6        Reviewed by Yusuke Suzuki.
     7
     8        Also delete an unused field on the module entry.
     9
     10        * builtins/ModuleLoader.js:
     11        (globalPrivate.newRegistryEntry):
     12        (moduleEvaluation):
     13        (async asyncModuleEvaluation):
     14        * runtime/JSModuleLoader.cpp:
     15
    1162021-02-22  Keith Miller  <keith_miller@apple.com>
    217
  • trunk/Source/JavaScriptCore/builtins/ModuleLoader.js

    r273225 r273292  
    102102        then: @undefined,
    103103        isAsync: false,
    104         completionPromise: @undefined,
    105104    };
    106105}
     
    328327
    329328        this.evaluate(entry.key, entry.module, fetcher);
    330     } else {
    331         return (async function asyncModuleEvaluation(entry, dependencies) {
    332             for (var i = 0, length = dependencies.length; i < length; ++i)
    333                 await this.moduleEvaluation(dependencies[i], fetcher);
    334 
    335             var resumeMode = 0;
    336             while (true) {
    337                 var awaitedValue = this.evaluate(entry.key, entry.module, fetcher, awaitedValue, resumeMode);
    338                 if (@getAbstractModuleRecordInternalField(entry.module, @abstractModuleRecordFieldState) == @GeneratorStateExecuting)
    339                     return;
    340 
    341                 try {
    342                     awaitedValue = await awaitedValue;
    343                     resumeMode = 0;
    344                 } catch (e) {
    345                     awaitedValue = e;
    346                     resumeMode = 2;
    347                 }
    348             }
    349         }).@call(this, entry, dependencies);
     329    } else
     330        return this.asyncModuleEvaluation(entry, fetcher, dependencies);
     331}
     332
     333async function asyncModuleEvaluation(entry, fetcher, dependencies)
     334{
     335    "use strict";
     336
     337    for (var i = 0, length = dependencies.length; i < length; ++i)
     338        await this.moduleEvaluation(dependencies[i], fetcher);
     339
     340    var resumeMode = @GeneratorResumeModeNormal;
     341    while (true) {
     342        var awaitedValue = this.evaluate(entry.key, entry.module, fetcher, awaitedValue, resumeMode);
     343        if (@getAbstractModuleRecordInternalField(entry.module, @abstractModuleRecordFieldState) == @GeneratorStateExecuting)
     344            return;
     345
     346        try {
     347            awaitedValue = await awaitedValue;
     348            resumeMode = @GeneratorResumeModeNormal;
     349        } catch (e) {
     350            awaitedValue = e;
     351            resumeMode = @GeneratorResumeModeThrow;
     352        }
    350353    }
    351354}
  • trunk/Source/JavaScriptCore/runtime/JSModuleLoader.cpp

    r273225 r273292  
    7575    moduleDeclarationInstantiation moduleLoaderModuleDeclarationInstantiation DontEnum|Function 2
    7676    moduleEvaluation               JSBuiltin                                  DontEnum|Function 2
     77    asyncModuleEvaluation          JSBuiltin                                  DontEnum|Function 3
    7778    evaluate                       moduleLoaderEvaluate                       DontEnum|Function 3
    7879    provideFetch                   JSBuiltin                                  DontEnum|Function 2
Note: See TracChangeset for help on using the changeset viewer.