webpack 5.90.0 → 5.90.1
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.
Potentially problematic release.
This version of webpack might be problematic. Click here for more details.
- package/lib/APIPlugin.js +16 -12
- package/lib/Compilation.js +1 -1
- package/lib/ConditionalInitFragment.js +3 -3
- package/lib/DefinePlugin.js +47 -26
- package/lib/EvalSourceMapDevToolPlugin.js +1 -1
- package/lib/InitFragment.js +7 -7
- package/lib/NodeStuffPlugin.js +3 -3
- package/lib/Stats.js +4 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +2 -2
- package/lib/buildChunkGraph.js +53 -0
- package/lib/config/browserslistTargetHandler.js +18 -16
- package/lib/config/defaults.js +1 -0
- package/lib/dependencies/AMDDefineDependency.js +4 -4
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +126 -34
- package/lib/dependencies/AMDPlugin.js +11 -4
- package/lib/dependencies/AMDRequireArrayDependency.js +13 -1
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +159 -43
- package/lib/dependencies/AMDRequireDependency.js +2 -2
- package/lib/dependencies/AMDRequireItemDependency.js +1 -1
- package/lib/dependencies/ExternalModuleDependency.js +9 -0
- package/lib/dependencies/ExternalModuleInitFragment.js +10 -3
- package/lib/dependencies/HarmonyExportInitFragment.js +2 -2
- package/lib/dependencies/LocalModuleDependency.js +1 -1
- package/lib/dependencies/WorkerPlugin.js +3 -2
- package/lib/dependencies/getFunctionExpression.js +2 -2
- package/lib/javascript/JavascriptParser.js +212 -74
- package/lib/optimize/MangleExportsPlugin.js +5 -1
- package/lib/util/chainedImports.js +7 -6
- package/lib/util/comparators.js +59 -23
- package/lib/util/numberHash.js +64 -52
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +53 -28
- package/package.json +3 -58
- package/types.d.ts +101 -74
@@ -19,13 +19,30 @@ const { getLocalModule } = require("./LocalModulesHelpers");
|
|
19
19
|
const UnsupportedDependency = require("./UnsupportedDependency");
|
20
20
|
const getFunctionExpression = require("./getFunctionExpression");
|
21
21
|
|
22
|
+
/** @typedef {import("estree").CallExpression} CallExpression */
|
23
|
+
/** @typedef {import("estree").Expression} Expression */
|
24
|
+
/** @typedef {import("estree").SourceLocation} SourceLocation */
|
25
|
+
/** @typedef {import("estree").SpreadElement} SpreadElement */
|
26
|
+
/** @typedef {import("../../declarations/WebpackOptions").JavascriptParserOptions} JavascriptParserOptions */
|
27
|
+
/** @typedef {import("../Dependency").DependencyLocation} DependencyLocation */
|
28
|
+
/** @typedef {import("../Module").BuildInfo} BuildInfo */
|
29
|
+
/** @typedef {import("../javascript/BasicEvaluatedExpression")} BasicEvaluatedExpression */
|
22
30
|
/** @typedef {import("../javascript/JavascriptParser")} JavascriptParser */
|
31
|
+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
23
32
|
|
24
33
|
class AMDRequireDependenciesBlockParserPlugin {
|
34
|
+
/**
|
35
|
+
* @param {JavascriptParserOptions} options parserOptions
|
36
|
+
*/
|
25
37
|
constructor(options) {
|
26
38
|
this.options = options;
|
27
39
|
}
|
28
40
|
|
41
|
+
/**
|
42
|
+
* @param {JavascriptParser} parser the parser
|
43
|
+
* @param {Expression | SpreadElement} expression expression
|
44
|
+
* @returns {boolean} need bind this
|
45
|
+
*/
|
29
46
|
processFunctionArgument(parser, expression) {
|
30
47
|
let bindThis = true;
|
31
48
|
const fnData = getFunctionExpression(expression);
|
@@ -65,9 +82,15 @@ class AMDRequireDependenciesBlockParserPlugin {
|
|
65
82
|
);
|
66
83
|
}
|
67
84
|
|
85
|
+
/**
|
86
|
+
* @param {JavascriptParser} parser the parser
|
87
|
+
* @param {CallExpression} expr call expression
|
88
|
+
* @param {BasicEvaluatedExpression} param param
|
89
|
+
* @returns {boolean | undefined} result
|
90
|
+
*/
|
68
91
|
processArray(parser, expr, param) {
|
69
92
|
if (param.isArray()) {
|
70
|
-
for (const p of param.items) {
|
93
|
+
for (const p of /** @type {BasicEvaluatedExpression[]} */ (param.items)) {
|
71
94
|
const result = this.processItem(parser, expr, p);
|
72
95
|
if (result === undefined) {
|
73
96
|
this.processContext(parser, expr, p);
|
@@ -75,8 +98,9 @@ class AMDRequireDependenciesBlockParserPlugin {
|
|
75
98
|
}
|
76
99
|
return true;
|
77
100
|
} else if (param.isConstArray()) {
|
101
|
+
/** @type {(string | LocalModuleDependency | AMDRequireItemDependency)[]} */
|
78
102
|
const deps = [];
|
79
|
-
for (const request of param.array) {
|
103
|
+
for (const request of /** @type {any[]} */ (param.array)) {
|
80
104
|
let dep, localModule;
|
81
105
|
if (request === "require") {
|
82
106
|
dep = RuntimeGlobals.require;
|
@@ -85,26 +109,38 @@ class AMDRequireDependenciesBlockParserPlugin {
|
|
85
109
|
} else if ((localModule = getLocalModule(parser.state, request))) {
|
86
110
|
localModule.flagUsed();
|
87
111
|
dep = new LocalModuleDependency(localModule, undefined, false);
|
88
|
-
dep.loc = expr.loc;
|
112
|
+
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
|
89
113
|
parser.state.module.addPresentationalDependency(dep);
|
90
114
|
} else {
|
91
115
|
dep = this.newRequireItemDependency(request);
|
92
|
-
dep.loc = expr.loc;
|
116
|
+
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
|
93
117
|
dep.optional = !!parser.scope.inTry;
|
94
118
|
parser.state.current.addDependency(dep);
|
95
119
|
}
|
96
120
|
deps.push(dep);
|
97
121
|
}
|
98
|
-
const dep = this.newRequireArrayDependency(
|
99
|
-
|
122
|
+
const dep = this.newRequireArrayDependency(
|
123
|
+
deps,
|
124
|
+
/** @type {Range} */ (param.range)
|
125
|
+
);
|
126
|
+
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
|
100
127
|
dep.optional = !!parser.scope.inTry;
|
101
128
|
parser.state.module.addPresentationalDependency(dep);
|
102
129
|
return true;
|
103
130
|
}
|
104
131
|
}
|
132
|
+
|
133
|
+
/**
|
134
|
+
* @param {JavascriptParser} parser the parser
|
135
|
+
* @param {CallExpression} expr call expression
|
136
|
+
* @param {BasicEvaluatedExpression} param param
|
137
|
+
* @returns {boolean | undefined} result
|
138
|
+
*/
|
105
139
|
processItem(parser, expr, param) {
|
106
140
|
if (param.isConditional()) {
|
107
|
-
for (const p of
|
141
|
+
for (const p of /** @type {BasicEvaluatedExpression[]} */ (
|
142
|
+
param.options
|
143
|
+
)) {
|
108
144
|
const result = this.processItem(parser, expr, p);
|
109
145
|
if (result === undefined) {
|
110
146
|
this.processContext(parser, expr, p);
|
@@ -114,40 +150,59 @@ class AMDRequireDependenciesBlockParserPlugin {
|
|
114
150
|
} else if (param.isString()) {
|
115
151
|
let dep, localModule;
|
116
152
|
if (param.string === "require") {
|
117
|
-
dep = new ConstDependency(
|
118
|
-
RuntimeGlobals.require
|
119
|
-
|
153
|
+
dep = new ConstDependency(
|
154
|
+
RuntimeGlobals.require,
|
155
|
+
/** @type {TODO} */ (param.string),
|
156
|
+
[RuntimeGlobals.require]
|
157
|
+
);
|
120
158
|
} else if (param.string === "module") {
|
121
159
|
dep = new ConstDependency(
|
122
|
-
|
123
|
-
|
160
|
+
/** @type {BuildInfo} */
|
161
|
+
(parser.state.module.buildInfo).moduleArgument,
|
162
|
+
/** @type {Range} */ (param.range),
|
124
163
|
[RuntimeGlobals.module]
|
125
164
|
);
|
126
165
|
} else if (param.string === "exports") {
|
127
166
|
dep = new ConstDependency(
|
128
|
-
|
129
|
-
|
167
|
+
/** @type {BuildInfo} */
|
168
|
+
(parser.state.module.buildInfo).exportsArgument,
|
169
|
+
/** @type {Range} */ (param.range),
|
130
170
|
[RuntimeGlobals.exports]
|
131
171
|
);
|
132
|
-
} else if (
|
172
|
+
} else if (
|
173
|
+
(localModule = getLocalModule(
|
174
|
+
parser.state,
|
175
|
+
/** @type {string} */ (param.string)
|
176
|
+
))
|
177
|
+
) {
|
133
178
|
localModule.flagUsed();
|
134
179
|
dep = new LocalModuleDependency(localModule, param.range, false);
|
135
180
|
} else {
|
136
|
-
dep = this.newRequireItemDependency(
|
137
|
-
|
181
|
+
dep = this.newRequireItemDependency(
|
182
|
+
/** @type {string} */ (param.string),
|
183
|
+
param.range
|
184
|
+
);
|
185
|
+
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
|
138
186
|
dep.optional = !!parser.scope.inTry;
|
139
187
|
parser.state.current.addDependency(dep);
|
140
188
|
return true;
|
141
189
|
}
|
142
|
-
dep.loc = expr.loc;
|
190
|
+
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
|
143
191
|
parser.state.module.addPresentationalDependency(dep);
|
144
192
|
return true;
|
145
193
|
}
|
146
194
|
}
|
195
|
+
|
196
|
+
/**
|
197
|
+
* @param {JavascriptParser} parser the parser
|
198
|
+
* @param {CallExpression} expr call expression
|
199
|
+
* @param {BasicEvaluatedExpression} param param
|
200
|
+
* @returns {boolean | undefined} result
|
201
|
+
*/
|
147
202
|
processContext(parser, expr, param) {
|
148
203
|
const dep = ContextDependencyHelpers.create(
|
149
204
|
AMDRequireContextDependency,
|
150
|
-
param.range,
|
205
|
+
/** @type {Range} */ (param.range),
|
151
206
|
param,
|
152
207
|
expr,
|
153
208
|
this.options,
|
@@ -157,38 +212,55 @@ class AMDRequireDependenciesBlockParserPlugin {
|
|
157
212
|
parser
|
158
213
|
);
|
159
214
|
if (!dep) return;
|
160
|
-
dep.loc = expr.loc;
|
215
|
+
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
|
161
216
|
dep.optional = !!parser.scope.inTry;
|
162
217
|
parser.state.current.addDependency(dep);
|
163
218
|
return true;
|
164
219
|
}
|
165
220
|
|
221
|
+
/**
|
222
|
+
* @param {BasicEvaluatedExpression} param param
|
223
|
+
* @returns {string | undefined} result
|
224
|
+
*/
|
166
225
|
processArrayForRequestString(param) {
|
167
226
|
if (param.isArray()) {
|
168
|
-
const result =
|
169
|
-
|
170
|
-
|
227
|
+
const result =
|
228
|
+
/** @type {BasicEvaluatedExpression[]} */
|
229
|
+
(param.items).map(item => this.processItemForRequestString(item));
|
171
230
|
if (result.every(Boolean)) return result.join(" ");
|
172
231
|
} else if (param.isConstArray()) {
|
173
|
-
return param.array.join(" ");
|
232
|
+
return /** @type {string[]} */ (param.array).join(" ");
|
174
233
|
}
|
175
234
|
}
|
176
235
|
|
236
|
+
/**
|
237
|
+
* @param {BasicEvaluatedExpression} param param
|
238
|
+
* @returns {string | undefined} result
|
239
|
+
*/
|
177
240
|
processItemForRequestString(param) {
|
178
241
|
if (param.isConditional()) {
|
179
|
-
const result =
|
180
|
-
|
181
|
-
|
242
|
+
const result =
|
243
|
+
/** @type {BasicEvaluatedExpression[]} */
|
244
|
+
(param.options).map(item => this.processItemForRequestString(item));
|
182
245
|
if (result.every(Boolean)) return result.join("|");
|
183
246
|
} else if (param.isString()) {
|
184
247
|
return param.string;
|
185
248
|
}
|
186
249
|
}
|
187
250
|
|
251
|
+
/**
|
252
|
+
* @param {JavascriptParser} parser the parser
|
253
|
+
* @param {CallExpression} expr call expression
|
254
|
+
* @returns {boolean | undefined} result
|
255
|
+
*/
|
188
256
|
processCallRequire(parser, expr) {
|
257
|
+
/** @type {BasicEvaluatedExpression | undefined} */
|
189
258
|
let param;
|
259
|
+
/** @type {AMDRequireDependenciesBlock | undefined | null} */
|
190
260
|
let depBlock;
|
261
|
+
/** @type {AMDRequireDependency | undefined} */
|
191
262
|
let dep;
|
263
|
+
/** @type {boolean | undefined} */
|
192
264
|
let result;
|
193
265
|
|
194
266
|
const old = parser.state.current;
|
@@ -196,57 +268,76 @@ class AMDRequireDependenciesBlockParserPlugin {
|
|
196
268
|
if (expr.arguments.length >= 1) {
|
197
269
|
param = parser.evaluateExpression(expr.arguments[0]);
|
198
270
|
depBlock = this.newRequireDependenciesBlock(
|
199
|
-
expr.loc,
|
200
|
-
this.processArrayForRequestString(param)
|
271
|
+
/** @type {DependencyLocation} */ (expr.loc),
|
272
|
+
/** @type {string} */ (this.processArrayForRequestString(param))
|
201
273
|
);
|
202
274
|
dep = this.newRequireDependency(
|
203
|
-
expr.range,
|
204
|
-
param.range,
|
205
|
-
expr.arguments.length > 1
|
206
|
-
|
275
|
+
/** @type {Range} */ (expr.range),
|
276
|
+
/** @type {Range} */ (param.range),
|
277
|
+
expr.arguments.length > 1
|
278
|
+
? /** @type {Range} */ (expr.arguments[1].range)
|
279
|
+
: null,
|
280
|
+
expr.arguments.length > 2
|
281
|
+
? /** @type {Range} */ (expr.arguments[2].range)
|
282
|
+
: null
|
207
283
|
);
|
208
|
-
dep.loc = expr.loc;
|
284
|
+
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
|
209
285
|
depBlock.addDependency(dep);
|
210
286
|
|
211
|
-
parser.state.current = depBlock;
|
287
|
+
parser.state.current = /** @type {TODO} */ (depBlock);
|
212
288
|
}
|
213
289
|
|
214
290
|
if (expr.arguments.length === 1) {
|
215
291
|
parser.inScope([], () => {
|
216
|
-
result = this.processArray(
|
292
|
+
result = this.processArray(
|
293
|
+
parser,
|
294
|
+
expr,
|
295
|
+
/** @type {BasicEvaluatedExpression} */ (param)
|
296
|
+
);
|
217
297
|
});
|
218
298
|
parser.state.current = old;
|
219
299
|
if (!result) return;
|
220
|
-
parser.state.current.addBlock(
|
300
|
+
parser.state.current.addBlock(
|
301
|
+
/** @type {AMDRequireDependenciesBlock} */ (depBlock)
|
302
|
+
);
|
221
303
|
return true;
|
222
304
|
}
|
223
305
|
|
224
306
|
if (expr.arguments.length === 2 || expr.arguments.length === 3) {
|
225
307
|
try {
|
226
308
|
parser.inScope([], () => {
|
227
|
-
result = this.processArray(
|
309
|
+
result = this.processArray(
|
310
|
+
parser,
|
311
|
+
expr,
|
312
|
+
/** @type {BasicEvaluatedExpression} */ (param)
|
313
|
+
);
|
228
314
|
});
|
229
315
|
if (!result) {
|
230
|
-
const dep = new UnsupportedDependency(
|
316
|
+
const dep = new UnsupportedDependency(
|
317
|
+
"unsupported",
|
318
|
+
/** @type {Range} */ (expr.range)
|
319
|
+
);
|
231
320
|
old.addPresentationalDependency(dep);
|
232
321
|
if (parser.state.module) {
|
233
322
|
parser.state.module.addError(
|
234
323
|
new UnsupportedFeatureWarning(
|
235
324
|
"Cannot statically analyse 'require(…, …)' in line " +
|
236
|
-
expr.loc.start.line,
|
237
|
-
expr.loc
|
325
|
+
/** @type {SourceLocation} */ (expr.loc).start.line,
|
326
|
+
/** @type {DependencyLocation} */ (expr.loc)
|
238
327
|
)
|
239
328
|
);
|
240
329
|
}
|
241
330
|
depBlock = null;
|
242
331
|
return true;
|
243
332
|
}
|
244
|
-
|
333
|
+
/** @type {AMDRequireDependency} */
|
334
|
+
(dep).functionBindThis = this.processFunctionArgument(
|
245
335
|
parser,
|
246
336
|
expr.arguments[1]
|
247
337
|
);
|
248
338
|
if (expr.arguments.length === 3) {
|
249
|
-
|
339
|
+
/** @type {AMDRequireDependency} */
|
340
|
+
(dep).errorCallbackBindThis = this.processFunctionArgument(
|
250
341
|
parser,
|
251
342
|
expr.arguments[2]
|
252
343
|
);
|
@@ -259,9 +350,22 @@ class AMDRequireDependenciesBlockParserPlugin {
|
|
259
350
|
}
|
260
351
|
}
|
261
352
|
|
353
|
+
/**
|
354
|
+
* @param {DependencyLocation} loc location
|
355
|
+
* @param {string} request request
|
356
|
+
* @returns {AMDRequireDependenciesBlock} AMDRequireDependenciesBlock
|
357
|
+
*/
|
262
358
|
newRequireDependenciesBlock(loc, request) {
|
263
359
|
return new AMDRequireDependenciesBlock(loc, request);
|
264
360
|
}
|
361
|
+
|
362
|
+
/**
|
363
|
+
* @param {Range} outerRange outer range
|
364
|
+
* @param {Range} arrayRange array range
|
365
|
+
* @param {Range | null} functionRange function range
|
366
|
+
* @param {Range | null} errorCallbackRange error callback range
|
367
|
+
* @returns {AMDRequireDependency} dependency
|
368
|
+
*/
|
265
369
|
newRequireDependency(
|
266
370
|
outerRange,
|
267
371
|
arrayRange,
|
@@ -275,9 +379,21 @@ class AMDRequireDependenciesBlockParserPlugin {
|
|
275
379
|
errorCallbackRange
|
276
380
|
);
|
277
381
|
}
|
382
|
+
|
383
|
+
/**
|
384
|
+
* @param {string} request request
|
385
|
+
* @param {Range=} range range
|
386
|
+
* @returns {AMDRequireItemDependency} AMDRequireItemDependency
|
387
|
+
*/
|
278
388
|
newRequireItemDependency(request, range) {
|
279
389
|
return new AMDRequireItemDependency(request, range);
|
280
390
|
}
|
391
|
+
|
392
|
+
/**
|
393
|
+
* @param {(string | LocalModuleDependency | AMDRequireItemDependency)[]} depsArray deps array
|
394
|
+
* @param {Range} range range
|
395
|
+
* @returns {AMDRequireArrayDependency} AMDRequireArrayDependency
|
396
|
+
*/
|
281
397
|
newRequireArrayDependency(depsArray, range) {
|
282
398
|
return new AMDRequireArrayDependency(depsArray, range);
|
283
399
|
}
|
@@ -21,8 +21,8 @@ class AMDRequireDependency extends NullDependency {
|
|
21
21
|
/**
|
22
22
|
* @param {Range} outerRange outer range
|
23
23
|
* @param {Range} arrayRange array range
|
24
|
-
* @param {Range} functionRange function range
|
25
|
-
* @param {Range} errorCallbackRange error callback range
|
24
|
+
* @param {Range | null} functionRange function range
|
25
|
+
* @param {Range | null} errorCallbackRange error callback range
|
26
26
|
*/
|
27
27
|
constructor(outerRange, arrayRange, functionRange, errorCallbackRange) {
|
28
28
|
super();
|
@@ -14,7 +14,7 @@ const ModuleDependencyTemplateAsRequireId = require("./ModuleDependencyTemplateA
|
|
14
14
|
class AMDRequireItemDependency extends ModuleDependency {
|
15
15
|
/**
|
16
16
|
* @param {string} request the request string
|
17
|
-
* @param {Range} range location in source code
|
17
|
+
* @param {Range=} range location in source code
|
18
18
|
*/
|
19
19
|
constructor(request, range) {
|
20
20
|
super(request);
|
@@ -14,11 +14,20 @@ const ExternalModuleInitFragment = require("./ExternalModuleInitFragment");
|
|
14
14
|
/** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
|
15
15
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
16
16
|
/** @typedef {import("../javascript/JavascriptModulesPlugin").ChunkRenderContext} ChunkRenderContext */
|
17
|
+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
17
18
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
18
19
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
19
20
|
/** @typedef {import("../util/Hash")} Hash */
|
20
21
|
|
21
22
|
class ExternalModuleDependency extends CachedConstDependency {
|
23
|
+
/**
|
24
|
+
* @param {string} module module
|
25
|
+
* @param {{ name: string, value: string }[]} importSpecifiers import specifiers
|
26
|
+
* @param {string | undefined} defaultImport default import
|
27
|
+
* @param {string} expression expression
|
28
|
+
* @param {Range} range range
|
29
|
+
* @param {string} identifier identifier
|
30
|
+
*/
|
22
31
|
constructor(
|
23
32
|
module,
|
24
33
|
importSpecifiers,
|
@@ -9,11 +9,14 @@ const InitFragment = require("../InitFragment");
|
|
9
9
|
const makeSerializable = require("../util/makeSerializable");
|
10
10
|
|
11
11
|
/** @typedef {import("webpack-sources").Source} Source */
|
12
|
-
/** @typedef {import("../Generator").GenerateContext}
|
12
|
+
/** @typedef {import("../Generator").GenerateContext} GenerateContext */
|
13
13
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
14
14
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
15
15
|
/** @typedef {Map<string, Set<string>>} ImportSpecifiers */
|
16
16
|
|
17
|
+
/**
|
18
|
+
* @extends {InitFragment<GenerateContext>}
|
19
|
+
*/
|
17
20
|
class ExternalModuleInitFragment extends InitFragment {
|
18
21
|
/**
|
19
22
|
* @param {string} importedModule imported module
|
@@ -45,6 +48,10 @@ class ExternalModuleInitFragment extends InitFragment {
|
|
45
48
|
this.defaultImport = defaultImport;
|
46
49
|
}
|
47
50
|
|
51
|
+
/**
|
52
|
+
* @param {ExternalModuleInitFragment} other other
|
53
|
+
* @returns {ExternalModuleInitFragment} ExternalModuleInitFragment
|
54
|
+
*/
|
48
55
|
merge(other) {
|
49
56
|
const newSpecifiersMap = new Map(this.specifiers);
|
50
57
|
for (const [name, specifiers] of other.specifiers) {
|
@@ -63,8 +70,8 @@ class ExternalModuleInitFragment extends InitFragment {
|
|
63
70
|
}
|
64
71
|
|
65
72
|
/**
|
66
|
-
* @param {
|
67
|
-
* @returns {string|Source} the source code that will be included as initialization code
|
73
|
+
* @param {GenerateContext} context context
|
74
|
+
* @returns {string | Source} the source code that will be included as initialization code
|
68
75
|
*/
|
69
76
|
getContent({ runtimeRequirements }) {
|
70
77
|
const namedImports = [];
|
@@ -130,8 +130,8 @@ class HarmonyExportInitFragment extends InitFragment {
|
|
130
130
|
}
|
131
131
|
|
132
132
|
/**
|
133
|
-
* @param {
|
134
|
-
* @returns {string|Source} the source code that will be included as initialization code
|
133
|
+
* @param {GenerateContext} context context
|
134
|
+
* @returns {string | Source} the source code that will be included as initialization code
|
135
135
|
*/
|
136
136
|
getContent({ runtimeTemplate, runtimeRequirements }) {
|
137
137
|
runtimeRequirements.add(RuntimeGlobals.exports);
|
@@ -19,7 +19,7 @@ const NullDependency = require("./NullDependency");
|
|
19
19
|
class LocalModuleDependency extends NullDependency {
|
20
20
|
/**
|
21
21
|
* @param {LocalModule} localModule local module
|
22
|
-
* @param {Range} range range
|
22
|
+
* @param {Range | undefined} range range
|
23
23
|
* @param {boolean} callNew true, when the local module should be called with new
|
24
24
|
*/
|
25
25
|
constructor(localModule, range, callNew) {
|
@@ -184,8 +184,9 @@ class WorkerPlugin {
|
|
184
184
|
}
|
185
185
|
}
|
186
186
|
const insertType = expr.properties.length > 0 ? "comma" : "single";
|
187
|
-
const insertLocation =
|
188
|
-
expr.properties[expr.properties.length - 1].range
|
187
|
+
const insertLocation = /** @type {Range} */ (
|
188
|
+
expr.properties[expr.properties.length - 1].range
|
189
|
+
)[1];
|
189
190
|
return {
|
190
191
|
expressions,
|
191
192
|
otherElements,
|
@@ -9,8 +9,8 @@
|
|
9
9
|
/** @typedef {import("estree").SpreadElement} SpreadElement */
|
10
10
|
|
11
11
|
/**
|
12
|
-
* @param {Expression} expr expressions
|
13
|
-
* @returns {{fn: TODO, expressions: (Expression | SpreadElement)[], needThis: boolean | undefined }} function expression with additional information
|
12
|
+
* @param {Expression | SpreadElement} expr expressions
|
13
|
+
* @returns {{fn: TODO, expressions: (Expression | SpreadElement)[], needThis: boolean | undefined } | undefined} function expression with additional information
|
14
14
|
*/
|
15
15
|
module.exports = expr => {
|
16
16
|
// <FunctionExpression>
|