Skip to content

Commit e4f78e7

Browse files
authored
Simplify Asyncify runtime pattern matching (#20216)
1 parent 23d08ab commit e4f78e7

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

src/library_async.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,14 @@ addToLibrary({
4141
#if ASYNCIFY_DEBUG
4242
dbg('asyncify instrumenting imports');
4343
#endif
44-
var importPatterns = [{{{ ASYNCIFY_IMPORTS.map(x => '/^' + x.split('.')[1].replace(new RegExp('\\*', 'g'), '.*') + '$/') }}}];
44+
var importPattern = {{{ new RegExp(`^(${ASYNCIFY_IMPORTS.map(x => x.split('.')[1]).join('|').replace(/\*/g, '.*')})$`) }}};
4545

4646
for (var x in imports) {
4747
(function(x) {
4848
var original = imports[x];
4949
var sig = original.sig;
5050
if (typeof original == 'function') {
51-
var isAsyncifyImport = original.isAsync ||
52-
importPatterns.some(pattern => !!x.match(pattern));
51+
var isAsyncifyImport = original.isAsync || importPattern.test(x);
5352
#if ASYNCIFY == 2
5453
// Wrap async imports with a suspending WebAssembly function.
5554
if (isAsyncifyImport) {
@@ -120,7 +119,7 @@ addToLibrary({
120119
dbg('asyncify instrumenting exports');
121120
#endif
122121
#if ASYNCIFY == 2
123-
var exportPatterns = [{{{ ASYNCIFY_EXPORTS.map(x => new RegExp('^' + x.replace(/\*/g, '.*') + '$')) }}}];
122+
var exportPattern = {{{ new RegExp(`^(${ASYNCIFY_EXPORTS.join('|').replace(/\*/g, '.*')})$`) }}};
124123
Asyncify.asyncExports = new Set();
125124
#endif
126125
var ret = {};
@@ -130,7 +129,7 @@ addToLibrary({
130129
if (typeof original == 'function') {
131130
#if ASYNCIFY == 2
132131
// Wrap all exports with a promising WebAssembly function.
133-
var isAsyncifyExport = exportPatterns.some(pattern => !!x.match(pattern));
132+
var isAsyncifyExport = exportPattern.test(x);
134133
if (isAsyncifyExport) {
135134
Asyncify.asyncExports.add(original);
136135
original = Asyncify.makeAsyncFunction(original);

0 commit comments

Comments
 (0)