rollup 1.21.3 → 1.23.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.
package/dist/rollup.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v1.21.3
4
- Sat, 14 Sep 2019 17:42:11 GMT - commit 13b27cac095d8a5b071c52cb6e8a0c25641c0cab
3
+ Rollup.js v1.23.1
4
+ Sat, 05 Oct 2019 06:08:56 GMT - commit 53266e6b971fff985b273800d808b17084d5c41b
5
5
 
6
6
 
7
7
  https://github.com/rollup/rollup
@@ -969,22 +969,23 @@ Mappings.prototype.addEdit = function addEdit(sourceIndex, content, loc, nameInd
969
969
  this.pending = null;
970
970
  };
971
971
  Mappings.prototype.addUneditedChunk = function addUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) {
972
+ var this$1 = this;
972
973
  var originalCharIndex = chunk.start;
973
974
  var first = true;
974
975
  while (originalCharIndex < chunk.end) {
975
- if (this.hires || first || sourcemapLocations[originalCharIndex]) {
976
- this.rawSegments.push([this.generatedCodeColumn, sourceIndex, loc.line, loc.column]);
976
+ if (this$1.hires || first || sourcemapLocations[originalCharIndex]) {
977
+ this$1.rawSegments.push([this$1.generatedCodeColumn, sourceIndex, loc.line, loc.column]);
977
978
  }
978
979
  if (original[originalCharIndex] === '\n') {
979
980
  loc.line += 1;
980
981
  loc.column = 0;
981
- this.generatedCodeLine += 1;
982
- this.raw[this.generatedCodeLine] = this.rawSegments = [];
983
- this.generatedCodeColumn = 0;
982
+ this$1.generatedCodeLine += 1;
983
+ this$1.raw[this$1.generatedCodeLine] = this$1.rawSegments = [];
984
+ this$1.generatedCodeColumn = 0;
984
985
  }
985
986
  else {
986
987
  loc.column += 1;
987
- this.generatedCodeColumn += 1;
988
+ this$1.generatedCodeColumn += 1;
988
989
  }
989
990
  originalCharIndex += 1;
990
991
  first = false;
@@ -992,14 +993,15 @@ Mappings.prototype.addUneditedChunk = function addUneditedChunk(sourceIndex, chu
992
993
  this.pending = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];
993
994
  };
994
995
  Mappings.prototype.advance = function advance(str) {
996
+ var this$1 = this;
995
997
  if (!str) {
996
998
  return;
997
999
  }
998
1000
  var lines = str.split('\n');
999
1001
  if (lines.length > 1) {
1000
1002
  for (var i = 0; i < lines.length - 1; i++) {
1001
- this.generatedCodeLine++;
1002
- this.raw[this.generatedCodeLine] = this.rawSegments = [];
1003
+ this$1.generatedCodeLine++;
1004
+ this$1.raw[this$1.generatedCodeLine] = this$1.rawSegments = [];
1003
1005
  }
1004
1006
  this.generatedCodeColumn = 0;
1005
1007
  }
@@ -1094,6 +1096,8 @@ MagicString.prototype.clone = function clone() {
1094
1096
  Object.keys(this.sourcemapLocations).forEach(function (loc) {
1095
1097
  cloned.sourcemapLocations[loc] = true;
1096
1098
  });
1099
+ cloned.intro = this.intro;
1100
+ cloned.outro = this.outro;
1097
1101
  return cloned;
1098
1102
  };
1099
1103
  MagicString.prototype.generateDecodedMap = function generateDecodedMap(options) {
@@ -1136,6 +1140,7 @@ MagicString.prototype.getIndentString = function getIndentString() {
1136
1140
  return this.indentStr === null ? '\t' : this.indentStr;
1137
1141
  };
1138
1142
  MagicString.prototype.indent = function indent(indentStr, options) {
1143
+ var this$1 = this;
1139
1144
  var pattern = /^[^\r\n]/gm;
1140
1145
  if (isObject(indentStr)) {
1141
1146
  options = indentStr;
@@ -1181,7 +1186,7 @@ MagicString.prototype.indent = function indent(indentStr, options) {
1181
1186
  charIndex = chunk.start;
1182
1187
  while (charIndex < end) {
1183
1188
  if (!isExcluded[charIndex]) {
1184
- var char = this.original[charIndex];
1189
+ var char = this$1.original[charIndex];
1185
1190
  if (char === '\n') {
1186
1191
  shouldIndentNextCharacter = true;
1187
1192
  }
@@ -1191,7 +1196,7 @@ MagicString.prototype.indent = function indent(indentStr, options) {
1191
1196
  chunk.prependRight(indentStr);
1192
1197
  }
1193
1198
  else {
1194
- this._splitChunk(chunk, charIndex);
1199
+ this$1._splitChunk(chunk, charIndex);
1195
1200
  chunk = chunk.next;
1196
1201
  chunk.prependRight(indentStr);
1197
1202
  }
@@ -1269,14 +1274,15 @@ MagicString.prototype.move = function move(start, end, index) {
1269
1274
  return this;
1270
1275
  };
1271
1276
  MagicString.prototype.overwrite = function overwrite(start, end, content, options) {
1277
+ var this$1 = this;
1272
1278
  if (typeof content !== 'string') {
1273
1279
  throw new TypeError('replacement content must be a string');
1274
1280
  }
1275
1281
  while (start < 0) {
1276
- start += this.original.length;
1282
+ start += this$1.original.length;
1277
1283
  }
1278
1284
  while (end < 0) {
1279
- end += this.original.length;
1285
+ end += this$1.original.length;
1280
1286
  }
1281
1287
  if (end > this.original.length) {
1282
1288
  throw new Error('end is out of bounds');
@@ -1360,11 +1366,12 @@ MagicString.prototype.prependRight = function prependRight(index, content) {
1360
1366
  return this;
1361
1367
  };
1362
1368
  MagicString.prototype.remove = function remove(start, end) {
1369
+ var this$1 = this;
1363
1370
  while (start < 0) {
1364
- start += this.original.length;
1371
+ start += this$1.original.length;
1365
1372
  }
1366
1373
  while (end < 0) {
1367
- end += this.original.length;
1374
+ end += this$1.original.length;
1368
1375
  }
1369
1376
  if (start === end) {
1370
1377
  return this;
@@ -1382,7 +1389,7 @@ MagicString.prototype.remove = function remove(start, end) {
1382
1389
  chunk.intro = '';
1383
1390
  chunk.outro = '';
1384
1391
  chunk.edit('');
1385
- chunk = end > chunk.end ? this.byStart[chunk.end] : null;
1392
+ chunk = end > chunk.end ? this$1.byStart[chunk.end] : null;
1386
1393
  }
1387
1394
  return this;
1388
1395
  };
@@ -1444,15 +1451,16 @@ MagicString.prototype.lastLine = function lastLine() {
1444
1451
  return this.intro + lineStr;
1445
1452
  };
1446
1453
  MagicString.prototype.slice = function slice(start, end) {
1454
+ var this$1 = this;
1447
1455
  if (start === void 0)
1448
1456
  start = 0;
1449
1457
  if (end === void 0)
1450
1458
  end = this.original.length;
1451
1459
  while (start < 0) {
1452
- start += this.original.length;
1460
+ start += this$1.original.length;
1453
1461
  }
1454
1462
  while (end < 0) {
1455
- end += this.original.length;
1463
+ end += this$1.original.length;
1456
1464
  }
1457
1465
  var result = '';
1458
1466
  // find start chunk
@@ -1497,6 +1505,7 @@ MagicString.prototype.snip = function snip(start, end) {
1497
1505
  return clone;
1498
1506
  };
1499
1507
  MagicString.prototype._split = function _split(index) {
1508
+ var this$1 = this;
1500
1509
  if (this.byStart[index] || this.byEnd[index]) {
1501
1510
  return;
1502
1511
  }
@@ -1504,9 +1513,9 @@ MagicString.prototype._split = function _split(index) {
1504
1513
  var searchForward = index > chunk.end;
1505
1514
  while (chunk) {
1506
1515
  if (chunk.contains(index)) {
1507
- return this._splitChunk(chunk, index);
1516
+ return this$1._splitChunk(chunk, index);
1508
1517
  }
1509
- chunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];
1518
+ chunk = searchForward ? this$1.byStart[chunk.end] : this$1.byEnd[chunk.start];
1510
1519
  }
1511
1520
  };
1512
1521
  MagicString.prototype._splitChunk = function _splitChunk(chunk, index) {
@@ -1560,6 +1569,7 @@ MagicString.prototype.trim = function trim(charType) {
1560
1569
  return this.trimStart(charType).trimEnd(charType);
1561
1570
  };
1562
1571
  MagicString.prototype.trimEndAborted = function trimEndAborted(charType) {
1572
+ var this$1 = this;
1563
1573
  var rx = new RegExp((charType || '\\s') + '+$');
1564
1574
  this.outro = this.outro.replace(rx, '');
1565
1575
  if (this.outro.length) {
@@ -1571,12 +1581,12 @@ MagicString.prototype.trimEndAborted = function trimEndAborted(charType) {
1571
1581
  var aborted = chunk.trimEnd(rx);
1572
1582
  // if chunk was trimmed, we have a new lastChunk
1573
1583
  if (chunk.end !== end) {
1574
- if (this.lastChunk === chunk) {
1575
- this.lastChunk = chunk.next;
1584
+ if (this$1.lastChunk === chunk) {
1585
+ this$1.lastChunk = chunk.next;
1576
1586
  }
1577
- this.byEnd[chunk.end] = chunk;
1578
- this.byStart[chunk.next.start] = chunk.next;
1579
- this.byEnd[chunk.next.end] = chunk.next;
1587
+ this$1.byEnd[chunk.end] = chunk;
1588
+ this$1.byStart[chunk.next.start] = chunk.next;
1589
+ this$1.byEnd[chunk.next.end] = chunk.next;
1580
1590
  }
1581
1591
  if (aborted) {
1582
1592
  return true;
@@ -1590,6 +1600,7 @@ MagicString.prototype.trimEnd = function trimEnd(charType) {
1590
1600
  return this;
1591
1601
  };
1592
1602
  MagicString.prototype.trimStartAborted = function trimStartAborted(charType) {
1603
+ var this$1 = this;
1593
1604
  var rx = new RegExp('^' + (charType || '\\s') + '+');
1594
1605
  this.intro = this.intro.replace(rx, '');
1595
1606
  if (this.intro.length) {
@@ -1601,12 +1612,12 @@ MagicString.prototype.trimStartAborted = function trimStartAborted(charType) {
1601
1612
  var aborted = chunk.trimStart(rx);
1602
1613
  if (chunk.end !== end) {
1603
1614
  // special case...
1604
- if (chunk === this.lastChunk) {
1605
- this.lastChunk = chunk.next;
1615
+ if (chunk === this$1.lastChunk) {
1616
+ this$1.lastChunk = chunk.next;
1606
1617
  }
1607
- this.byEnd[chunk.end] = chunk;
1608
- this.byStart[chunk.next.start] = chunk.next;
1609
- this.byEnd[chunk.next.end] = chunk.next;
1618
+ this$1.byEnd[chunk.end] = chunk;
1619
+ this$1.byStart[chunk.next.start] = chunk.next;
1620
+ this$1.byEnd[chunk.next.end] = chunk.next;
1610
1621
  }
1611
1622
  if (aborted) {
1612
1623
  return true;
@@ -1827,13 +1838,14 @@ Bundle.prototype.trim = function trim(charType) {
1827
1838
  return this.trimStart(charType).trimEnd(charType);
1828
1839
  };
1829
1840
  Bundle.prototype.trimStart = function trimStart(charType) {
1841
+ var this$1 = this;
1830
1842
  var rx = new RegExp('^' + (charType || '\\s') + '+');
1831
1843
  this.intro = this.intro.replace(rx, '');
1832
1844
  if (!this.intro) {
1833
1845
  var source;
1834
1846
  var i = 0;
1835
1847
  do {
1836
- source = this.sources[i++];
1848
+ source = this$1.sources[i++];
1837
1849
  if (!source) {
1838
1850
  break;
1839
1851
  }
@@ -1842,13 +1854,14 @@ Bundle.prototype.trimStart = function trimStart(charType) {
1842
1854
  return this;
1843
1855
  };
1844
1856
  Bundle.prototype.trimEnd = function trimEnd(charType) {
1857
+ var this$1 = this;
1845
1858
  var rx = new RegExp((charType || '\\s') + '+$');
1846
1859
  var source;
1847
1860
  var i = this.sources.length - 1;
1848
1861
  do {
1849
- source = this.sources[i--];
1862
+ source = this$1.sources[i--];
1850
1863
  if (!source) {
1851
- this.intro = this.intro.replace(rx, '');
1864
+ this$1.intro = this$1.intro.replace(rx, '');
1852
1865
  break;
1853
1866
  }
1854
1867
  } while (!source.content.trimEndAborted(charType));
@@ -8309,8 +8322,10 @@ function isReference(node, parent) {
8309
8322
  case 'MethodDefinition': return parent.computed;
8310
8323
  // disregard the `bar` in `{ bar: foo }`, but keep it in `{ [bar]: foo }`
8311
8324
  case 'Property': return parent.computed || node === parent.value;
8312
- // disregard the `bar` in `export { foo as bar }`
8313
- case 'ExportSpecifier': return node === parent.local;
8325
+ // disregard the `bar` in `export { foo as bar }` or
8326
+ // the foo in `import { foo as bar }`
8327
+ case 'ExportSpecifier':
8328
+ case 'ImportSpecifier': return node === parent.local;
8314
8329
  // disregard the `foo` in `foo: while (...) { ... break foo; ... continue foo;}`
8315
8330
  case 'LabeledStatement':
8316
8331
  case 'BreakStatement':
@@ -8324,43 +8339,54 @@ function isReference(node, parent) {
8324
8339
  const ValueProperties = Symbol('Value Properties');
8325
8340
  const PURE = { pure: true };
8326
8341
  const IMPURE = { pure: false };
8327
- const OBJECT = {
8342
+ // We use shortened variables to reduce file size here
8343
+ /* OBJECT */
8344
+ const O = {
8328
8345
  // @ts-ignore
8329
8346
  __proto__: null,
8330
8347
  [ValueProperties]: IMPURE
8331
8348
  };
8332
- const PURE_FUNCTION = {
8349
+ /* PURE FUNCTION */
8350
+ const PF = {
8333
8351
  // @ts-ignore
8334
8352
  __proto__: null,
8335
8353
  [ValueProperties]: PURE
8336
8354
  };
8337
- const CONSTRUCTOR = {
8355
+ /* CONSTRUCTOR */
8356
+ const C = {
8338
8357
  // @ts-ignore
8339
8358
  __proto__: null,
8340
8359
  [ValueProperties]: IMPURE,
8341
- prototype: OBJECT
8360
+ prototype: O
8342
8361
  };
8343
- const PURE_CONSTRUCTOR = {
8362
+ /* PURE CONSTRUCTOR */
8363
+ const PC = {
8344
8364
  // @ts-ignore
8345
8365
  __proto__: null,
8346
8366
  [ValueProperties]: PURE,
8347
- prototype: OBJECT
8367
+ prototype: O
8348
8368
  };
8349
8369
  const ARRAY_TYPE = {
8350
8370
  // @ts-ignore
8351
8371
  __proto__: null,
8352
8372
  [ValueProperties]: PURE,
8353
- from: PURE_FUNCTION,
8354
- of: PURE_FUNCTION,
8355
- prototype: OBJECT
8373
+ from: PF,
8374
+ of: PF,
8375
+ prototype: O
8356
8376
  };
8357
8377
  const INTL_MEMBER = {
8358
8378
  // @ts-ignore
8359
8379
  __proto__: null,
8360
8380
  [ValueProperties]: PURE,
8361
- supportedLocalesOf: PURE_CONSTRUCTOR
8381
+ supportedLocalesOf: PC
8362
8382
  };
8363
8383
  const knownGlobals = {
8384
+ // Placeholders for global objects to avoid shape mutations
8385
+ global: O,
8386
+ globalThis: O,
8387
+ self: O,
8388
+ window: O,
8389
+ // Common globals
8364
8390
  // @ts-ignore
8365
8391
  __proto__: null,
8366
8392
  [ValueProperties]: IMPURE,
@@ -8368,188 +8394,188 @@ const knownGlobals = {
8368
8394
  // @ts-ignore
8369
8395
  __proto__: null,
8370
8396
  [ValueProperties]: IMPURE,
8371
- from: PURE_FUNCTION,
8372
- isArray: PURE_FUNCTION,
8373
- of: PURE_FUNCTION,
8374
- prototype: OBJECT
8397
+ from: PF,
8398
+ isArray: PF,
8399
+ of: PF,
8400
+ prototype: O
8375
8401
  },
8376
8402
  ArrayBuffer: {
8377
8403
  // @ts-ignore
8378
8404
  __proto__: null,
8379
8405
  [ValueProperties]: PURE,
8380
- isView: PURE_FUNCTION,
8381
- prototype: OBJECT
8406
+ isView: PF,
8407
+ prototype: O
8382
8408
  },
8383
- Atomics: OBJECT,
8384
- BigInt: CONSTRUCTOR,
8385
- BigInt64Array: CONSTRUCTOR,
8386
- BigUint64Array: CONSTRUCTOR,
8387
- Boolean: PURE_CONSTRUCTOR,
8409
+ Atomics: O,
8410
+ BigInt: C,
8411
+ BigInt64Array: C,
8412
+ BigUint64Array: C,
8413
+ Boolean: PC,
8388
8414
  // @ts-ignore
8389
- constructor: CONSTRUCTOR,
8390
- DataView: PURE_CONSTRUCTOR,
8415
+ constructor: C,
8416
+ DataView: PC,
8391
8417
  Date: {
8392
8418
  // @ts-ignore
8393
8419
  __proto__: null,
8394
8420
  [ValueProperties]: PURE,
8395
- now: PURE_FUNCTION,
8396
- parse: PURE_FUNCTION,
8397
- prototype: OBJECT,
8398
- UTC: PURE_FUNCTION
8421
+ now: PF,
8422
+ parse: PF,
8423
+ prototype: O,
8424
+ UTC: PF
8399
8425
  },
8400
- decodeURI: PURE_FUNCTION,
8401
- decodeURIComponent: PURE_FUNCTION,
8402
- encodeURI: PURE_FUNCTION,
8403
- encodeURIComponent: PURE_FUNCTION,
8404
- Error: PURE_CONSTRUCTOR,
8405
- escape: PURE_FUNCTION,
8406
- eval: OBJECT,
8407
- EvalError: PURE_CONSTRUCTOR,
8426
+ decodeURI: PF,
8427
+ decodeURIComponent: PF,
8428
+ encodeURI: PF,
8429
+ encodeURIComponent: PF,
8430
+ Error: PC,
8431
+ escape: PF,
8432
+ eval: O,
8433
+ EvalError: PC,
8408
8434
  Float32Array: ARRAY_TYPE,
8409
8435
  Float64Array: ARRAY_TYPE,
8410
- Function: CONSTRUCTOR,
8436
+ Function: C,
8411
8437
  // @ts-ignore
8412
- hasOwnProperty: OBJECT,
8413
- Infinity: OBJECT,
8438
+ hasOwnProperty: O,
8439
+ Infinity: O,
8414
8440
  Int16Array: ARRAY_TYPE,
8415
8441
  Int32Array: ARRAY_TYPE,
8416
8442
  Int8Array: ARRAY_TYPE,
8417
- isFinite: PURE_FUNCTION,
8418
- isNaN: PURE_FUNCTION,
8443
+ isFinite: PF,
8444
+ isNaN: PF,
8419
8445
  // @ts-ignore
8420
- isPrototypeOf: OBJECT,
8421
- JSON: OBJECT,
8422
- Map: PURE_CONSTRUCTOR,
8446
+ isPrototypeOf: O,
8447
+ JSON: O,
8448
+ Map: PC,
8423
8449
  Math: {
8424
8450
  // @ts-ignore
8425
8451
  __proto__: null,
8426
8452
  [ValueProperties]: IMPURE,
8427
- abs: PURE_FUNCTION,
8428
- acos: PURE_FUNCTION,
8429
- acosh: PURE_FUNCTION,
8430
- asin: PURE_FUNCTION,
8431
- asinh: PURE_FUNCTION,
8432
- atan: PURE_FUNCTION,
8433
- atan2: PURE_FUNCTION,
8434
- atanh: PURE_FUNCTION,
8435
- cbrt: PURE_FUNCTION,
8436
- ceil: PURE_FUNCTION,
8437
- clz32: PURE_FUNCTION,
8438
- cos: PURE_FUNCTION,
8439
- cosh: PURE_FUNCTION,
8440
- exp: PURE_FUNCTION,
8441
- expm1: PURE_FUNCTION,
8442
- floor: PURE_FUNCTION,
8443
- fround: PURE_FUNCTION,
8444
- hypot: PURE_FUNCTION,
8445
- imul: PURE_FUNCTION,
8446
- log: PURE_FUNCTION,
8447
- log10: PURE_FUNCTION,
8448
- log1p: PURE_FUNCTION,
8449
- log2: PURE_FUNCTION,
8450
- max: PURE_FUNCTION,
8451
- min: PURE_FUNCTION,
8452
- pow: PURE_FUNCTION,
8453
- random: PURE_FUNCTION,
8454
- round: PURE_FUNCTION,
8455
- sign: PURE_FUNCTION,
8456
- sin: PURE_FUNCTION,
8457
- sinh: PURE_FUNCTION,
8458
- sqrt: PURE_FUNCTION,
8459
- tan: PURE_FUNCTION,
8460
- tanh: PURE_FUNCTION,
8461
- trunc: PURE_FUNCTION
8453
+ abs: PF,
8454
+ acos: PF,
8455
+ acosh: PF,
8456
+ asin: PF,
8457
+ asinh: PF,
8458
+ atan: PF,
8459
+ atan2: PF,
8460
+ atanh: PF,
8461
+ cbrt: PF,
8462
+ ceil: PF,
8463
+ clz32: PF,
8464
+ cos: PF,
8465
+ cosh: PF,
8466
+ exp: PF,
8467
+ expm1: PF,
8468
+ floor: PF,
8469
+ fround: PF,
8470
+ hypot: PF,
8471
+ imul: PF,
8472
+ log: PF,
8473
+ log10: PF,
8474
+ log1p: PF,
8475
+ log2: PF,
8476
+ max: PF,
8477
+ min: PF,
8478
+ pow: PF,
8479
+ random: PF,
8480
+ round: PF,
8481
+ sign: PF,
8482
+ sin: PF,
8483
+ sinh: PF,
8484
+ sqrt: PF,
8485
+ tan: PF,
8486
+ tanh: PF,
8487
+ trunc: PF
8462
8488
  },
8463
- NaN: OBJECT,
8489
+ NaN: O,
8464
8490
  Number: {
8465
8491
  // @ts-ignore
8466
8492
  __proto__: null,
8467
8493
  [ValueProperties]: PURE,
8468
- isFinite: PURE_FUNCTION,
8469
- isInteger: PURE_FUNCTION,
8470
- isNaN: PURE_FUNCTION,
8471
- isSafeInteger: PURE_FUNCTION,
8472
- parseFloat: PURE_FUNCTION,
8473
- parseInt: PURE_FUNCTION,
8474
- prototype: OBJECT
8494
+ isFinite: PF,
8495
+ isInteger: PF,
8496
+ isNaN: PF,
8497
+ isSafeInteger: PF,
8498
+ parseFloat: PF,
8499
+ parseInt: PF,
8500
+ prototype: O
8475
8501
  },
8476
8502
  Object: {
8477
8503
  // @ts-ignore
8478
8504
  __proto__: null,
8479
8505
  [ValueProperties]: PURE,
8480
- create: PURE_FUNCTION,
8481
- getNotifier: PURE_FUNCTION,
8482
- getOwn: PURE_FUNCTION,
8483
- getOwnPropertyDescriptor: PURE_FUNCTION,
8484
- getOwnPropertyNames: PURE_FUNCTION,
8485
- getOwnPropertySymbols: PURE_FUNCTION,
8486
- getPrototypeOf: PURE_FUNCTION,
8487
- is: PURE_FUNCTION,
8488
- isExtensible: PURE_FUNCTION,
8489
- isFrozen: PURE_FUNCTION,
8490
- isSealed: PURE_FUNCTION,
8491
- keys: PURE_FUNCTION,
8492
- prototype: OBJECT
8506
+ create: PF,
8507
+ getNotifier: PF,
8508
+ getOwn: PF,
8509
+ getOwnPropertyDescriptor: PF,
8510
+ getOwnPropertyNames: PF,
8511
+ getOwnPropertySymbols: PF,
8512
+ getPrototypeOf: PF,
8513
+ is: PF,
8514
+ isExtensible: PF,
8515
+ isFrozen: PF,
8516
+ isSealed: PF,
8517
+ keys: PF,
8518
+ prototype: O
8493
8519
  },
8494
- parseFloat: PURE_FUNCTION,
8495
- parseInt: PURE_FUNCTION,
8520
+ parseFloat: PF,
8521
+ parseInt: PF,
8496
8522
  Promise: {
8497
8523
  // @ts-ignore
8498
8524
  __proto__: null,
8499
8525
  [ValueProperties]: IMPURE,
8500
- all: PURE_FUNCTION,
8501
- prototype: OBJECT,
8502
- race: PURE_FUNCTION,
8503
- resolve: PURE_FUNCTION
8526
+ all: PF,
8527
+ prototype: O,
8528
+ race: PF,
8529
+ resolve: PF
8504
8530
  },
8505
8531
  // @ts-ignore
8506
- propertyIsEnumerable: OBJECT,
8507
- Proxy: OBJECT,
8508
- RangeError: PURE_CONSTRUCTOR,
8509
- ReferenceError: PURE_CONSTRUCTOR,
8510
- Reflect: OBJECT,
8511
- RegExp: PURE_CONSTRUCTOR,
8512
- Set: PURE_CONSTRUCTOR,
8513
- SharedArrayBuffer: CONSTRUCTOR,
8532
+ propertyIsEnumerable: O,
8533
+ Proxy: O,
8534
+ RangeError: PC,
8535
+ ReferenceError: PC,
8536
+ Reflect: O,
8537
+ RegExp: PC,
8538
+ Set: PC,
8539
+ SharedArrayBuffer: C,
8514
8540
  String: {
8515
8541
  // @ts-ignore
8516
8542
  __proto__: null,
8517
8543
  [ValueProperties]: PURE,
8518
- fromCharCode: PURE_FUNCTION,
8519
- fromCodePoint: PURE_FUNCTION,
8520
- prototype: OBJECT,
8521
- raw: PURE_FUNCTION
8544
+ fromCharCode: PF,
8545
+ fromCodePoint: PF,
8546
+ prototype: O,
8547
+ raw: PF
8522
8548
  },
8523
8549
  Symbol: {
8524
8550
  // @ts-ignore
8525
8551
  __proto__: null,
8526
8552
  [ValueProperties]: PURE,
8527
- for: PURE_FUNCTION,
8528
- keyFor: PURE_FUNCTION,
8529
- prototype: OBJECT
8553
+ for: PF,
8554
+ keyFor: PF,
8555
+ prototype: O
8530
8556
  },
8531
- SyntaxError: PURE_CONSTRUCTOR,
8557
+ SyntaxError: PC,
8532
8558
  // @ts-ignore
8533
- toLocaleString: OBJECT,
8559
+ toLocaleString: O,
8534
8560
  // @ts-ignore
8535
- toString: OBJECT,
8536
- TypeError: PURE_CONSTRUCTOR,
8561
+ toString: O,
8562
+ TypeError: PC,
8537
8563
  Uint16Array: ARRAY_TYPE,
8538
8564
  Uint32Array: ARRAY_TYPE,
8539
8565
  Uint8Array: ARRAY_TYPE,
8540
8566
  Uint8ClampedArray: ARRAY_TYPE,
8541
8567
  // Technically, this is a global, but it needs special handling
8542
8568
  // undefined: ?,
8543
- unescape: PURE_FUNCTION,
8544
- URIError: PURE_CONSTRUCTOR,
8569
+ unescape: PF,
8570
+ URIError: PC,
8545
8571
  // @ts-ignore
8546
- valueOf: OBJECT,
8547
- WeakMap: PURE_CONSTRUCTOR,
8548
- WeakSet: PURE_CONSTRUCTOR,
8572
+ valueOf: O,
8573
+ WeakMap: PC,
8574
+ WeakSet: PC,
8549
8575
  // Additional globals shared by Node and Browser that are not strictly part of the language
8550
- clearInterval: CONSTRUCTOR,
8551
- clearTimeout: CONSTRUCTOR,
8552
- console: OBJECT,
8576
+ clearInterval: C,
8577
+ clearTimeout: C,
8578
+ console: O,
8553
8579
  Intl: {
8554
8580
  // @ts-ignore
8555
8581
  __proto__: null,
@@ -8561,12 +8587,595 @@ const knownGlobals = {
8561
8587
  PluralRules: INTL_MEMBER,
8562
8588
  RelativeTimeFormat: INTL_MEMBER
8563
8589
  },
8564
- setInterval: CONSTRUCTOR,
8565
- setTimeout: CONSTRUCTOR,
8566
- TextDecoder: CONSTRUCTOR,
8567
- TextEncoder: CONSTRUCTOR,
8568
- URL: CONSTRUCTOR,
8569
- URLSearchParams: CONSTRUCTOR
8590
+ setInterval: C,
8591
+ setTimeout: C,
8592
+ TextDecoder: C,
8593
+ TextEncoder: C,
8594
+ URL: C,
8595
+ URLSearchParams: C,
8596
+ // Browser specific globals
8597
+ AbortController: C,
8598
+ AbortSignal: C,
8599
+ addEventListener: O,
8600
+ alert: O,
8601
+ AnalyserNode: C,
8602
+ Animation: C,
8603
+ AnimationEvent: C,
8604
+ applicationCache: O,
8605
+ ApplicationCache: C,
8606
+ ApplicationCacheErrorEvent: C,
8607
+ atob: O,
8608
+ Attr: C,
8609
+ Audio: C,
8610
+ AudioBuffer: C,
8611
+ AudioBufferSourceNode: C,
8612
+ AudioContext: C,
8613
+ AudioDestinationNode: C,
8614
+ AudioListener: C,
8615
+ AudioNode: C,
8616
+ AudioParam: C,
8617
+ AudioProcessingEvent: C,
8618
+ AudioScheduledSourceNode: C,
8619
+ AudioWorkletNode: C,
8620
+ BarProp: C,
8621
+ BaseAudioContext: C,
8622
+ BatteryManager: C,
8623
+ BeforeUnloadEvent: C,
8624
+ BiquadFilterNode: C,
8625
+ Blob: C,
8626
+ BlobEvent: C,
8627
+ blur: O,
8628
+ BroadcastChannel: C,
8629
+ btoa: O,
8630
+ ByteLengthQueuingStrategy: C,
8631
+ Cache: C,
8632
+ caches: O,
8633
+ CacheStorage: C,
8634
+ cancelAnimationFrame: O,
8635
+ cancelIdleCallback: O,
8636
+ CanvasCaptureMediaStreamTrack: C,
8637
+ CanvasGradient: C,
8638
+ CanvasPattern: C,
8639
+ CanvasRenderingContext2D: C,
8640
+ ChannelMergerNode: C,
8641
+ ChannelSplitterNode: C,
8642
+ CharacterData: C,
8643
+ clientInformation: O,
8644
+ ClipboardEvent: C,
8645
+ close: O,
8646
+ closed: O,
8647
+ CloseEvent: C,
8648
+ Comment: C,
8649
+ CompositionEvent: C,
8650
+ confirm: O,
8651
+ ConstantSourceNode: C,
8652
+ ConvolverNode: C,
8653
+ CountQueuingStrategy: C,
8654
+ createImageBitmap: O,
8655
+ Credential: C,
8656
+ CredentialsContainer: C,
8657
+ crypto: O,
8658
+ Crypto: C,
8659
+ CryptoKey: C,
8660
+ CSS: C,
8661
+ CSSConditionRule: C,
8662
+ CSSFontFaceRule: C,
8663
+ CSSGroupingRule: C,
8664
+ CSSImportRule: C,
8665
+ CSSKeyframeRule: C,
8666
+ CSSKeyframesRule: C,
8667
+ CSSMediaRule: C,
8668
+ CSSNamespaceRule: C,
8669
+ CSSPageRule: C,
8670
+ CSSRule: C,
8671
+ CSSRuleList: C,
8672
+ CSSStyleDeclaration: C,
8673
+ CSSStyleRule: C,
8674
+ CSSStyleSheet: C,
8675
+ CSSSupportsRule: C,
8676
+ CustomElementRegistry: C,
8677
+ customElements: O,
8678
+ CustomEvent: C,
8679
+ DataTransfer: C,
8680
+ DataTransferItem: C,
8681
+ DataTransferItemList: C,
8682
+ defaultstatus: O,
8683
+ defaultStatus: O,
8684
+ DelayNode: C,
8685
+ DeviceMotionEvent: C,
8686
+ DeviceOrientationEvent: C,
8687
+ devicePixelRatio: O,
8688
+ dispatchEvent: O,
8689
+ document: O,
8690
+ Document: C,
8691
+ DocumentFragment: C,
8692
+ DocumentType: C,
8693
+ DOMError: C,
8694
+ DOMException: C,
8695
+ DOMImplementation: C,
8696
+ DOMMatrix: C,
8697
+ DOMMatrixReadOnly: C,
8698
+ DOMParser: C,
8699
+ DOMPoint: C,
8700
+ DOMPointReadOnly: C,
8701
+ DOMQuad: C,
8702
+ DOMRect: C,
8703
+ DOMRectReadOnly: C,
8704
+ DOMStringList: C,
8705
+ DOMStringMap: C,
8706
+ DOMTokenList: C,
8707
+ DragEvent: C,
8708
+ DynamicsCompressorNode: C,
8709
+ Element: C,
8710
+ ErrorEvent: C,
8711
+ Event: C,
8712
+ EventSource: C,
8713
+ EventTarget: C,
8714
+ external: O,
8715
+ fetch: O,
8716
+ File: C,
8717
+ FileList: C,
8718
+ FileReader: C,
8719
+ find: O,
8720
+ focus: O,
8721
+ FocusEvent: C,
8722
+ FontFace: C,
8723
+ FontFaceSetLoadEvent: C,
8724
+ FormData: C,
8725
+ frames: O,
8726
+ GainNode: C,
8727
+ Gamepad: C,
8728
+ GamepadButton: C,
8729
+ GamepadEvent: C,
8730
+ getComputedStyle: O,
8731
+ getSelection: O,
8732
+ HashChangeEvent: C,
8733
+ Headers: C,
8734
+ history: O,
8735
+ History: C,
8736
+ HTMLAllCollection: C,
8737
+ HTMLAnchorElement: C,
8738
+ HTMLAreaElement: C,
8739
+ HTMLAudioElement: C,
8740
+ HTMLBaseElement: C,
8741
+ HTMLBodyElement: C,
8742
+ HTMLBRElement: C,
8743
+ HTMLButtonElement: C,
8744
+ HTMLCanvasElement: C,
8745
+ HTMLCollection: C,
8746
+ HTMLContentElement: C,
8747
+ HTMLDataElement: C,
8748
+ HTMLDataListElement: C,
8749
+ HTMLDetailsElement: C,
8750
+ HTMLDialogElement: C,
8751
+ HTMLDirectoryElement: C,
8752
+ HTMLDivElement: C,
8753
+ HTMLDListElement: C,
8754
+ HTMLDocument: C,
8755
+ HTMLElement: C,
8756
+ HTMLEmbedElement: C,
8757
+ HTMLFieldSetElement: C,
8758
+ HTMLFontElement: C,
8759
+ HTMLFormControlsCollection: C,
8760
+ HTMLFormElement: C,
8761
+ HTMLFrameElement: C,
8762
+ HTMLFrameSetElement: C,
8763
+ HTMLHeadElement: C,
8764
+ HTMLHeadingElement: C,
8765
+ HTMLHRElement: C,
8766
+ HTMLHtmlElement: C,
8767
+ HTMLIFrameElement: C,
8768
+ HTMLImageElement: C,
8769
+ HTMLInputElement: C,
8770
+ HTMLLabelElement: C,
8771
+ HTMLLegendElement: C,
8772
+ HTMLLIElement: C,
8773
+ HTMLLinkElement: C,
8774
+ HTMLMapElement: C,
8775
+ HTMLMarqueeElement: C,
8776
+ HTMLMediaElement: C,
8777
+ HTMLMenuElement: C,
8778
+ HTMLMetaElement: C,
8779
+ HTMLMeterElement: C,
8780
+ HTMLModElement: C,
8781
+ HTMLObjectElement: C,
8782
+ HTMLOListElement: C,
8783
+ HTMLOptGroupElement: C,
8784
+ HTMLOptionElement: C,
8785
+ HTMLOptionsCollection: C,
8786
+ HTMLOutputElement: C,
8787
+ HTMLParagraphElement: C,
8788
+ HTMLParamElement: C,
8789
+ HTMLPictureElement: C,
8790
+ HTMLPreElement: C,
8791
+ HTMLProgressElement: C,
8792
+ HTMLQuoteElement: C,
8793
+ HTMLScriptElement: C,
8794
+ HTMLSelectElement: C,
8795
+ HTMLShadowElement: C,
8796
+ HTMLSlotElement: C,
8797
+ HTMLSourceElement: C,
8798
+ HTMLSpanElement: C,
8799
+ HTMLStyleElement: C,
8800
+ HTMLTableCaptionElement: C,
8801
+ HTMLTableCellElement: C,
8802
+ HTMLTableColElement: C,
8803
+ HTMLTableElement: C,
8804
+ HTMLTableRowElement: C,
8805
+ HTMLTableSectionElement: C,
8806
+ HTMLTemplateElement: C,
8807
+ HTMLTextAreaElement: C,
8808
+ HTMLTimeElement: C,
8809
+ HTMLTitleElement: C,
8810
+ HTMLTrackElement: C,
8811
+ HTMLUListElement: C,
8812
+ HTMLUnknownElement: C,
8813
+ HTMLVideoElement: C,
8814
+ IDBCursor: C,
8815
+ IDBCursorWithValue: C,
8816
+ IDBDatabase: C,
8817
+ IDBFactory: C,
8818
+ IDBIndex: C,
8819
+ IDBKeyRange: C,
8820
+ IDBObjectStore: C,
8821
+ IDBOpenDBRequest: C,
8822
+ IDBRequest: C,
8823
+ IDBTransaction: C,
8824
+ IDBVersionChangeEvent: C,
8825
+ IdleDeadline: C,
8826
+ IIRFilterNode: C,
8827
+ Image: C,
8828
+ ImageBitmap: C,
8829
+ ImageBitmapRenderingContext: C,
8830
+ ImageCapture: C,
8831
+ ImageData: C,
8832
+ indexedDB: O,
8833
+ innerHeight: O,
8834
+ innerWidth: O,
8835
+ InputEvent: C,
8836
+ IntersectionObserver: C,
8837
+ IntersectionObserverEntry: C,
8838
+ isSecureContext: O,
8839
+ KeyboardEvent: C,
8840
+ KeyframeEffect: C,
8841
+ length: O,
8842
+ localStorage: O,
8843
+ location: O,
8844
+ Location: C,
8845
+ locationbar: O,
8846
+ matchMedia: O,
8847
+ MediaDeviceInfo: C,
8848
+ MediaDevices: C,
8849
+ MediaElementAudioSourceNode: C,
8850
+ MediaEncryptedEvent: C,
8851
+ MediaError: C,
8852
+ MediaKeyMessageEvent: C,
8853
+ MediaKeySession: C,
8854
+ MediaKeyStatusMap: C,
8855
+ MediaKeySystemAccess: C,
8856
+ MediaList: C,
8857
+ MediaQueryList: C,
8858
+ MediaQueryListEvent: C,
8859
+ MediaRecorder: C,
8860
+ MediaSettingsRange: C,
8861
+ MediaSource: C,
8862
+ MediaStream: C,
8863
+ MediaStreamAudioDestinationNode: C,
8864
+ MediaStreamAudioSourceNode: C,
8865
+ MediaStreamEvent: C,
8866
+ MediaStreamTrack: C,
8867
+ MediaStreamTrackEvent: C,
8868
+ menubar: O,
8869
+ MessageChannel: C,
8870
+ MessageEvent: C,
8871
+ MessagePort: C,
8872
+ MIDIAccess: C,
8873
+ MIDIConnectionEvent: C,
8874
+ MIDIInput: C,
8875
+ MIDIInputMap: C,
8876
+ MIDIMessageEvent: C,
8877
+ MIDIOutput: C,
8878
+ MIDIOutputMap: C,
8879
+ MIDIPort: C,
8880
+ MimeType: C,
8881
+ MimeTypeArray: C,
8882
+ MouseEvent: C,
8883
+ moveBy: O,
8884
+ moveTo: O,
8885
+ MutationEvent: C,
8886
+ MutationObserver: C,
8887
+ MutationRecord: C,
8888
+ name: O,
8889
+ NamedNodeMap: C,
8890
+ NavigationPreloadManager: C,
8891
+ navigator: O,
8892
+ Navigator: C,
8893
+ NetworkInformation: C,
8894
+ Node: C,
8895
+ NodeFilter: O,
8896
+ NodeIterator: C,
8897
+ NodeList: C,
8898
+ Notification: C,
8899
+ OfflineAudioCompletionEvent: C,
8900
+ OfflineAudioContext: C,
8901
+ offscreenBuffering: O,
8902
+ OffscreenCanvas: C,
8903
+ open: O,
8904
+ openDatabase: O,
8905
+ Option: C,
8906
+ origin: O,
8907
+ OscillatorNode: C,
8908
+ outerHeight: O,
8909
+ outerWidth: O,
8910
+ PageTransitionEvent: C,
8911
+ pageXOffset: O,
8912
+ pageYOffset: O,
8913
+ PannerNode: C,
8914
+ parent: O,
8915
+ Path2D: C,
8916
+ PaymentAddress: C,
8917
+ PaymentRequest: C,
8918
+ PaymentRequestUpdateEvent: C,
8919
+ PaymentResponse: C,
8920
+ performance: O,
8921
+ Performance: C,
8922
+ PerformanceEntry: C,
8923
+ PerformanceLongTaskTiming: C,
8924
+ PerformanceMark: C,
8925
+ PerformanceMeasure: C,
8926
+ PerformanceNavigation: C,
8927
+ PerformanceNavigationTiming: C,
8928
+ PerformanceObserver: C,
8929
+ PerformanceObserverEntryList: C,
8930
+ PerformancePaintTiming: C,
8931
+ PerformanceResourceTiming: C,
8932
+ PerformanceTiming: C,
8933
+ PeriodicWave: C,
8934
+ Permissions: C,
8935
+ PermissionStatus: C,
8936
+ personalbar: O,
8937
+ PhotoCapabilities: C,
8938
+ Plugin: C,
8939
+ PluginArray: C,
8940
+ PointerEvent: C,
8941
+ PopStateEvent: C,
8942
+ postMessage: O,
8943
+ Presentation: C,
8944
+ PresentationAvailability: C,
8945
+ PresentationConnection: C,
8946
+ PresentationConnectionAvailableEvent: C,
8947
+ PresentationConnectionCloseEvent: C,
8948
+ PresentationConnectionList: C,
8949
+ PresentationReceiver: C,
8950
+ PresentationRequest: C,
8951
+ print: O,
8952
+ ProcessingInstruction: C,
8953
+ ProgressEvent: C,
8954
+ PromiseRejectionEvent: C,
8955
+ prompt: O,
8956
+ PushManager: C,
8957
+ PushSubscription: C,
8958
+ PushSubscriptionOptions: C,
8959
+ queueMicrotask: O,
8960
+ RadioNodeList: C,
8961
+ Range: C,
8962
+ ReadableStream: C,
8963
+ RemotePlayback: C,
8964
+ removeEventListener: O,
8965
+ Request: C,
8966
+ requestAnimationFrame: O,
8967
+ requestIdleCallback: O,
8968
+ resizeBy: O,
8969
+ ResizeObserver: C,
8970
+ ResizeObserverEntry: C,
8971
+ resizeTo: O,
8972
+ Response: C,
8973
+ RTCCertificate: C,
8974
+ RTCDataChannel: C,
8975
+ RTCDataChannelEvent: C,
8976
+ RTCDtlsTransport: C,
8977
+ RTCIceCandidate: C,
8978
+ RTCIceTransport: C,
8979
+ RTCPeerConnection: C,
8980
+ RTCPeerConnectionIceEvent: C,
8981
+ RTCRtpReceiver: C,
8982
+ RTCRtpSender: C,
8983
+ RTCSctpTransport: C,
8984
+ RTCSessionDescription: C,
8985
+ RTCStatsReport: C,
8986
+ RTCTrackEvent: C,
8987
+ screen: O,
8988
+ Screen: C,
8989
+ screenLeft: O,
8990
+ ScreenOrientation: C,
8991
+ screenTop: O,
8992
+ screenX: O,
8993
+ screenY: O,
8994
+ ScriptProcessorNode: C,
8995
+ scroll: O,
8996
+ scrollbars: O,
8997
+ scrollBy: O,
8998
+ scrollTo: O,
8999
+ scrollX: O,
9000
+ scrollY: O,
9001
+ SecurityPolicyViolationEvent: C,
9002
+ Selection: C,
9003
+ ServiceWorker: C,
9004
+ ServiceWorkerContainer: C,
9005
+ ServiceWorkerRegistration: C,
9006
+ sessionStorage: O,
9007
+ ShadowRoot: C,
9008
+ SharedWorker: C,
9009
+ SourceBuffer: C,
9010
+ SourceBufferList: C,
9011
+ speechSynthesis: O,
9012
+ SpeechSynthesisEvent: C,
9013
+ SpeechSynthesisUtterance: C,
9014
+ StaticRange: C,
9015
+ status: O,
9016
+ statusbar: O,
9017
+ StereoPannerNode: C,
9018
+ stop: O,
9019
+ Storage: C,
9020
+ StorageEvent: C,
9021
+ StorageManager: C,
9022
+ styleMedia: O,
9023
+ StyleSheet: C,
9024
+ StyleSheetList: C,
9025
+ SubtleCrypto: C,
9026
+ SVGAElement: C,
9027
+ SVGAngle: C,
9028
+ SVGAnimatedAngle: C,
9029
+ SVGAnimatedBoolean: C,
9030
+ SVGAnimatedEnumeration: C,
9031
+ SVGAnimatedInteger: C,
9032
+ SVGAnimatedLength: C,
9033
+ SVGAnimatedLengthList: C,
9034
+ SVGAnimatedNumber: C,
9035
+ SVGAnimatedNumberList: C,
9036
+ SVGAnimatedPreserveAspectRatio: C,
9037
+ SVGAnimatedRect: C,
9038
+ SVGAnimatedString: C,
9039
+ SVGAnimatedTransformList: C,
9040
+ SVGAnimateElement: C,
9041
+ SVGAnimateMotionElement: C,
9042
+ SVGAnimateTransformElement: C,
9043
+ SVGAnimationElement: C,
9044
+ SVGCircleElement: C,
9045
+ SVGClipPathElement: C,
9046
+ SVGComponentTransferFunctionElement: C,
9047
+ SVGDefsElement: C,
9048
+ SVGDescElement: C,
9049
+ SVGDiscardElement: C,
9050
+ SVGElement: C,
9051
+ SVGEllipseElement: C,
9052
+ SVGFEBlendElement: C,
9053
+ SVGFEColorMatrixElement: C,
9054
+ SVGFEComponentTransferElement: C,
9055
+ SVGFECompositeElement: C,
9056
+ SVGFEConvolveMatrixElement: C,
9057
+ SVGFEDiffuseLightingElement: C,
9058
+ SVGFEDisplacementMapElement: C,
9059
+ SVGFEDistantLightElement: C,
9060
+ SVGFEDropShadowElement: C,
9061
+ SVGFEFloodElement: C,
9062
+ SVGFEFuncAElement: C,
9063
+ SVGFEFuncBElement: C,
9064
+ SVGFEFuncGElement: C,
9065
+ SVGFEFuncRElement: C,
9066
+ SVGFEGaussianBlurElement: C,
9067
+ SVGFEImageElement: C,
9068
+ SVGFEMergeElement: C,
9069
+ SVGFEMergeNodeElement: C,
9070
+ SVGFEMorphologyElement: C,
9071
+ SVGFEOffsetElement: C,
9072
+ SVGFEPointLightElement: C,
9073
+ SVGFESpecularLightingElement: C,
9074
+ SVGFESpotLightElement: C,
9075
+ SVGFETileElement: C,
9076
+ SVGFETurbulenceElement: C,
9077
+ SVGFilterElement: C,
9078
+ SVGForeignObjectElement: C,
9079
+ SVGGElement: C,
9080
+ SVGGeometryElement: C,
9081
+ SVGGradientElement: C,
9082
+ SVGGraphicsElement: C,
9083
+ SVGImageElement: C,
9084
+ SVGLength: C,
9085
+ SVGLengthList: C,
9086
+ SVGLinearGradientElement: C,
9087
+ SVGLineElement: C,
9088
+ SVGMarkerElement: C,
9089
+ SVGMaskElement: C,
9090
+ SVGMatrix: C,
9091
+ SVGMetadataElement: C,
9092
+ SVGMPathElement: C,
9093
+ SVGNumber: C,
9094
+ SVGNumberList: C,
9095
+ SVGPathElement: C,
9096
+ SVGPatternElement: C,
9097
+ SVGPoint: C,
9098
+ SVGPointList: C,
9099
+ SVGPolygonElement: C,
9100
+ SVGPolylineElement: C,
9101
+ SVGPreserveAspectRatio: C,
9102
+ SVGRadialGradientElement: C,
9103
+ SVGRect: C,
9104
+ SVGRectElement: C,
9105
+ SVGScriptElement: C,
9106
+ SVGSetElement: C,
9107
+ SVGStopElement: C,
9108
+ SVGStringList: C,
9109
+ SVGStyleElement: C,
9110
+ SVGSVGElement: C,
9111
+ SVGSwitchElement: C,
9112
+ SVGSymbolElement: C,
9113
+ SVGTextContentElement: C,
9114
+ SVGTextElement: C,
9115
+ SVGTextPathElement: C,
9116
+ SVGTextPositioningElement: C,
9117
+ SVGTitleElement: C,
9118
+ SVGTransform: C,
9119
+ SVGTransformList: C,
9120
+ SVGTSpanElement: C,
9121
+ SVGUnitTypes: C,
9122
+ SVGUseElement: C,
9123
+ SVGViewElement: C,
9124
+ TaskAttributionTiming: C,
9125
+ Text: C,
9126
+ TextEvent: C,
9127
+ TextMetrics: C,
9128
+ TextTrack: C,
9129
+ TextTrackCue: C,
9130
+ TextTrackCueList: C,
9131
+ TextTrackList: C,
9132
+ TimeRanges: C,
9133
+ toolbar: O,
9134
+ top: O,
9135
+ Touch: C,
9136
+ TouchEvent: C,
9137
+ TouchList: C,
9138
+ TrackEvent: C,
9139
+ TransitionEvent: C,
9140
+ TreeWalker: C,
9141
+ UIEvent: C,
9142
+ ValidityState: C,
9143
+ visualViewport: O,
9144
+ VisualViewport: C,
9145
+ VTTCue: C,
9146
+ WaveShaperNode: C,
9147
+ WebAssembly: O,
9148
+ WebGL2RenderingContext: C,
9149
+ WebGLActiveInfo: C,
9150
+ WebGLBuffer: C,
9151
+ WebGLContextEvent: C,
9152
+ WebGLFramebuffer: C,
9153
+ WebGLProgram: C,
9154
+ WebGLQuery: C,
9155
+ WebGLRenderbuffer: C,
9156
+ WebGLRenderingContext: C,
9157
+ WebGLSampler: C,
9158
+ WebGLShader: C,
9159
+ WebGLShaderPrecisionFormat: C,
9160
+ WebGLSync: C,
9161
+ WebGLTexture: C,
9162
+ WebGLTransformFeedback: C,
9163
+ WebGLUniformLocation: C,
9164
+ WebGLVertexArrayObject: C,
9165
+ WebSocket: C,
9166
+ WheelEvent: C,
9167
+ Window: C,
9168
+ Worker: C,
9169
+ WritableStream: C,
9170
+ XMLDocument: C,
9171
+ XMLHttpRequest: C,
9172
+ XMLHttpRequestEventTarget: C,
9173
+ XMLHttpRequestUpload: C,
9174
+ XMLSerializer: C,
9175
+ XPathEvaluator: C,
9176
+ XPathExpression: C,
9177
+ XPathResult: C,
9178
+ XSLTProcessor: C
8570
9179
  };
8571
9180
  for (const global of ['window', 'global', 'self', 'globalThis']) {
8572
9181
  knownGlobals[global] = knownGlobals;
@@ -8594,7 +9203,6 @@ function isGlobalMember(path) {
8594
9203
  }
8595
9204
  return getGlobalAtPath(path.slice(0, -1)) !== null;
8596
9205
  }
8597
- // TODO add others to this list from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects
8598
9206
 
8599
9207
  class GlobalVariable extends Variable {
8600
9208
  hasEffectsWhenAccessedAtPath(path) {
@@ -9096,18 +9704,14 @@ class NamespaceVariable extends Variable {
9096
9704
  const safeName = RESERVED_NAMES[name] ? `'${name}'` : name;
9097
9705
  return `${t}${safeName}: ${original.getName()}`;
9098
9706
  });
9099
- const name = this.getName();
9100
- const callee = options.freeze ? `/*#__PURE__*/Object.freeze` : '';
9101
- let output = `${options.varOrConst} ${name} = ${options.namespaceToStringTag
9102
- ? `{${n}${members.join(`,${n}`)}${n}};`
9103
- : `${callee}({${n}${members.join(`,${n}`)}${n}});`}`;
9707
+ members.unshift(`${t}__proto__:${_}null`);
9104
9708
  if (options.namespaceToStringTag) {
9105
- output += `${n}if${_}(typeof Symbol${_}!==${_}'undefined'${_}&&${_}Symbol.toStringTag)${n}`;
9106
- output += `${t}Object.defineProperty(${name},${_}Symbol.toStringTag,${_}{${_}value:${_}'Module'${_}});${n}`;
9107
- output += `else${n || ' '}`;
9108
- output += `${t}Object.defineProperty(${name},${_}'toString',${_}{${_}value:${_}function${_}()${_}{${_}return${_}'[object Module]'${options.compact ? ';' : ''}${_}}${_}});${n}`;
9109
- output += `${callee}(${name});`;
9709
+ members.unshift(`${t}[Symbol.toStringTag]:${_}'Module'`);
9110
9710
  }
9711
+ const name = this.getName();
9712
+ const callee = options.freeze ? `/*#__PURE__*/Object.freeze` : '';
9713
+ const membersStr = members.join(`,${n}`);
9714
+ let output = `${options.varOrConst} ${name}${_}=${_}${callee}({${n}${membersStr}${n}});`;
9111
9715
  if (options.format === 'system' && this.exportName) {
9112
9716
  output += `${n}exports('${this.exportName}',${_}${name});`;
9113
9717
  }
@@ -10968,12 +11572,9 @@ class ForOfStatement extends NodeBase {
10968
11572
  createScope(parentScope) {
10969
11573
  this.scope = new BlockScope(parentScope);
10970
11574
  }
10971
- hasEffects(options) {
10972
- return ((this.left &&
10973
- (this.left.hasEffects(options) ||
10974
- this.left.hasEffectsWhenAssignedAtPath(EMPTY_PATH, options))) ||
10975
- (this.right && this.right.hasEffects(options)) ||
10976
- this.body.hasEffects(options.setIgnoreBreakStatements()));
11575
+ hasEffects() {
11576
+ // Placeholder until proper Symbol.Iterator support
11577
+ return true;
10977
11578
  }
10978
11579
  include(includeChildrenRecursively) {
10979
11580
  this.included = true;
@@ -12649,6 +13250,8 @@ class UnaryExpression extends NodeBase {
12649
13250
  return unaryOperators[this.operator](argumentValue);
12650
13251
  }
12651
13252
  hasEffects(options) {
13253
+ if (this.operator === 'typeof' && this.argument instanceof Identifier$1)
13254
+ return false;
12652
13255
  return (this.argument.hasEffects(options) ||
12653
13256
  (this.operator === 'delete' &&
12654
13257
  this.argument.hasEffectsWhenAssignedAtPath(EMPTY_PATH, options)));
@@ -14455,6 +15058,7 @@ function makeUnique(name, existingNames) {
14455
15058
  return uniqueName;
14456
15059
  }
14457
15060
 
15061
+ const NON_ASSET_EXTENSIONS = ['.js', '.jsx', '.ts', '.tsx'];
14458
15062
  function getGlobalName(module, globals, graph, hasExports) {
14459
15063
  let globalName;
14460
15064
  if (typeof globals === 'function') {
@@ -14599,10 +15203,15 @@ class Chunk$1 {
14599
15203
  }), existingNames);
14600
15204
  }
14601
15205
  generateIdPreserveModules(preserveModulesRelativeDir, options, existingNames) {
14602
- const sanitizedId = index.sanitizeFileName(this.orderedModules[0].id);
15206
+ const id = this.orderedModules[0].id;
15207
+ const sanitizedId = index.sanitizeFileName(id);
14603
15208
  let path$1;
14604
- if (index.isAbsolute(this.orderedModules[0].id)) {
14605
- const name = renderNamePattern(options.entryFileNames || '[name].js', 'output.entryFileNames', {
15209
+ if (index.isAbsolute(id)) {
15210
+ const extension = path.extname(id);
15211
+ const name = renderNamePattern(options.entryFileNames ||
15212
+ (NON_ASSET_EXTENSIONS.includes(extension) ? '[name].js' : '[name][extname].js'), 'output.entryFileNames', {
15213
+ ext: () => extension.substr(1),
15214
+ extname: () => extension,
14606
15215
  format: () => (options.format === 'es' ? 'esm' : options.format),
14607
15216
  name: () => this.getChunkName()
14608
15217
  });
@@ -17541,7 +18150,9 @@ function writeOutputFile(graph, build, outputFile, outputOptions) {
17541
18150
  url = `${path.basename(outputFile.fileName)}.map`;
17542
18151
  writeSourceMapPromise = writeFile(`${fileName}.map`, outputFile.map.toString());
17543
18152
  }
17544
- source += `//# ${SOURCEMAPPING_URL}=${url}\n`;
18153
+ if (outputOptions.sourcemap !== 'hidden') {
18154
+ source += `//# ${SOURCEMAPPING_URL}=${url}\n`;
18155
+ }
17545
18156
  }
17546
18157
  }
17547
18158
  return writeFile(fileName, source)