@depup/webpack 5.106.1-depup.0 → 5.109.2-depup.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -11
- package/bin/webpack.js +12 -0
- package/changes.json +16 -24
- package/hot/dev-server.js +2 -0
- package/lib/APIPlugin.js +60 -35
- package/lib/AsyncDependenciesBlock.js +3 -0
- package/lib/AutomaticPrefetchPlugin.js +6 -1
- package/lib/BannerPlugin.js +13 -5
- package/lib/Cache.js +27 -5
- package/lib/CacheFacade.js +41 -0
- package/lib/Chunk.js +71 -25
- package/lib/ChunkGraph.js +153 -19
- package/lib/ChunkGroup.js +115 -28
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CircularModulesPlugin.js +190 -0
- package/lib/CleanPlugin.js +27 -28
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +85 -37
- package/lib/Compilation.js +656 -112
- package/lib/Compiler.js +109 -35
- package/lib/ConcatenationScope.js +34 -4
- package/lib/ConditionalInitFragment.js +6 -0
- package/lib/ConstPlugin.js +15 -12
- package/lib/ContextExclusionPlugin.js +3 -1
- package/lib/ContextModule.js +345 -55
- package/lib/ContextModuleFactory.js +193 -51
- package/lib/ContextReplacementPlugin.js +8 -1
- package/lib/DefinePlugin.js +537 -139
- package/lib/DependenciesBlock.js +6 -1
- package/lib/Dependency.js +159 -11
- package/lib/DependencyTemplate.js +7 -1
- package/lib/DependencyTemplates.js +4 -0
- package/lib/DotenvPlugin.js +3 -0
- package/lib/DynamicEntryPlugin.js +3 -1
- package/lib/EntryOptionPlugin.js +42 -2
- package/lib/EntryPlugin.js +4 -1
- package/lib/Entrypoint.js +5 -1
- package/lib/EnvironmentPlugin.js +3 -2
- package/lib/ErrorHelpers.js +7 -0
- package/lib/EvalDevToolModulePlugin.js +3 -1
- package/lib/EvalSourceMapDevToolPlugin.js +11 -11
- package/lib/ExportsInfo.js +421 -113
- package/lib/ExportsInfoApiPlugin.js +4 -3
- package/lib/ExternalModule.js +381 -80
- package/lib/ExternalModuleFactoryPlugin.js +75 -3
- package/lib/ExternalsPlugin.js +3 -1
- package/lib/FileSystemInfo.js +701 -175
- package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
- package/lib/FlagDependencyExportsPlugin.js +82 -9
- package/lib/FlagDependencyUsagePlugin.js +115 -8
- package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
- package/lib/Generator.js +24 -3
- package/lib/HotModuleReplacementPlugin.js +110 -44
- package/lib/IgnorePlugin.js +5 -2
- package/lib/IgnoreWarningsPlugin.js +2 -1
- package/lib/InitFragment.js +33 -30
- package/lib/JavascriptMetaInfoPlugin.js +9 -6
- package/lib/LazyBarrel.js +389 -0
- package/lib/LibraryTemplatePlugin.js +2 -1
- package/lib/LoaderOptionsPlugin.js +3 -1
- package/lib/LoaderTargetPlugin.js +3 -1
- package/lib/MainTemplate.js +15 -0
- package/lib/ManifestPlugin.js +9 -2
- package/lib/Module.js +121 -57
- package/lib/ModuleFactory.js +6 -1
- package/lib/ModuleFilenameHelpers.js +18 -4
- package/lib/ModuleGraph.js +69 -2
- package/lib/ModuleGraphConnection.js +9 -0
- package/lib/ModuleInfoHeaderPlugin.js +5 -0
- package/lib/ModuleNotFoundError.js +3 -83
- package/lib/ModuleProfile.js +27 -1
- package/lib/ModuleSourceTypeConstants.js +52 -19
- package/lib/ModuleTemplate.js +10 -0
- package/lib/ModuleTypeConstants.js +20 -4
- package/lib/MultiCompiler.js +59 -4
- package/lib/MultiStats.js +9 -0
- package/lib/MultiWatching.js +6 -0
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +78 -46
- package/lib/NormalModule.js +519 -206
- package/lib/NormalModuleFactory.js +156 -31
- package/lib/NormalModuleReplacementPlugin.js +3 -1
- package/lib/NullFactory.js +1 -0
- package/lib/OptionsApply.js +1 -0
- package/lib/Parser.js +3 -1
- package/lib/PlatformPlugin.js +2 -1
- package/lib/PrefetchPlugin.js +4 -1
- package/lib/ProgressPlugin.js +351 -161
- package/lib/ProvidePlugin.js +6 -3
- package/lib/RawModule.js +32 -16
- package/lib/RecordIdsPlugin.js +9 -0
- package/lib/RequestShortener.js +8 -0
- package/lib/ResolverFactory.js +5 -0
- package/lib/RuntimeGlobals.js +58 -5
- package/lib/RuntimeModule.js +22 -7
- package/lib/RuntimePlugin.js +123 -118
- package/lib/RuntimeTemplate.js +616 -37
- package/lib/SelfModuleFactory.js +3 -0
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
- package/lib/SourceMapDevToolPlugin.js +341 -63
- package/lib/Stats.js +6 -0
- package/lib/Template.js +52 -6
- package/lib/TemplatedPathPlugin.js +505 -138
- package/lib/UseStrictPlugin.js +3 -2
- package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
- package/lib/WarnDeprecatedOptionPlugin.js +6 -2
- package/lib/WarnNoModeSetPlugin.js +18 -2
- package/lib/WatchIgnorePlugin.js +5 -1
- package/lib/Watching.js +25 -3
- package/lib/WebpackError.js +3 -74
- package/lib/WebpackIsIncludedPlugin.js +4 -2
- package/lib/WebpackOptionsApply.js +88 -25
- package/lib/WebpackOptionsDefaulter.js +1 -0
- package/lib/asset/AssetBytesGenerator.js +28 -10
- package/lib/asset/AssetBytesParser.js +1 -0
- package/lib/asset/AssetGenerator.js +199 -60
- package/lib/asset/AssetModule.js +47 -0
- package/lib/asset/AssetModulesPlugin.js +115 -24
- package/lib/asset/AssetParser.js +4 -2
- package/lib/asset/AssetSourceGenerator.js +26 -8
- package/lib/asset/AssetSourceParser.js +1 -0
- package/lib/asset/RawDataUrlModule.js +23 -13
- package/lib/asset/WebManifestGenerator.js +164 -0
- package/lib/asset/WebManifestParser.js +130 -0
- package/lib/async-modules/AsyncModuleHelpers.js +1 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/async-modules/isGeneratorLowered.js +26 -0
- package/lib/buildChunkGraph.js +107 -15
- package/lib/bun/BunTargetPlugin.js +42 -0
- package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
- package/lib/cache/AddManagedPathsPlugin.js +5 -1
- package/lib/cache/IdleFileCachePlugin.js +6 -1
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
- package/lib/cache/PackFileCacheStrategy.js +302 -12
- package/lib/cache/ResolverCachePlugin.js +12 -1
- package/lib/cache/getLazyHashedEtag.js +13 -2
- package/lib/cache/mergeEtags.js +4 -0
- package/lib/cli.js +142 -20
- package/lib/config/browserslistTargetHandler.js +141 -0
- package/lib/config/defaults.js +612 -43
- package/lib/config/defineConfig.js +31 -0
- package/lib/config/normalization.js +46 -1
- package/lib/config/target.js +200 -2
- package/lib/container/ContainerEntryDependency.js +2 -0
- package/lib/container/ContainerEntryModule.js +27 -14
- package/lib/container/ContainerEntryModuleFactory.js +1 -0
- package/lib/container/ContainerExposedDependency.js +6 -2
- package/lib/container/ContainerPlugin.js +2 -1
- package/lib/container/ContainerReferencePlugin.js +3 -2
- package/lib/container/FallbackDependency.js +9 -7
- package/lib/container/FallbackItemDependency.js +1 -0
- package/lib/container/FallbackModule.js +22 -9
- package/lib/container/FallbackModuleFactory.js +1 -0
- package/lib/container/HoistContainerReferencesPlugin.js +47 -55
- package/lib/container/ModuleFederationPlugin.js +21 -29
- package/lib/container/RemoteModule.js +33 -10
- package/lib/container/RemoteRuntimeModule.js +15 -12
- package/lib/container/RemoteToExternalDependency.js +1 -0
- package/lib/container/options.js +7 -0
- package/lib/css/CssGenerator.js +540 -272
- package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
- package/lib/css/CssLoadingRuntimeModule.js +173 -81
- package/lib/{CssModule.js → css/CssModule.js} +72 -37
- package/lib/css/CssModulesPlugin.js +371 -208
- package/lib/css/CssParser.js +3538 -1963
- package/lib/css/syntax.js +4155 -0
- package/lib/debug/ProfilingPlugin.js +33 -2
- package/lib/deno/DenoTargetPlugin.js +41 -0
- package/lib/dependencies/AMDDefineDependency.js +29 -17
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
- package/lib/dependencies/AMDPlugin.js +6 -3
- package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
- package/lib/dependencies/AMDRequireContextDependency.js +10 -11
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
- package/lib/dependencies/AMDRequireDependency.js +28 -20
- package/lib/dependencies/AMDRequireItemDependency.js +1 -0
- package/lib/dependencies/AMDRuntimeModules.js +3 -0
- package/lib/dependencies/CachedConstDependency.js +9 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +157 -38
- package/lib/dependencies/CommonJsExportsDependency.js +74 -20
- package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
- package/lib/dependencies/CommonJsFullRequireDependency.js +91 -27
- package/lib/dependencies/CommonJsImportsParserPlugin.js +189 -24
- package/lib/dependencies/CommonJsPlugin.js +7 -4
- package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
- package/lib/dependencies/CommonJsRequireDependency.js +135 -13
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
- package/lib/dependencies/ConstDependency.js +22 -12
- package/lib/dependencies/ContextDependency.js +13 -2
- package/lib/dependencies/ContextDependencyHelpers.js +7 -4
- package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/ContextElementDependency.js +27 -14
- package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
- package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
- package/lib/dependencies/CriticalDependencyWarning.js +3 -1
- package/lib/dependencies/CssIcssExportDependency.js +681 -367
- package/lib/dependencies/CssIcssImportDependency.js +62 -17
- package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
- package/lib/dependencies/CssImportDependency.js +37 -1
- package/lib/dependencies/CssUrlDependency.js +87 -14
- package/lib/dependencies/DelegatedSourceDependency.js +1 -0
- package/lib/dependencies/DllEntryDependency.js +12 -13
- package/lib/dependencies/DynamicExports.js +5 -0
- package/lib/dependencies/EntryDependency.js +1 -0
- package/lib/dependencies/ExportBindingInitFragment.js +164 -0
- package/lib/dependencies/ExportsInfoDependency.js +18 -12
- package/lib/dependencies/ExternalModuleDependency.js +13 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
- package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
- package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
- package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +34 -3
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
- package/lib/dependencies/HarmonyExportExpressionDependency.js +133 -43
- package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +268 -44
- package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
- package/lib/dependencies/HarmonyExports.js +6 -1
- package/lib/dependencies/HarmonyImportDependency.js +60 -4
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
- package/lib/dependencies/HarmonyImportGuard.js +427 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +146 -24
- package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
- package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
- package/lib/dependencies/HtmlEntryDependency.js +1295 -0
- package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
- package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
- package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
- package/lib/dependencies/HtmlSourceDependency.js +172 -0
- package/lib/dependencies/ImportContextDependency.js +9 -9
- package/lib/dependencies/ImportDependency.js +92 -3
- package/lib/dependencies/ImportEagerDependency.js +2 -0
- package/lib/dependencies/ImportMetaContextDependency.js +1 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
- package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
- package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
- package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
- package/lib/dependencies/ImportMetaPlugin.js +595 -209
- package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
- package/lib/dependencies/ImportParserPlugin.js +114 -27
- package/lib/dependencies/ImportPhase.js +17 -11
- package/lib/dependencies/ImportPlugin.js +2 -1
- package/lib/dependencies/ImportWeakDependency.js +3 -0
- package/lib/dependencies/JsonExportsDependency.js +15 -10
- package/lib/dependencies/LoaderDependency.js +2 -0
- package/lib/dependencies/LoaderImportDependency.js +3 -0
- package/lib/dependencies/LoaderPlugin.js +9 -2
- package/lib/dependencies/LocalModule.js +15 -12
- package/lib/dependencies/LocalModuleDependency.js +15 -13
- package/lib/dependencies/LocalModulesHelpers.js +3 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
- package/lib/dependencies/ModuleDependency.js +14 -0
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
- package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/PrefetchDependency.js +1 -0
- package/lib/dependencies/ProvidedDependency.js +36 -27
- package/lib/dependencies/PureExpressionDependency.js +14 -10
- package/lib/dependencies/RequireContextDependency.js +1 -0
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
- package/lib/dependencies/RequireContextPlugin.js +2 -1
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
- package/lib/dependencies/RequireEnsureDependency.js +16 -13
- package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
- package/lib/dependencies/RequireEnsurePlugin.js +2 -1
- package/lib/dependencies/RequireHeaderDependency.js +7 -4
- package/lib/dependencies/RequireIncludeDependency.js +2 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
- package/lib/dependencies/RequireIncludePlugin.js +2 -1
- package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
- package/lib/dependencies/RequireResolveContextDependency.js +10 -11
- package/lib/dependencies/RequireResolveDependency.js +2 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
- package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
- package/lib/dependencies/StaticExportsDependency.js +13 -10
- package/lib/dependencies/SystemPlugin.js +9 -6
- package/lib/dependencies/SystemRuntimeModule.js +1 -0
- package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
- package/lib/dependencies/URLContextDependency.js +8 -7
- package/lib/dependencies/URLDependency.js +157 -33
- package/lib/dependencies/URLPlugin.js +2 -0
- package/lib/dependencies/UnsupportedDependency.js +12 -13
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
- package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
- package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
- package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
- package/lib/dependencies/WorkerDependency.js +111 -27
- package/lib/dependencies/WorkletDependency.js +278 -0
- package/lib/dependencies/getFunctionExpression.js +1 -0
- package/lib/dependencies/processExportInfo.js +14 -11
- package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
- package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
- package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
- package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
- package/lib/{DllModule.js → dll/DllModule.js} +36 -24
- package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
- package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
- package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
- package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
- package/lib/electron/ElectronTargetPlugin.js +24 -5
- package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
- package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
- package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
- package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
- package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
- package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
- package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
- package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
- package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
- package/lib/errors/JSONParseError.js +115 -0
- package/lib/errors/LoaderLoadingError.js +20 -0
- package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
- package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
- package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
- package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
- package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
- package/lib/errors/ModuleNotFoundError.js +94 -0
- package/lib/errors/ModuleParseError.js +141 -0
- package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
- package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
- package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
- package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
- package/lib/errors/NonErrorEmittedError.js +30 -0
- package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
- package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
- package/lib/errors/WebpackError.js +84 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
- package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +80 -52
- package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
- package/lib/hmr/LazyCompilationPlugin.js +154 -7
- package/lib/hmr/lazyCompilationBackend.js +53 -12
- package/lib/html/HtmlGenerator.js +1490 -0
- package/lib/html/HtmlModule.js +41 -0
- package/lib/html/HtmlModulesPlugin.js +1129 -0
- package/lib/html/HtmlParser.js +1970 -0
- package/lib/html/favicon.svg +1 -0
- package/lib/html/syntax.js +9106 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
- package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
- package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
- package/lib/ids/HashedModuleIdsPlugin.js +2 -1
- package/lib/ids/IdHelpers.js +49 -12
- package/lib/ids/NamedChunkIdsPlugin.js +3 -1
- package/lib/ids/NamedModuleIdsPlugin.js +3 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
- package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
- package/lib/ids/SyncModuleIdsPlugin.js +3 -1
- package/lib/index.js +66 -15
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
- package/lib/javascript/BasicEvaluatedExpression.js +370 -49
- package/lib/javascript/ChunkFormatHelpers.js +2 -1
- package/lib/javascript/ChunkHelpers.js +1 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
- package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
- package/lib/javascript/JavascriptGenerator.js +213 -51
- package/lib/javascript/JavascriptModule.js +54 -0
- package/lib/javascript/JavascriptModulesPlugin.js +628 -198
- package/lib/javascript/JavascriptParser.js +1334 -471
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/javascript/syntax.js +5037 -0
- package/lib/json/JsonData.js +5 -0
- package/lib/json/JsonGenerator.js +21 -0
- package/lib/json/JsonModule.js +40 -0
- package/lib/json/JsonModulesPlugin.js +8 -1
- package/lib/json/JsonParser.js +18 -27
- package/lib/library/AbstractLibraryPlugin.js +17 -2
- package/lib/library/AmdLibraryPlugin.js +8 -0
- package/lib/library/AssignLibraryPlugin.js +21 -3
- package/lib/library/EnableLibraryPlugin.js +8 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
- package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
- package/lib/library/JsonpLibraryPlugin.js +8 -0
- package/lib/library/ModuleLibraryPlugin.js +154 -7
- package/lib/library/SystemLibraryPlugin.js +11 -3
- package/lib/library/UmdLibraryPlugin.js +16 -0
- package/lib/loaders/LoaderRunner.js +714 -0
- package/lib/loaders/loadLoader.js +100 -0
- package/lib/logging/Logger.js +17 -0
- package/lib/logging/createConsoleLogger.js +7 -0
- package/lib/logging/runtime.js +2 -0
- package/lib/logging/truncateArgs.js +2 -0
- package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
- package/lib/node/NodeEnvironmentPlugin.js +7 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +4 -63
- package/lib/node/NodeTemplatePlugin.js +3 -1
- package/lib/node/NodeWatchFileSystem.js +40 -22
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +33 -3
- package/lib/node/ReadFileCompileWasmPlugin.js +28 -3
- package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
- package/lib/node/nodeBuiltins.js +80 -0
- package/lib/node/nodeConsole.js +116 -64
- package/lib/optimize/AggressiveMergingPlugin.js +22 -16
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +603 -130
- package/lib/optimize/ConstExportsPlugin.js +211 -0
- package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
- package/lib/optimize/InlineExports.js +178 -0
- package/lib/optimize/InnerGraph.js +374 -262
- package/lib/optimize/InnerGraphPlugin.js +246 -117
- package/lib/optimize/LimitChunkCountPlugin.js +9 -0
- package/lib/optimize/MangleExportsPlugin.js +5 -1
- package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
- package/lib/optimize/MinChunkSizePlugin.js +2 -1
- package/lib/optimize/MinMaxSizeWarning.js +5 -4
- package/lib/optimize/ModuleConcatenationPlugin.js +229 -55
- package/lib/optimize/RealContentHashPlugin.js +130 -52
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
- package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
- package/lib/optimize/RuntimeChunkPlugin.js +2 -1
- package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
- package/lib/optimize/SplitChunksPlugin.js +200 -50
- package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
- package/lib/performance/NoAsyncChunksWarning.js +5 -3
- package/lib/performance/SizeLimitsPlugin.js +8 -2
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
- package/lib/prefetch/ResourceHintPlugin.js +687 -0
- package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
- package/lib/prefetch/parseResourceHintOptions.js +103 -0
- package/lib/rules/BasicEffectRulePlugin.js +3 -0
- package/lib/rules/BasicMatcherRulePlugin.js +3 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
- package/lib/rules/RuleSetCompiler.js +132 -0
- package/lib/rules/UseEffectRulePlugin.js +10 -3
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
- package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
- package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
- package/lib/runtime/BaseUriRuntimeModule.js +1 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
- package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
- package/lib/runtime/CompatRuntimeModule.js +2 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
- package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
- package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
- package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
- package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
- package/lib/runtime/HelperRuntimeModule.js +5 -0
- package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
- package/lib/runtime/NonceRuntimeModule.js +1 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
- package/lib/runtime/PublicPathRuntimeModule.js +1 -0
- package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
- package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
- package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
- package/lib/runtime/SystemContextRuntimeModule.js +1 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
- package/lib/runtime/WorkerRuntimeModule.js +33 -0
- package/lib/schemes/DataUriPlugin.js +14 -2
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +86 -4
- package/lib/schemes/VirtualUrlPlugin.js +8 -4
- package/lib/serialization/AggregateErrorSerializer.js +9 -6
- package/lib/serialization/ArraySerializer.js +6 -8
- package/lib/serialization/BinaryMiddleware.js +427 -1006
- package/lib/serialization/DateObjectSerializer.js +4 -2
- package/lib/serialization/ErrorObjectSerializer.js +10 -6
- package/lib/serialization/FileMiddleware.js +345 -59
- package/lib/serialization/MapObjectSerializer.js +7 -9
- package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
- package/lib/serialization/ObjectMiddleware.js +73 -13
- package/lib/serialization/PlainObjectSerializer.js +16 -8
- package/lib/serialization/RegExpObjectSerializer.js +4 -2
- package/lib/serialization/Serializer.js +6 -0
- package/lib/serialization/SerializerMiddleware.js +14 -2
- package/lib/serialization/SetObjectSerializer.js +6 -8
- package/lib/serialization/SingleItemMiddleware.js +3 -0
- package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
- package/lib/sharing/ConsumeSharedModule.js +21 -7
- package/lib/sharing/ConsumeSharedPlugin.js +11 -11
- package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
- package/lib/sharing/ProvideForSharedDependency.js +1 -0
- package/lib/sharing/ProvideSharedDependency.js +34 -15
- package/lib/sharing/ProvideSharedModule.js +42 -12
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
- package/lib/sharing/ProvideSharedPlugin.js +13 -8
- package/lib/sharing/SharePlugin.js +5 -1
- package/lib/sharing/ShareRuntimeModule.js +19 -16
- package/lib/sharing/resolveMatchedConfigs.js +6 -2
- package/lib/sharing/utils.js +9 -1
- package/lib/stats/DefaultStatsFactoryPlugin.js +289 -201
- package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +74 -170
- package/lib/stats/StatsFactory.js +70 -27
- package/lib/stats/StatsPrinter.js +16 -2
- package/lib/typescript/TypeScriptPlugin.js +210 -0
- package/lib/url/URLParserPlugin.js +111 -23
- package/lib/util/ArrayHelpers.js +1 -0
- package/lib/util/ArrayQueue.js +10 -5
- package/lib/util/AsyncQueue.js +154 -74
- package/lib/util/Hash.js +2 -2
- package/lib/util/IterableHelpers.js +3 -0
- package/lib/util/LazyBucketSortedSet.js +26 -0
- package/lib/util/LazySet.js +45 -4
- package/lib/util/LocConverter.js +64 -0
- package/lib/util/ParallelismFactorCalculator.js +1 -0
- package/lib/util/Queue.js +6 -3
- package/lib/util/Semaphore.js +15 -1
- package/lib/util/SetHelpers.js +4 -1
- package/lib/util/SortableSet.js +7 -1
- package/lib/util/SourceProcessor.js +119 -0
- package/lib/util/StackedCacheMap.js +20 -3
- package/lib/util/StackedMap.js +162 -43
- package/lib/util/StringXor.js +1 -1
- package/lib/util/TupleQueue.js +7 -3
- package/lib/util/TupleSet.js +14 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -0
- package/lib/util/WeakTupleMap.js +60 -1
- package/lib/util/binarySearchBounds.js +3 -2
- package/lib/util/chainedImports.js +3 -3
- package/lib/util/cleverMerge.js +19 -2
- package/lib/util/comparators.js +35 -4
- package/lib/util/compileBooleanMatcher.js +9 -0
- package/lib/util/concatenate.js +80 -24
- package/lib/util/conventions.js +46 -1
- package/lib/util/createHash.js +0 -1
- package/lib/util/createHooksRegistry.js +43 -0
- package/lib/util/createMappings.js +118 -0
- package/lib/util/dataURL.js +3 -2
- package/lib/util/deprecation.js +19 -0
- package/lib/util/deterministicGrouping.js +46 -17
- package/lib/util/extractSourceMap.js +2 -1
- package/lib/util/extractUrlAndGlobal.js +1 -0
- package/lib/util/findGraphRoots.js +7 -0
- package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
- package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
- package/lib/util/fs.js +87 -14
- package/lib/util/generateDebugId.js +1 -0
- package/lib/util/globUtils.js +710 -0
- package/lib/util/hash/BatchedHash.js +1 -0
- package/lib/util/hash/BulkUpdateHash.js +1 -0
- package/lib/util/hash/DebugHash.js +1 -0
- package/lib/util/hash/hash-digest.js +32 -15
- package/lib/util/hash/md4.js +1 -1
- package/lib/util/hash/wasm-hash.js +5 -0
- package/lib/util/hash/xxhash64.js +1 -1
- package/lib/util/identifier.js +118 -7
- package/lib/util/implicitTypeLoaderFallback.js +62 -0
- package/lib/util/internalSerializables.js +102 -60
- package/lib/util/magicComment.js +149 -7
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/memoize.js +2 -0
- package/lib/util/mimeTypes.js +176 -0
- package/lib/util/nonNumericOnlyHash.js +31 -1
- package/lib/util/numberHash.js +2 -2
- package/lib/util/parseJson.js +41 -0
- package/lib/util/processAsyncTree.js +8 -0
- package/lib/util/property.js +9 -2
- package/lib/util/publicPathPlaceholder.js +64 -0
- package/lib/util/registerExternalSerializer.js +24 -4
- package/lib/util/removeBOM.js +1 -0
- package/lib/util/runtime.js +32 -0
- package/lib/util/semver.js +15 -0
- package/lib/util/serialization.js +2 -0
- package/lib/util/smartGrouping.js +8 -0
- package/lib/util/source.js +23 -0
- package/lib/util/topologicalSort.js +69 -0
- package/lib/validateSchema.js +1 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
- package/lib/wasm-async/AsyncWasmModule.js +77 -0
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
- package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
- package/lib/wasm-sync/SyncWasmModule.js +39 -0
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
- package/lib/wasm-sync/WebAssemblyParser.js +9 -3
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
- package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
- package/lib/web/FetchCompileWasmPlugin.js +27 -1
- package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
- package/lib/web/JsonpTemplatePlugin.js +2 -1
- package/lib/webpack.js +78 -1
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/module.d.ts +21 -0
- package/package.json +79 -77
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +1173 -80
- package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
- package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
- package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlParserOptions.check.js +6 -0
- package/schemas/plugins/HtmlParserOptions.json +3 -0
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +38 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +2 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
- package/types.d.ts +11053 -3019
- package/lib/CaseSensitiveModulesWarning.js +0 -72
- package/lib/GraphHelpers.js +0 -46
- package/lib/ModuleParseError.js +0 -125
- package/lib/NoModeWarning.js +0 -23
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
- package/lib/css/walkCssTokens.js +0 -1843
- package/lib/util/AppendOnlyStackedSet.js +0 -78
- /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
- /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
|
@@ -8,11 +8,17 @@
|
|
|
8
8
|
const Dependency = require("../Dependency");
|
|
9
9
|
const InitFragment = require("../InitFragment");
|
|
10
10
|
const Template = require("../Template");
|
|
11
|
+
const {
|
|
12
|
+
InlinedUsedName,
|
|
13
|
+
isExportInlined,
|
|
14
|
+
isInlineExportsEnabled
|
|
15
|
+
} = require("../optimize/InlineExports");
|
|
11
16
|
const {
|
|
12
17
|
getDependencyUsedByExportsCondition
|
|
13
18
|
} = require("../optimize/InnerGraph");
|
|
14
19
|
const { getTrimmedIdsAndRange } = require("../util/chainedImports");
|
|
15
20
|
const makeSerializable = require("../util/makeSerializable");
|
|
21
|
+
const memoize = require("../util/memoize");
|
|
16
22
|
const { propertyAccess } = require("../util/property");
|
|
17
23
|
const traverseDestructuringAssignmentProperties = require("../util/traverseDestructuringAssignmentProperties");
|
|
18
24
|
const HarmonyImportDependency = require("./HarmonyImportDependency");
|
|
@@ -26,8 +32,9 @@ const { ImportPhaseUtils } = require("./ImportPhase");
|
|
|
26
32
|
/** @typedef {import("../Module")} Module */
|
|
27
33
|
/** @typedef {import("../Module").BuildMeta} BuildMeta */
|
|
28
34
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
35
|
+
/** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */
|
|
29
36
|
/** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
|
|
30
|
-
/** @typedef {import("../WebpackError")} WebpackError */
|
|
37
|
+
/** @typedef {import("../errors/WebpackError")} WebpackError */
|
|
31
38
|
/** @typedef {import("../javascript/JavascriptParser").DestructuringAssignmentProperties} DestructuringAssignmentProperties */
|
|
32
39
|
/** @typedef {import("../javascript/JavascriptParser").ImportAttributes} ImportAttributes */
|
|
33
40
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
@@ -39,6 +46,10 @@ const { ImportPhaseUtils } = require("./ImportPhase");
|
|
|
39
46
|
/** @typedef {import("./HarmonyImportDependency").ExportPresenceMode} ExportPresenceMode */
|
|
40
47
|
/** @typedef {HarmonyImportDependency.Ids} Ids */
|
|
41
48
|
/** @typedef {import("./ImportPhase").ImportPhaseType} ImportPhaseType */
|
|
49
|
+
/** @typedef {import("./HarmonyImportGuard").DependencyGuard} DependencyGuard */
|
|
50
|
+
/** @typedef {import("../javascript/JavascriptModule").JavascriptModuleBuildMeta} JavascriptModuleBuildMeta */
|
|
51
|
+
|
|
52
|
+
const getHarmonyImportGuard = memoize(() => require("./HarmonyImportGuard"));
|
|
42
53
|
|
|
43
54
|
const idsSymbol = /** @type {symbol} */ (
|
|
44
55
|
Symbol("HarmonyImportSpecifierDependency.ids")
|
|
@@ -48,6 +59,7 @@ const { ExportPresenceModes } = HarmonyImportDependency;
|
|
|
48
59
|
|
|
49
60
|
class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
|
|
50
61
|
/**
|
|
62
|
+
* Creates an instance of HarmonyImportSpecifierDependency.
|
|
51
63
|
* @param {string} request request
|
|
52
64
|
* @param {number} sourceOrder source order
|
|
53
65
|
* @param {Ids} ids ids
|
|
@@ -70,10 +82,14 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
|
|
|
70
82
|
idRanges // TODO webpack 6 make this non-optional. It must always be set to properly trim ids.
|
|
71
83
|
) {
|
|
72
84
|
super(request, sourceOrder, phase, attributes);
|
|
85
|
+
/** @type {Ids} */
|
|
73
86
|
this.ids = ids;
|
|
87
|
+
/** @type {string} */
|
|
74
88
|
this.name = name;
|
|
75
89
|
this.range = range;
|
|
90
|
+
/** @type {IdRanges | undefined} */
|
|
76
91
|
this.idRanges = idRanges;
|
|
92
|
+
/** @type {ExportPresenceMode} */
|
|
77
93
|
this.exportPresenceMode = exportPresenceMode;
|
|
78
94
|
/** @type {undefined | boolean} */
|
|
79
95
|
this.namespaceObjectAsContext = false;
|
|
@@ -89,10 +105,13 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
|
|
|
89
105
|
this.usedByExports = undefined;
|
|
90
106
|
/** @type {DestructuringAssignmentProperties | undefined} */
|
|
91
107
|
this.referencedPropertiesInDestructuring = undefined;
|
|
108
|
+
/** @type {DependencyGuard[] | undefined} */
|
|
109
|
+
this.branchGuards = undefined;
|
|
92
110
|
}
|
|
93
111
|
|
|
94
112
|
// TODO webpack 6 remove
|
|
95
113
|
/**
|
|
114
|
+
* Returns id.
|
|
96
115
|
* @deprecated
|
|
97
116
|
*/
|
|
98
117
|
get id() {
|
|
@@ -101,6 +120,7 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
|
|
|
101
120
|
|
|
102
121
|
// TODO webpack 6 remove
|
|
103
122
|
/**
|
|
123
|
+
* Returns id.
|
|
104
124
|
* @deprecated
|
|
105
125
|
*/
|
|
106
126
|
getId() {
|
|
@@ -109,6 +129,7 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
|
|
|
109
129
|
|
|
110
130
|
// TODO webpack 6 remove
|
|
111
131
|
/**
|
|
132
|
+
* Updates id.
|
|
112
133
|
* @deprecated
|
|
113
134
|
*/
|
|
114
135
|
setId() {
|
|
@@ -120,6 +141,15 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
|
|
|
120
141
|
}
|
|
121
142
|
|
|
122
143
|
/**
|
|
144
|
+
* Returns the export name this dependency requests from its target module (lazy barrel optimization).
|
|
145
|
+
* @returns {string | true | null} export name, true for all exports, null for none
|
|
146
|
+
*/
|
|
147
|
+
getForwardId() {
|
|
148
|
+
return this.ids.length > 0 ? this.ids[0] : true;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Returns the imported ids.
|
|
123
153
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
124
154
|
* @returns {Ids} the imported ids
|
|
125
155
|
*/
|
|
@@ -131,6 +161,7 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
|
|
|
131
161
|
}
|
|
132
162
|
|
|
133
163
|
/**
|
|
164
|
+
* Updates ids using the provided module graph.
|
|
134
165
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
135
166
|
* @param {Ids} ids the imported ids
|
|
136
167
|
* @returns {void}
|
|
@@ -140,18 +171,50 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
|
|
|
140
171
|
}
|
|
141
172
|
|
|
142
173
|
/**
|
|
174
|
+
* Returns function to determine if the connection is active.
|
|
143
175
|
* @param {ModuleGraph} moduleGraph module graph
|
|
144
176
|
* @returns {null | false | GetConditionFn} function to determine if the connection is active
|
|
145
177
|
*/
|
|
146
178
|
getCondition(moduleGraph) {
|
|
147
|
-
|
|
179
|
+
const usedByExportsCondition = getDependencyUsedByExportsCondition(
|
|
148
180
|
this,
|
|
149
|
-
this.usedByExports,
|
|
150
181
|
moduleGraph
|
|
151
182
|
);
|
|
183
|
+
if (usedByExportsCondition === false) return false;
|
|
184
|
+
// Keep the connection unconditional (fast path) when nothing can deactivate it
|
|
185
|
+
if (
|
|
186
|
+
usedByExportsCondition === null &&
|
|
187
|
+
this.branchGuards === undefined &&
|
|
188
|
+
!isInlineExportsEnabled(moduleGraph)
|
|
189
|
+
) {
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
const dep = this;
|
|
193
|
+
return (connection, runtime) => {
|
|
194
|
+
if (usedByExportsCondition !== null) {
|
|
195
|
+
const result = usedByExportsCondition(connection, runtime);
|
|
196
|
+
if (result === false) return false;
|
|
197
|
+
}
|
|
198
|
+
const ids = dep.getIds(moduleGraph);
|
|
199
|
+
if (
|
|
200
|
+
ids.length > 0 &&
|
|
201
|
+
isExportInlined(moduleGraph, connection.module, ids, runtime)
|
|
202
|
+
) {
|
|
203
|
+
return false;
|
|
204
|
+
}
|
|
205
|
+
const guards = dep.branchGuards;
|
|
206
|
+
if (
|
|
207
|
+
guards !== undefined &&
|
|
208
|
+
getHarmonyImportGuard().isDeadByGuards(guards, moduleGraph, runtime)
|
|
209
|
+
) {
|
|
210
|
+
return false;
|
|
211
|
+
}
|
|
212
|
+
return true;
|
|
213
|
+
};
|
|
152
214
|
}
|
|
153
215
|
|
|
154
216
|
/**
|
|
217
|
+
* Gets module evaluation side effects state.
|
|
155
218
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
156
219
|
* @returns {ConnectionState} how this dependency connects the module to referencing modules
|
|
157
220
|
*/
|
|
@@ -167,7 +230,16 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
|
|
|
167
230
|
*/
|
|
168
231
|
getReferencedExports(moduleGraph, runtime) {
|
|
169
232
|
let ids = this.getIds(moduleGraph);
|
|
170
|
-
if (ids.length === 0)
|
|
233
|
+
if (ids.length === 0) {
|
|
234
|
+
const refs = this._getReferencedExportsInDestructuring();
|
|
235
|
+
// The whole namespace object is used as a value (no destructuring): it
|
|
236
|
+
// can be rendered as a decoupled namespace object, keeping the module's
|
|
237
|
+
// exports mangleable. Deferred imports keep their special namespace.
|
|
238
|
+
return refs === Dependency.EXPORTS_OBJECT_REFERENCED &&
|
|
239
|
+
!ImportPhaseUtils.isDefer(this.phase)
|
|
240
|
+
? Dependency.EXPORTS_OBJECT_REFERENCED_MANGLEABLE
|
|
241
|
+
: refs;
|
|
242
|
+
}
|
|
171
243
|
let namespaceObjectAsContext = this.namespaceObjectAsContext;
|
|
172
244
|
if (ids[0] === "default") {
|
|
173
245
|
const selfModule =
|
|
@@ -209,8 +281,9 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
|
|
|
209
281
|
}
|
|
210
282
|
|
|
211
283
|
/**
|
|
284
|
+
* Get referenced exports in destructuring.
|
|
212
285
|
* @param {Ids=} ids ids
|
|
213
|
-
* @returns {
|
|
286
|
+
* @returns {ReferencedExports} referenced exports
|
|
214
287
|
*/
|
|
215
288
|
_getReferencedExportsInDestructuring(ids) {
|
|
216
289
|
if (this.referencedPropertiesInDestructuring) {
|
|
@@ -220,17 +293,31 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
|
|
|
220
293
|
this.referencedPropertiesInDestructuring,
|
|
221
294
|
(stack) => refsInDestructuring.push(stack.map((p) => p.id))
|
|
222
295
|
);
|
|
223
|
-
/** @type {
|
|
296
|
+
/** @type {ReferencedExports} */
|
|
224
297
|
const refs = [];
|
|
225
298
|
for (const idsInDestructuring of refsInDestructuring) {
|
|
226
|
-
|
|
299
|
+
// Destructuring consumer can't accept an inlined literal
|
|
300
|
+
refs.push({
|
|
301
|
+
name: ids ? [...ids, ...idsInDestructuring] : idsInDestructuring,
|
|
302
|
+
canInline: false
|
|
303
|
+
});
|
|
227
304
|
}
|
|
228
305
|
return refs;
|
|
229
306
|
}
|
|
230
|
-
return ids
|
|
307
|
+
return ids
|
|
308
|
+
? [
|
|
309
|
+
{
|
|
310
|
+
name: ids,
|
|
311
|
+
canMangle: true,
|
|
312
|
+
// Need access the export value to trigger side effects for deferred module
|
|
313
|
+
canInline: !ImportPhaseUtils.isDefer(this.phase)
|
|
314
|
+
}
|
|
315
|
+
]
|
|
316
|
+
: Dependency.EXPORTS_OBJECT_REFERENCED;
|
|
231
317
|
}
|
|
232
318
|
|
|
233
319
|
/**
|
|
320
|
+
* Get effective export presence level.
|
|
234
321
|
* @param {ModuleGraph} moduleGraph module graph
|
|
235
322
|
* @returns {ExportPresenceMode} effective mode
|
|
236
323
|
*/
|
|
@@ -239,7 +326,7 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
|
|
|
239
326
|
return this.exportPresenceMode;
|
|
240
327
|
}
|
|
241
328
|
const buildMeta =
|
|
242
|
-
/** @type {
|
|
329
|
+
/** @type {JavascriptModuleBuildMeta} */
|
|
243
330
|
(
|
|
244
331
|
/** @type {Module} */
|
|
245
332
|
(moduleGraph.getParentModule(this)).buildMeta
|
|
@@ -250,7 +337,7 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
|
|
|
250
337
|
}
|
|
251
338
|
|
|
252
339
|
/**
|
|
253
|
-
* Returns warnings
|
|
340
|
+
* Returns warnings.
|
|
254
341
|
* @param {ModuleGraph} moduleGraph module graph
|
|
255
342
|
* @returns {WebpackError[] | null | undefined} warnings
|
|
256
343
|
*/
|
|
@@ -263,7 +350,7 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
|
|
|
263
350
|
}
|
|
264
351
|
|
|
265
352
|
/**
|
|
266
|
-
* Returns errors
|
|
353
|
+
* Returns errors.
|
|
267
354
|
* @param {ModuleGraph} moduleGraph module graph
|
|
268
355
|
* @returns {WebpackError[] | null | undefined} errors
|
|
269
356
|
*/
|
|
@@ -276,6 +363,7 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
|
|
|
276
363
|
}
|
|
277
364
|
|
|
278
365
|
/**
|
|
366
|
+
* Returns errors.
|
|
279
367
|
* @param {ModuleGraph} moduleGraph module graph
|
|
280
368
|
* @returns {WebpackError[] | undefined} errors
|
|
281
369
|
*/
|
|
@@ -297,6 +385,7 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
|
|
|
297
385
|
}
|
|
298
386
|
|
|
299
387
|
/**
|
|
388
|
+
* Serializes this instance into the provided serializer context.
|
|
300
389
|
* @param {ObjectSerializerContext} context context
|
|
301
390
|
*/
|
|
302
391
|
serialize(context) {
|
|
@@ -313,10 +402,12 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
|
|
|
313
402
|
write(this.asiSafe);
|
|
314
403
|
write(this.usedByExports);
|
|
315
404
|
write(this.referencedPropertiesInDestructuring);
|
|
405
|
+
write(this.branchGuards);
|
|
316
406
|
super.serialize(context);
|
|
317
407
|
}
|
|
318
408
|
|
|
319
409
|
/**
|
|
410
|
+
* Restores this instance from the provided deserializer context.
|
|
320
411
|
* @param {ObjectDeserializerContext} context context
|
|
321
412
|
*/
|
|
322
413
|
deserialize(context) {
|
|
@@ -333,6 +424,7 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
|
|
|
333
424
|
this.asiSafe = read();
|
|
334
425
|
this.usedByExports = read();
|
|
335
426
|
this.referencedPropertiesInDestructuring = read();
|
|
427
|
+
this.branchGuards = read();
|
|
336
428
|
super.deserialize(context);
|
|
337
429
|
}
|
|
338
430
|
}
|
|
@@ -346,6 +438,7 @@ HarmonyImportSpecifierDependency.Template = class HarmonyImportSpecifierDependen
|
|
|
346
438
|
HarmonyImportDependency.Template
|
|
347
439
|
) {
|
|
348
440
|
/**
|
|
441
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
349
442
|
* @param {Dependency} dependency the dependency for which the template should be applied
|
|
350
443
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
351
444
|
* @param {DependencyTemplateContext} templateContext the context object
|
|
@@ -355,9 +448,13 @@ HarmonyImportSpecifierDependency.Template = class HarmonyImportSpecifierDependen
|
|
|
355
448
|
const dep = /** @type {HarmonyImportSpecifierDependency} */ (dependency);
|
|
356
449
|
const { moduleGraph, runtime, initFragments } = templateContext;
|
|
357
450
|
const connection = moduleGraph.getConnection(dep);
|
|
451
|
+
const ids = dep.getIds(moduleGraph);
|
|
358
452
|
|
|
359
|
-
|
|
360
|
-
|
|
453
|
+
if (
|
|
454
|
+
connection &&
|
|
455
|
+
!connection.isTargetActive(runtime) &&
|
|
456
|
+
!isExportInlined(moduleGraph, connection.module, ids, runtime)
|
|
457
|
+
) {
|
|
361
458
|
initFragments.push(
|
|
362
459
|
new InitFragment(
|
|
363
460
|
`/* unused harmony import specifier */ var ${dep.name};\n`,
|
|
@@ -370,7 +467,6 @@ HarmonyImportSpecifierDependency.Template = class HarmonyImportSpecifierDependen
|
|
|
370
467
|
return;
|
|
371
468
|
}
|
|
372
469
|
|
|
373
|
-
const ids = dep.getIds(moduleGraph);
|
|
374
470
|
const {
|
|
375
471
|
trimmedRange: [trimmedRangeStart, trimmedRangeEnd],
|
|
376
472
|
trimmedIds
|
|
@@ -380,7 +476,8 @@ HarmonyImportSpecifierDependency.Template = class HarmonyImportSpecifierDependen
|
|
|
380
476
|
dep,
|
|
381
477
|
source,
|
|
382
478
|
templateContext,
|
|
383
|
-
trimmedIds
|
|
479
|
+
trimmedIds,
|
|
480
|
+
connection
|
|
384
481
|
);
|
|
385
482
|
if (dep.shorthand) {
|
|
386
483
|
source.insert(trimmedRangeEnd, `: ${exportExpr}`);
|
|
@@ -426,14 +523,24 @@ HarmonyImportSpecifierDependency.Template = class HarmonyImportSpecifierDependen
|
|
|
426
523
|
});
|
|
427
524
|
}
|
|
428
525
|
);
|
|
526
|
+
// loop-invariant: resolve the imported module's exports info once
|
|
527
|
+
const destructuredExportsInfo = moduleGraph.getExportsInfo(
|
|
528
|
+
/** @type {Module} */ (moduleGraph.getModule(dep))
|
|
529
|
+
);
|
|
429
530
|
for (const { ids, shorthand, range } of replacementsInDestructuring) {
|
|
430
531
|
/** @type {Ids} */
|
|
431
532
|
const concatedIds = [...prefixedIds, ...ids];
|
|
432
|
-
const
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
533
|
+
const used = destructuredExportsInfo.getUsedName(concatedIds, runtime);
|
|
534
|
+
if (!used) {
|
|
535
|
+
return;
|
|
536
|
+
} else if (used instanceof InlinedUsedName) {
|
|
537
|
+
throw new Error(
|
|
538
|
+
`Should not inline for destructuring name ${concatedIds.join(".")}`
|
|
539
|
+
);
|
|
540
|
+
}
|
|
541
|
+
// Destructuring can't consume an inlined literal — should be unreachable
|
|
542
|
+
// because the consumer-side canInline=false suppresses inlining there.
|
|
543
|
+
if (!Array.isArray(used)) continue;
|
|
437
544
|
const newName = used[used.length - 1];
|
|
438
545
|
const name = concatedIds[concatedIds.length - 1];
|
|
439
546
|
if (newName === name) continue;
|
|
@@ -450,18 +557,20 @@ HarmonyImportSpecifierDependency.Template = class HarmonyImportSpecifierDependen
|
|
|
450
557
|
}
|
|
451
558
|
|
|
452
559
|
/**
|
|
560
|
+
* Returns generated code.
|
|
453
561
|
* @param {HarmonyImportSpecifierDependency} dep dependency
|
|
454
562
|
* @param {ReplaceSource} source source
|
|
455
563
|
* @param {DependencyTemplateContext} templateContext context
|
|
456
564
|
* @param {Ids} ids ids
|
|
565
|
+
* @param {ModuleGraphConnection | undefined} connection the resolved connection for dep
|
|
457
566
|
* @returns {string} generated code
|
|
458
567
|
*/
|
|
459
|
-
_getCodeForIds(dep, source, templateContext, ids) {
|
|
568
|
+
_getCodeForIds(dep, source, templateContext, ids, connection) {
|
|
460
569
|
const { moduleGraph, module, runtime, concatenationScope } =
|
|
461
570
|
templateContext;
|
|
462
|
-
const connection = moduleGraph.getConnection(dep);
|
|
463
571
|
/** @type {string} */
|
|
464
572
|
let exportExpr;
|
|
573
|
+
|
|
465
574
|
if (
|
|
466
575
|
connection &&
|
|
467
576
|
concatenationScope &&
|
|
@@ -472,7 +581,13 @@ HarmonyImportSpecifierDependency.Template = class HarmonyImportSpecifierDependen
|
|
|
472
581
|
connection.module,
|
|
473
582
|
{
|
|
474
583
|
asiSafe: dep.asiSafe,
|
|
475
|
-
deferredImport: ImportPhaseUtils.isDefer(dep.phase)
|
|
584
|
+
deferredImport: ImportPhaseUtils.isDefer(dep.phase),
|
|
585
|
+
// A bare namespace value that isn't destructured may escape, so
|
|
586
|
+
// allow a decoupled namespace object that keeps the original names.
|
|
587
|
+
// Deferred imports keep their special namespace object.
|
|
588
|
+
mangleableNamespace:
|
|
589
|
+
!dep.referencedPropertiesInDestructuring &&
|
|
590
|
+
!ImportPhaseUtils.isDefer(dep.phase)
|
|
476
591
|
}
|
|
477
592
|
);
|
|
478
593
|
} else if (dep.namespaceObjectAsContext && ids.length === 1) {
|
|
@@ -514,7 +629,14 @@ HarmonyImportSpecifierDependency.Template = class HarmonyImportSpecifierDependen
|
|
|
514
629
|
initFragments,
|
|
515
630
|
runtime,
|
|
516
631
|
runtimeRequirements,
|
|
517
|
-
dependency: dep
|
|
632
|
+
dependency: dep,
|
|
633
|
+
// A bare namespace value that isn't destructured may escape, so allow a
|
|
634
|
+
// decoupled namespace object that keeps the original export names.
|
|
635
|
+
// Deferred imports keep their special namespace object.
|
|
636
|
+
mangleableNamespace:
|
|
637
|
+
ids.length === 0 &&
|
|
638
|
+
!dep.referencedPropertiesInDestructuring &&
|
|
639
|
+
!ImportPhaseUtils.isDefer(dep.phase)
|
|
518
640
|
});
|
|
519
641
|
}
|
|
520
642
|
return exportExpr;
|
|
@@ -4,14 +4,17 @@
|
|
|
4
4
|
|
|
5
5
|
"use strict";
|
|
6
6
|
|
|
7
|
-
const WebpackError = require("
|
|
7
|
+
const WebpackError = require("../errors/WebpackError");
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
class HarmonyLinkingError extends WebpackError {
|
|
10
10
|
/** @param {string} message Error message */
|
|
11
11
|
constructor(message) {
|
|
12
12
|
super(message);
|
|
13
13
|
/** @type {string} */
|
|
14
14
|
this.name = "HarmonyLinkingError";
|
|
15
|
+
/** @type {boolean} */
|
|
15
16
|
this.hideStack = true;
|
|
16
17
|
}
|
|
17
|
-
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
module.exports = HarmonyLinkingError;
|
|
@@ -25,12 +25,14 @@ const HarmonyImportSideEffectDependency = require("./HarmonyImportSideEffectDepe
|
|
|
25
25
|
const HarmonyImportSpecifierDependency = require("./HarmonyImportSpecifierDependency");
|
|
26
26
|
|
|
27
27
|
const HarmonyTopLevelThisParserPlugin = require("./HarmonyTopLevelThisParserPlugin");
|
|
28
|
+
const TopLevelAwaitDependency = require("./TopLevelAwaitDependency");
|
|
28
29
|
|
|
29
30
|
/** @typedef {import("../../declarations/WebpackOptions").JavascriptParserOptions} JavascriptParserOptions */
|
|
30
31
|
/** @typedef {import("../Compiler")} Compiler */
|
|
31
32
|
/** @typedef {import("../javascript/JavascriptParser")} Parser */
|
|
32
33
|
|
|
33
34
|
/**
|
|
35
|
+
* Defines the harmony modules plugin options type used by this module.
|
|
34
36
|
* @typedef {object} HarmonyModulesPluginOptions
|
|
35
37
|
* @property {boolean=} deferImport
|
|
36
38
|
*/
|
|
@@ -39,14 +41,16 @@ const PLUGIN_NAME = "HarmonyModulesPlugin";
|
|
|
39
41
|
|
|
40
42
|
class HarmonyModulesPlugin {
|
|
41
43
|
/**
|
|
44
|
+
* Creates an instance of HarmonyModulesPlugin.
|
|
42
45
|
* @param {HarmonyModulesPluginOptions} options options
|
|
43
46
|
*/
|
|
44
47
|
constructor(options) {
|
|
48
|
+
/** @type {HarmonyModulesPluginOptions} */
|
|
45
49
|
this.options = options;
|
|
46
50
|
}
|
|
47
51
|
|
|
48
52
|
/**
|
|
49
|
-
*
|
|
53
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
50
54
|
* @param {Compiler} compiler the compiler instance
|
|
51
55
|
* @returns {void}
|
|
52
56
|
*/
|
|
@@ -59,6 +63,11 @@ class HarmonyModulesPlugin {
|
|
|
59
63
|
new HarmonyCompatibilityDependency.Template()
|
|
60
64
|
);
|
|
61
65
|
|
|
66
|
+
compilation.dependencyTemplates.set(
|
|
67
|
+
TopLevelAwaitDependency,
|
|
68
|
+
new TopLevelAwaitDependency.Template()
|
|
69
|
+
);
|
|
70
|
+
|
|
62
71
|
compilation.dependencyFactories.set(
|
|
63
72
|
HarmonyImportSideEffectDependency,
|
|
64
73
|
normalModuleFactory
|
|
@@ -125,6 +134,7 @@ class HarmonyModulesPlugin {
|
|
|
125
134
|
);
|
|
126
135
|
|
|
127
136
|
/**
|
|
137
|
+
* Handles the hook callback for this code path.
|
|
128
138
|
* @param {Parser} parser parser parser
|
|
129
139
|
* @param {JavascriptParserOptions} parserOptions parserOptions
|
|
130
140
|
* @returns {void}
|
|
@@ -16,6 +16,7 @@ const PLUGIN_NAME = "HarmonyTopLevelThisParserPlugin";
|
|
|
16
16
|
|
|
17
17
|
class HarmonyTopLevelThisParserPlugin {
|
|
18
18
|
/**
|
|
19
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
19
20
|
* @param {JavascriptParser} parser the parser
|
|
20
21
|
* @returns {void}
|
|
21
22
|
*/
|
|
@@ -28,7 +29,7 @@ class HarmonyTopLevelThisParserPlugin {
|
|
|
28
29
|
/** @type {Range} */ (node.range),
|
|
29
30
|
null
|
|
30
31
|
);
|
|
31
|
-
dep.loc =
|
|
32
|
+
dep.loc = parser.getLocation(node);
|
|
32
33
|
parser.state.module.addPresentationalDependency(dep);
|
|
33
34
|
return true;
|
|
34
35
|
}
|