diff --git a/tools/isobuild/compiler-plugin.js b/tools/isobuild/compiler-plugin.js index 4215e133fc..24d859d06c 100644 --- a/tools/isobuild/compiler-plugin.js +++ b/tools/isobuild/compiler-plugin.js @@ -771,6 +771,15 @@ class ResourceSlot { } } +let babelRuntime; +function checkBabelRuntimeHelper(id) { + if (! babelRuntime) { + babelRuntime = require("../tool-env/isopackets.js") + .load("runtime")["babel-runtime"]; + } + return babelRuntime.checkHelper(id); +} + export class PackageSourceBatch { constructor(unibuild, processor, { sourceRoot, @@ -1112,10 +1121,7 @@ export class PackageSourceBatch { // relying on programs/server/npm/node_modules/babel-runtime, // but on the web these bundled files are all we have, so we'd // better not remove them. - if (parts[0] === "node_modules" && - parts[1] === "babel-runtime" && - (parts[2] === "helpers" || - parts[2].startsWith("regenerator"))) { + if (checkBabelRuntimeHelper(file.installPath)) { return; } } diff --git a/tools/tool-env/isopackets.js b/tools/tool-env/isopackets.js index 2e491a999d..c097a78bea 100644 --- a/tools/tool-env/isopackets.js +++ b/tools/tool-env/isopackets.js @@ -56,7 +56,8 @@ export const ISOPACKETS = { 'constraint-solver': ['constraint-solver'], 'cordova-support': ['boilerplate-generator', 'logging', 'webapp-hashing', 'xmlbuilder'], - 'logging': ['logging'] + 'logging': ['logging'], + 'runtime': ['babel-runtime'], }; // Caches isopackets in memory (each isopacket only needs to be loaded