diff options
Diffstat (limited to 'patches/metro+0.80.4.patch')
-rw-r--r-- | patches/metro+0.80.4.patch | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/patches/metro+0.80.4.patch b/patches/metro+0.80.4.patch new file mode 100644 index 000000000..f8ef67c84 --- /dev/null +++ b/patches/metro+0.80.4.patch @@ -0,0 +1,44 @@ +diff --git a/node_modules/metro/src/ModuleGraph/worker/JsFileWrapping.js b/node_modules/metro/src/ModuleGraph/worker/JsFileWrapping.js +index 48a1409..ef185c9 100644 +--- a/node_modules/metro/src/ModuleGraph/worker/JsFileWrapping.js ++++ b/node_modules/metro/src/ModuleGraph/worker/JsFileWrapping.js +@@ -70,14 +70,19 @@ function wrapModule( + importDefaultName, + importAllName, + dependencyMapName, +- globalPrefix ++ globalPrefix, ++ moduleFactoryName + ) { + const params = buildParameters( + importDefaultName, + importAllName, + dependencyMapName + ); +- const factory = functionFromProgram(fileAst.program, params); ++ const factory = functionFromProgram( ++ fileAst.program, ++ params, ++ moduleFactoryName ++ ); + const def = t.callExpression(t.identifier(`${globalPrefix}__d`), [factory]); + const ast = t.file(t.program([t.expressionStatement(def)])); + const requireName = renameRequires(ast); +@@ -107,7 +112,16 @@ function wrapJson(source, globalPrefix) { + "});", + ].join("\n"); + } +-function functionFromProgram(program, parameters) { ++const JS_INVALID_IDENT_RE = /[^a-zA-Z0-9$_]/g; ++function functionFromProgram(program, parameters, moduleFactoryName) { ++ let identifier; ++ if (typeof moduleFactoryName === "string" && moduleFactoryName !== "") { ++ // Keep the name readable so it shows up in profiler traces. ++ // Add an unlikely suffix to avoid collisions with the module code. ++ identifier = t.identifier( ++ `${moduleFactoryName.replace(JS_INVALID_IDENT_RE, "_")}__module_factory__` ++ ); ++ } + return t.functionExpression( + undefined, + parameters.map(makeIdentifier), |