Changeset 273292 in webkit
- Timestamp:
- Feb 22, 2021 6:02:01 PM (3 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r273269 r273292 1 2021-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 1 16 2021-02-22 Keith Miller <keith_miller@apple.com> 2 17 -
trunk/Source/JavaScriptCore/builtins/ModuleLoader.js
r273225 r273292 102 102 then: @undefined, 103 103 isAsync: false, 104 completionPromise: @undefined,105 104 }; 106 105 } … … 328 327 329 328 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 333 async 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 } 350 353 } 351 354 } -
trunk/Source/JavaScriptCore/runtime/JSModuleLoader.cpp
r273225 r273292 75 75 moduleDeclarationInstantiation moduleLoaderModuleDeclarationInstantiation DontEnum|Function 2 76 76 moduleEvaluation JSBuiltin DontEnum|Function 2 77 asyncModuleEvaluation JSBuiltin DontEnum|Function 3 77 78 evaluate moduleLoaderEvaluate DontEnum|Function 3 78 79 provideFetch JSBuiltin DontEnum|Function 2
Note: See TracChangeset
for help on using the changeset viewer.