Skip to content

Commit 5665606

Browse files
author
David Heinemeier Hansson
committed
Update to esms 1.0
1 parent 616c90f commit 5665606

File tree

1 file changed

+9
-21
lines changed

1 file changed

+9
-21
lines changed

app/assets/javascripts/es-module-shims.js

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
/* ES Module Shims CSP 0.15.1 */
1+
/* ES Module Shims 1.0.0 */
22
(function () {
33

4-
Promise.resolve();
5-
64
const edge = navigator.userAgent.match(/Edge\/\d\d\.\d+$/);
75

86
let baseUrl;
@@ -331,7 +329,7 @@
331329

332330
let importMap = { imports: {}, scopes: {} };
333331
let importMapSrcOrLazy = false;
334-
let importMapPromise = featureDetectionPromise;
332+
let importMapPromise = featureDetectionPromise.then(() => undefined);
335333

336334
let acceptingImportMaps = true;
337335
let nativeAcceptingImportMaps = true;
@@ -346,21 +344,20 @@
346344
}
347345
await importMapPromise;
348346
// early analysis opt-out - no need to even fetch if we have feature support
349-
if (!shimMode && supportsDynamicImport && supportsImportMeta && supportsImportMaps && (!jsonModulesEnabled || supportsJsonAssertions) && (!cssModulesEnabled || supportsCssAssertions) && !importMapSrcOrLazy) {
347+
if (!shimMode && supportsDynamicImport && supportsImportMeta && supportsImportMaps && (!jsonModulesEnabled || supportsJsonAssertions) && (!cssModulesEnabled || supportsCssAssertions) && !importMapSrcOrLazy && !false) {
350348
// for polyfill case, only dynamic import needs a return value here, and dynamic import will never pass nativelyLoaded
351349
if (nativelyLoaded)
352350
return null;
353351
await lastStaticLoadPromise;
354352
return dynamicImport(source ? createBlob(source) : url, { errUrl: url || source });
355353
}
356-
await undefined;
357354
const load = getOrCreateLoad(url, fetchOpts, source);
358355
const seen = {};
359356
await loadAll(load, seen);
360357
lastLoad = undefined;
361358
resolveDeps(load, seen);
362359
await lastStaticLoadPromise;
363-
if (source && !shimMode && !load.n) {
360+
if (source && !shimMode && !load.n && !false) {
364361
const module = await dynamicImport(createBlob(source), { errUrl: source });
365362
if (revokeBlobURLs) revokeObjectURLs(Object.keys(seen));
366363
return module;
@@ -490,17 +487,11 @@
490487
resolvedSource += source.slice(lastIndex);
491488
}
492489

493-
resolvedSource = resolvedSource.replace(/\/\/# sourceMappingURL=(.*)\s*$/, (match, url) => {
494-
return match.replace(url, new URL(url, load.r));
495-
});
490+
resolvedSource = resolvedSource.replace(/\/\/# sourceMappingURL=(.*)\s*$/, (match, url) => match.replace(url, () => new URL(url, load.r)));
496491
let hasSourceURL = false;
497-
resolvedSource = resolvedSource.replace(/\/\/# sourceURL=(.*)\s*$/, (match, url) => {
498-
hasSourceURL = true;
499-
return match.replace(url, new URL(url, load.r));
500-
});
501-
if (!hasSourceURL) {
492+
resolvedSource = resolvedSource.replace(/\/\/# sourceURL=(.*)\s*$/, (match, url) => (hasSourceURL = true, match.replace(url, () => new URL(url, load.r))));
493+
if (!hasSourceURL)
502494
resolvedSource += '\n//# sourceURL=' + load.r;
503-
}
504495

505496
load.b = lastLoad = createBlob(resolvedSource);
506497
load.S = undefined;
@@ -627,13 +618,10 @@
627618
return load;
628619
}
629620

630-
const scriptQuery = 'script[type="module-shim"],script[type="importmap-shim"],script[type="module"],script[type="importmap"]';
631-
const preloadQuery = 'link[rel="modulepreload"]';
632-
633621
function processScripts () {
634-
for (const link of document.querySelectorAll(preloadQuery))
622+
for (const link of document.querySelectorAll('link[rel="modulepreload"]'))
635623
processPreload(link);
636-
const scripts = document.querySelectorAll(scriptQuery);
624+
const scripts = document.querySelectorAll('script[type="module-shim"],script[type="importmap-shim"],script[type="module"],script[type="importmap"]');
637625
// early shim mode opt-in
638626
if (!shimMode) {
639627
for (const script of scripts) {

0 commit comments

Comments
 (0)