@rollup/wasm-node 4.14.0 → 4.14.2

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.
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.14.0
4
- Wed, 03 Apr 2024 05:22:15 GMT - commit 5abe71bd5bae3423b4e2ee80207c871efde20253
3
+ Rollup.js v4.14.2
4
+ Fri, 12 Apr 2024 06:23:07 GMT - commit 7275328b41b29605142bfdf55d68cb54e895a20c
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -10,7 +10,7 @@
10
10
  'use strict';
11
11
 
12
12
  const native_js = require('../native.js');
13
- const node_path = require('node:path');
13
+ const path = require('node:path');
14
14
 
15
15
  /** @typedef {import('./types').Location} Location */
16
16
 
@@ -192,13 +192,13 @@ function relative(from, to) {
192
192
  }
193
193
 
194
194
  function getAliasName(id) {
195
- const base = node_path.basename(id);
196
- return base.slice(0, Math.max(0, base.length - node_path.extname(id).length));
195
+ const base = path.basename(id);
196
+ return base.slice(0, Math.max(0, base.length - path.extname(id).length));
197
197
  }
198
198
  function relativeId(id) {
199
199
  if (!isAbsolute(id))
200
200
  return id;
201
- return relative(node_path.resolve(), id);
201
+ return relative(path.resolve(), id);
202
202
  }
203
203
  function isPathFragment(name) {
204
204
  // starting with "/", "./", "../", "C:/"
@@ -210,15 +210,15 @@ function getImportPath(importerId, targetPath, stripJsExtension, ensureFileName)
210
210
  targetPath = targetPath.slice(3);
211
211
  importerId = '_/' + importerId;
212
212
  }
213
- let relativePath = normalize(relative(node_path.dirname(importerId), targetPath));
213
+ let relativePath = normalize(relative(path.dirname(importerId), targetPath));
214
214
  if (stripJsExtension && relativePath.endsWith('.js')) {
215
215
  relativePath = relativePath.slice(0, -3);
216
216
  }
217
217
  if (ensureFileName) {
218
218
  if (relativePath === '')
219
- return '../' + node_path.basename(targetPath);
219
+ return '../' + path.basename(targetPath);
220
220
  if (UPPER_DIR_REGEX.test(relativePath)) {
221
- return [...relativePath.split('/'), '..', node_path.basename(targetPath)].join('/');
221
+ return [...relativePath.split('/'), '..', path.basename(targetPath)].join('/');
222
222
  }
223
223
  }
224
224
  return relativePath ? (relativePath.startsWith('..') ? relativePath : './' + relativePath) : '.';
@@ -683,7 +683,7 @@ function logMissingEntryExport(binding, exporter) {
683
683
  };
684
684
  }
685
685
  function logMissingExport(binding, importingModule, exporter) {
686
- const isJson = node_path.extname(exporter) === '.json';
686
+ const isJson = path.extname(exporter) === '.json';
687
687
  return {
688
688
  binding,
689
689
  code: MISSING_EXPORT,
@@ -992,6 +992,15 @@ function warnDeprecationWithOptions(deprecation, urlSnippet, activeDeprecation,
992
992
  }
993
993
  }
994
994
 
995
+ const BLANK = Object.freeze(Object.create(null));
996
+ const EMPTY_OBJECT = Object.freeze({});
997
+ const EMPTY_ARRAY = Object.freeze([]);
998
+ const EMPTY_SET = Object.freeze(new (class extends Set {
999
+ add() {
1000
+ throw new Error('Cannot add to empty set');
1001
+ }
1002
+ })());
1003
+
995
1004
  const ArrowFunctionExpression = 'ArrowFunctionExpression';
996
1005
  const BlockStatement = 'BlockStatement';
997
1006
  const CallExpression = 'CallExpression';
@@ -1006,6 +1015,8 @@ const Property = 'Property';
1006
1015
  const ReturnStatement = 'ReturnStatement';
1007
1016
  const TemplateLiteral = 'TemplateLiteral';
1008
1017
 
1018
+ // This file is generated by scripts/generate-string-constants.js.
1019
+ // Do not edit this file directly.
1009
1020
  const FIXED_STRINGS = [
1010
1021
  'var',
1011
1022
  'let',
@@ -1075,6 +1086,8 @@ const FIXED_STRINGS = [
1075
1086
  const ANNOTATION_KEY = '_rollupAnnotations';
1076
1087
  const INVALID_ANNOTATION_KEY = '_rollupRemoved';
1077
1088
  const convertAnnotations = (position, buffer) => {
1089
+ if (position === 0)
1090
+ return EMPTY_ARRAY;
1078
1091
  const length = buffer[position++];
1079
1092
  const list = [];
1080
1093
  for (let index = 0; index < length; index++) {
@@ -1094,7 +1107,7 @@ const convertString = (position, buffer, readString) => {
1094
1107
  return readString(bytePosition, length);
1095
1108
  };
1096
1109
 
1097
- // This file is generated by scripts/generate-ast-converters.js.
1110
+ // This file is generated by scripts/generate-buffer-to-ast.js.
1098
1111
  // Do not edit this file directly.
1099
1112
  function convertProgram(buffer, readString) {
1100
1113
  const node = convertNode(0, new Uint32Array(buffer), readString);
@@ -1115,7 +1128,7 @@ const nodeConverters = [
1115
1128
  function panicError(position, buffer, readString) {
1116
1129
  const start = buffer[position++];
1117
1130
  const end = buffer[position++];
1118
- const message = convertString(position, buffer, readString);
1131
+ const message = convertString(buffer[position], buffer, readString);
1119
1132
  return {
1120
1133
  type: 'PanicError',
1121
1134
  start,
@@ -1126,7 +1139,7 @@ const nodeConverters = [
1126
1139
  function parseError(position, buffer, readString) {
1127
1140
  const start = buffer[position++];
1128
1141
  const end = buffer[position++];
1129
- const message = convertString(position, buffer, readString);
1142
+ const message = convertString(buffer[position], buffer, readString);
1130
1143
  return {
1131
1144
  type: 'ParseError',
1132
1145
  start,
@@ -1137,7 +1150,7 @@ const nodeConverters = [
1137
1150
  function arrayExpression(position, buffer, readString) {
1138
1151
  const start = buffer[position++];
1139
1152
  const end = buffer[position++];
1140
- const elements = convertNodeList(position, buffer, readString);
1153
+ const elements = convertNodeList(buffer[position], buffer, readString);
1141
1154
  return {
1142
1155
  type: 'ArrayExpression',
1143
1156
  start,
@@ -1148,7 +1161,7 @@ const nodeConverters = [
1148
1161
  function arrayPattern(position, buffer, readString) {
1149
1162
  const start = buffer[position++];
1150
1163
  const end = buffer[position++];
1151
- const elements = convertNodeList(position, buffer, readString);
1164
+ const elements = convertNodeList(buffer[position], buffer, readString);
1152
1165
  return {
1153
1166
  type: 'ArrayPattern',
1154
1167
  start,
@@ -1163,9 +1176,9 @@ const nodeConverters = [
1163
1176
  const async = (flags & 1) === 1;
1164
1177
  const expression = (flags & 2) === 2;
1165
1178
  const generator = (flags & 4) === 4;
1179
+ const annotations = convertAnnotations(buffer[position++], buffer);
1166
1180
  const parameters = convertNodeList(buffer[position++], buffer, readString);
1167
- const body = convertNode(buffer[position++], buffer, readString);
1168
- const annotations = convertAnnotations(position, buffer);
1181
+ const body = convertNode(buffer[position], buffer, readString);
1169
1182
  return {
1170
1183
  type: 'ArrowFunctionExpression',
1171
1184
  start,
@@ -1183,8 +1196,8 @@ const nodeConverters = [
1183
1196
  const start = buffer[position++];
1184
1197
  const end = buffer[position++];
1185
1198
  const operator = FIXED_STRINGS[buffer[position++]];
1186
- const right = convertNode(buffer[position++], buffer, readString);
1187
- const left = convertNode(position, buffer, readString);
1199
+ const left = convertNode(buffer[position++], buffer, readString);
1200
+ const right = convertNode(buffer[position], buffer, readString);
1188
1201
  return {
1189
1202
  type: 'AssignmentExpression',
1190
1203
  start,
@@ -1197,8 +1210,8 @@ const nodeConverters = [
1197
1210
  function assignmentPattern(position, buffer, readString) {
1198
1211
  const start = buffer[position++];
1199
1212
  const end = buffer[position++];
1200
- const right = convertNode(buffer[position++], buffer, readString);
1201
- const left = convertNode(position, buffer, readString);
1213
+ const left = convertNode(buffer[position++], buffer, readString);
1214
+ const right = convertNode(buffer[position], buffer, readString);
1202
1215
  return {
1203
1216
  type: 'AssignmentPattern',
1204
1217
  start,
@@ -1210,7 +1223,7 @@ const nodeConverters = [
1210
1223
  function awaitExpression(position, buffer, readString) {
1211
1224
  const start = buffer[position++];
1212
1225
  const end = buffer[position++];
1213
- const argument = convertNode(position, buffer, readString);
1226
+ const argument = convertNode(buffer[position], buffer, readString);
1214
1227
  return {
1215
1228
  type: 'AwaitExpression',
1216
1229
  start,
@@ -1222,8 +1235,8 @@ const nodeConverters = [
1222
1235
  const start = buffer[position++];
1223
1236
  const end = buffer[position++];
1224
1237
  const operator = FIXED_STRINGS[buffer[position++]];
1225
- const right = convertNode(buffer[position++], buffer, readString);
1226
- const left = convertNode(position, buffer, readString);
1238
+ const left = convertNode(buffer[position++], buffer, readString);
1239
+ const right = convertNode(buffer[position], buffer, readString);
1227
1240
  return {
1228
1241
  type: 'BinaryExpression',
1229
1242
  start,
@@ -1236,7 +1249,7 @@ const nodeConverters = [
1236
1249
  function blockStatement(position, buffer, readString) {
1237
1250
  const start = buffer[position++];
1238
1251
  const end = buffer[position++];
1239
- const body = convertNodeList(position, buffer, readString);
1252
+ const body = convertNodeList(buffer[position], buffer, readString);
1240
1253
  return {
1241
1254
  type: 'BlockStatement',
1242
1255
  start,
@@ -1261,9 +1274,9 @@ const nodeConverters = [
1261
1274
  const end = buffer[position++];
1262
1275
  const flags = buffer[position++];
1263
1276
  const optional = (flags & 1) === 1;
1277
+ const annotations = convertAnnotations(buffer[position++], buffer);
1264
1278
  const callee = convertNode(buffer[position++], buffer, readString);
1265
- const callArguments = convertNodeList(buffer[position++], buffer, readString);
1266
- const annotations = convertAnnotations(position, buffer);
1279
+ const callArguments = convertNodeList(buffer[position], buffer, readString);
1267
1280
  return {
1268
1281
  type: 'CallExpression',
1269
1282
  start,
@@ -1291,7 +1304,7 @@ const nodeConverters = [
1291
1304
  function chainExpression(position, buffer, readString) {
1292
1305
  const start = buffer[position++];
1293
1306
  const end = buffer[position++];
1294
- const expression = convertNode(position, buffer, readString);
1307
+ const expression = convertNode(buffer[position], buffer, readString);
1295
1308
  return {
1296
1309
  type: 'ChainExpression',
1297
1310
  start,
@@ -1302,7 +1315,7 @@ const nodeConverters = [
1302
1315
  function classBody(position, buffer, readString) {
1303
1316
  const start = buffer[position++];
1304
1317
  const end = buffer[position++];
1305
- const body = convertNodeList(position, buffer, readString);
1318
+ const body = convertNodeList(buffer[position], buffer, readString);
1306
1319
  return {
1307
1320
  type: 'ClassBody',
1308
1321
  start,
@@ -1347,9 +1360,9 @@ const nodeConverters = [
1347
1360
  function conditionalExpression(position, buffer, readString) {
1348
1361
  const start = buffer[position++];
1349
1362
  const end = buffer[position++];
1363
+ const test = convertNode(buffer[position++], buffer, readString);
1350
1364
  const consequent = convertNode(buffer[position++], buffer, readString);
1351
- const alternate = convertNode(buffer[position++], buffer, readString);
1352
- const test = convertNode(position, buffer, readString);
1365
+ const alternate = convertNode(buffer[position], buffer, readString);
1353
1366
  return {
1354
1367
  type: 'ConditionalExpression',
1355
1368
  start,
@@ -1383,8 +1396,8 @@ const nodeConverters = [
1383
1396
  function directive(position, buffer, readString) {
1384
1397
  const start = buffer[position++];
1385
1398
  const end = buffer[position++];
1386
- const expression = convertNode(buffer[position++], buffer, readString);
1387
- const directive = convertString(position, buffer, readString);
1399
+ const directive = convertString(buffer[position++], buffer, readString);
1400
+ const expression = convertNode(buffer[position], buffer, readString);
1388
1401
  return {
1389
1402
  type: 'ExpressionStatement',
1390
1403
  start,
@@ -1396,8 +1409,8 @@ const nodeConverters = [
1396
1409
  function doWhileStatement(position, buffer, readString) {
1397
1410
  const start = buffer[position++];
1398
1411
  const end = buffer[position++];
1399
- const test = convertNode(buffer[position++], buffer, readString);
1400
- const body = convertNode(position, buffer, readString);
1412
+ const body = convertNode(buffer[position++], buffer, readString);
1413
+ const test = convertNode(buffer[position], buffer, readString);
1401
1414
  return {
1402
1415
  type: 'DoWhileStatement',
1403
1416
  start,
@@ -1434,7 +1447,7 @@ const nodeConverters = [
1434
1447
  function exportDefaultDeclaration(position, buffer, readString) {
1435
1448
  const start = buffer[position++];
1436
1449
  const end = buffer[position++];
1437
- const declaration = convertNode(position, buffer, readString);
1450
+ const declaration = convertNode(buffer[position], buffer, readString);
1438
1451
  return {
1439
1452
  type: 'ExportDefaultDeclaration',
1440
1453
  start,
@@ -1445,12 +1458,12 @@ const nodeConverters = [
1445
1458
  function exportNamedDeclaration(position, buffer, readString) {
1446
1459
  const start = buffer[position++];
1447
1460
  const end = buffer[position++];
1461
+ const specifiers = convertNodeList(buffer[position++], buffer, readString);
1448
1462
  const sourcePosition = buffer[position++];
1449
1463
  const source = sourcePosition === 0 ? null : convertNode(sourcePosition, buffer, readString);
1450
1464
  const attributes = convertNodeList(buffer[position++], buffer, readString);
1451
- const declarationPosition = buffer[position++];
1465
+ const declarationPosition = buffer[position];
1452
1466
  const declaration = declarationPosition === 0 ? null : convertNode(declarationPosition, buffer, readString);
1453
- const specifiers = convertNodeList(position, buffer, readString);
1454
1467
  return {
1455
1468
  type: 'ExportNamedDeclaration',
1456
1469
  start,
@@ -1464,8 +1477,8 @@ const nodeConverters = [
1464
1477
  function exportSpecifier(position, buffer, readString) {
1465
1478
  const start = buffer[position++];
1466
1479
  const end = buffer[position++];
1467
- const exportedPosition = buffer[position++];
1468
- const local = convertNode(position, buffer, readString);
1480
+ const local = convertNode(buffer[position++], buffer, readString);
1481
+ const exportedPosition = buffer[position];
1469
1482
  return {
1470
1483
  type: 'ExportSpecifier',
1471
1484
  start,
@@ -1477,7 +1490,7 @@ const nodeConverters = [
1477
1490
  function expressionStatement(position, buffer, readString) {
1478
1491
  const start = buffer[position++];
1479
1492
  const end = buffer[position++];
1480
- const expression = convertNode(position, buffer, readString);
1493
+ const expression = convertNode(buffer[position], buffer, readString);
1481
1494
  return {
1482
1495
  type: 'ExpressionStatement',
1483
1496
  start,
@@ -1488,9 +1501,9 @@ const nodeConverters = [
1488
1501
  function forInStatement(position, buffer, readString) {
1489
1502
  const start = buffer[position++];
1490
1503
  const end = buffer[position++];
1504
+ const left = convertNode(buffer[position++], buffer, readString);
1491
1505
  const right = convertNode(buffer[position++], buffer, readString);
1492
- const body = convertNode(buffer[position++], buffer, readString);
1493
- const left = convertNode(position, buffer, readString);
1506
+ const body = convertNode(buffer[position], buffer, readString);
1494
1507
  return {
1495
1508
  type: 'ForInStatement',
1496
1509
  start,
@@ -1505,9 +1518,9 @@ const nodeConverters = [
1505
1518
  const end = buffer[position++];
1506
1519
  const flags = buffer[position++];
1507
1520
  const awaited = (flags & 1) === 1;
1521
+ const left = convertNode(buffer[position++], buffer, readString);
1508
1522
  const right = convertNode(buffer[position++], buffer, readString);
1509
- const body = convertNode(buffer[position++], buffer, readString);
1510
- const left = convertNode(position, buffer, readString);
1523
+ const body = convertNode(buffer[position], buffer, readString);
1511
1524
  return {
1512
1525
  type: 'ForOfStatement',
1513
1526
  start,
@@ -1544,11 +1557,11 @@ const nodeConverters = [
1544
1557
  const flags = buffer[position++];
1545
1558
  const async = (flags & 1) === 1;
1546
1559
  const generator = (flags & 2) === 2;
1560
+ const annotations = convertAnnotations(buffer[position++], buffer);
1547
1561
  const idPosition = buffer[position++];
1548
1562
  const id = idPosition === 0 ? null : convertNode(idPosition, buffer, readString);
1549
1563
  const parameters = convertNodeList(buffer[position++], buffer, readString);
1550
- const body = convertNode(buffer[position++], buffer, readString);
1551
- const annotations = convertAnnotations(position, buffer);
1564
+ const body = convertNode(buffer[position], buffer, readString);
1552
1565
  return {
1553
1566
  type: 'FunctionDeclaration',
1554
1567
  start,
@@ -1568,11 +1581,11 @@ const nodeConverters = [
1568
1581
  const flags = buffer[position++];
1569
1582
  const async = (flags & 1) === 1;
1570
1583
  const generator = (flags & 2) === 2;
1584
+ const annotations = convertAnnotations(buffer[position++], buffer);
1571
1585
  const idPosition = buffer[position++];
1572
1586
  const id = idPosition === 0 ? null : convertNode(idPosition, buffer, readString);
1573
1587
  const parameters = convertNodeList(buffer[position++], buffer, readString);
1574
- const body = convertNode(buffer[position++], buffer, readString);
1575
- const annotations = convertAnnotations(position, buffer);
1588
+ const body = convertNode(buffer[position], buffer, readString);
1576
1589
  return {
1577
1590
  type: 'FunctionExpression',
1578
1591
  start,
@@ -1589,7 +1602,7 @@ const nodeConverters = [
1589
1602
  function identifier(position, buffer, readString) {
1590
1603
  const start = buffer[position++];
1591
1604
  const end = buffer[position++];
1592
- const name = convertString(position, buffer, readString);
1605
+ const name = convertString(buffer[position], buffer, readString);
1593
1606
  return {
1594
1607
  type: 'Identifier',
1595
1608
  start,
@@ -1600,10 +1613,10 @@ const nodeConverters = [
1600
1613
  function ifStatement(position, buffer, readString) {
1601
1614
  const start = buffer[position++];
1602
1615
  const end = buffer[position++];
1616
+ const test = convertNode(buffer[position++], buffer, readString);
1603
1617
  const consequent = convertNode(buffer[position++], buffer, readString);
1604
- const alternatePosition = buffer[position++];
1618
+ const alternatePosition = buffer[position];
1605
1619
  const alternate = alternatePosition === 0 ? null : convertNode(alternatePosition, buffer, readString);
1606
- const test = convertNode(position, buffer, readString);
1607
1620
  return {
1608
1621
  type: 'IfStatement',
1609
1622
  start,
@@ -1616,8 +1629,8 @@ const nodeConverters = [
1616
1629
  function importAttribute(position, buffer, readString) {
1617
1630
  const start = buffer[position++];
1618
1631
  const end = buffer[position++];
1619
- const value = convertNode(buffer[position++], buffer, readString);
1620
- const key = convertNode(position, buffer, readString);
1632
+ const key = convertNode(buffer[position++], buffer, readString);
1633
+ const value = convertNode(buffer[position], buffer, readString);
1621
1634
  return {
1622
1635
  type: 'ImportAttribute',
1623
1636
  start,
@@ -1629,9 +1642,9 @@ const nodeConverters = [
1629
1642
  function importDeclaration(position, buffer, readString) {
1630
1643
  const start = buffer[position++];
1631
1644
  const end = buffer[position++];
1645
+ const specifiers = convertNodeList(buffer[position++], buffer, readString);
1632
1646
  const source = convertNode(buffer[position++], buffer, readString);
1633
- const attributes = convertNodeList(buffer[position++], buffer, readString);
1634
- const specifiers = convertNodeList(position, buffer, readString);
1647
+ const attributes = convertNodeList(buffer[position], buffer, readString);
1635
1648
  return {
1636
1649
  type: 'ImportDeclaration',
1637
1650
  start,
@@ -1644,7 +1657,7 @@ const nodeConverters = [
1644
1657
  function importDefaultSpecifier(position, buffer, readString) {
1645
1658
  const start = buffer[position++];
1646
1659
  const end = buffer[position++];
1647
- const local = convertNode(position, buffer, readString);
1660
+ const local = convertNode(buffer[position], buffer, readString);
1648
1661
  return {
1649
1662
  type: 'ImportDefaultSpecifier',
1650
1663
  start,
@@ -1655,9 +1668,9 @@ const nodeConverters = [
1655
1668
  function importExpression(position, buffer, readString) {
1656
1669
  const start = buffer[position++];
1657
1670
  const end = buffer[position++];
1658
- const optionsPosition = buffer[position++];
1671
+ const source = convertNode(buffer[position++], buffer, readString);
1672
+ const optionsPosition = buffer[position];
1659
1673
  const options = optionsPosition === 0 ? null : convertNode(optionsPosition, buffer, readString);
1660
- const source = convertNode(position, buffer, readString);
1661
1674
  return {
1662
1675
  type: 'ImportExpression',
1663
1676
  start,
@@ -1669,7 +1682,7 @@ const nodeConverters = [
1669
1682
  function importNamespaceSpecifier(position, buffer, readString) {
1670
1683
  const start = buffer[position++];
1671
1684
  const end = buffer[position++];
1672
- const local = convertNode(position, buffer, readString);
1685
+ const local = convertNode(buffer[position], buffer, readString);
1673
1686
  return {
1674
1687
  type: 'ImportNamespaceSpecifier',
1675
1688
  start,
@@ -1693,8 +1706,8 @@ const nodeConverters = [
1693
1706
  function labeledStatement(position, buffer, readString) {
1694
1707
  const start = buffer[position++];
1695
1708
  const end = buffer[position++];
1696
- const body = convertNode(buffer[position++], buffer, readString);
1697
- const label = convertNode(position, buffer, readString);
1709
+ const label = convertNode(buffer[position++], buffer, readString);
1710
+ const body = convertNode(buffer[position], buffer, readString);
1698
1711
  return {
1699
1712
  type: 'LabeledStatement',
1700
1713
  start,
@@ -1706,8 +1719,8 @@ const nodeConverters = [
1706
1719
  function literalBigInt(position, buffer, readString) {
1707
1720
  const start = buffer[position++];
1708
1721
  const end = buffer[position++];
1709
- const raw = convertString(buffer[position++], buffer, readString);
1710
- const bigint = convertString(position, buffer, readString);
1722
+ const bigint = convertString(buffer[position++], buffer, readString);
1723
+ const raw = convertString(buffer[position], buffer, readString);
1711
1724
  return {
1712
1725
  type: 'Literal',
1713
1726
  start,
@@ -1758,8 +1771,8 @@ const nodeConverters = [
1758
1771
  function literalRegExp(position, buffer, readString) {
1759
1772
  const start = buffer[position++];
1760
1773
  const end = buffer[position++];
1761
- const pattern = convertString(buffer[position++], buffer, readString);
1762
- const flags = convertString(position, buffer, readString);
1774
+ const flags = convertString(buffer[position++], buffer, readString);
1775
+ const pattern = convertString(buffer[position], buffer, readString);
1763
1776
  return {
1764
1777
  type: 'Literal',
1765
1778
  start,
@@ -1772,9 +1785,9 @@ const nodeConverters = [
1772
1785
  function literalString(position, buffer, readString) {
1773
1786
  const start = buffer[position++];
1774
1787
  const end = buffer[position++];
1775
- const rawPosition = buffer[position++];
1788
+ const value = convertString(buffer[position++], buffer, readString);
1789
+ const rawPosition = buffer[position];
1776
1790
  const raw = rawPosition === 0 ? undefined : convertString(rawPosition, buffer, readString);
1777
- const value = convertString(position, buffer, readString);
1778
1791
  return {
1779
1792
  type: 'Literal',
1780
1793
  start,
@@ -1787,8 +1800,8 @@ const nodeConverters = [
1787
1800
  const start = buffer[position++];
1788
1801
  const end = buffer[position++];
1789
1802
  const operator = FIXED_STRINGS[buffer[position++]];
1790
- const right = convertNode(buffer[position++], buffer, readString);
1791
- const left = convertNode(position, buffer, readString);
1803
+ const left = convertNode(buffer[position++], buffer, readString);
1804
+ const right = convertNode(buffer[position], buffer, readString);
1792
1805
  return {
1793
1806
  type: 'LogicalExpression',
1794
1807
  start,
@@ -1804,8 +1817,8 @@ const nodeConverters = [
1804
1817
  const flags = buffer[position++];
1805
1818
  const computed = (flags & 1) === 1;
1806
1819
  const optional = (flags & 2) === 2;
1807
- const property = convertNode(buffer[position++], buffer, readString);
1808
- const object = convertNode(position, buffer, readString);
1820
+ const object = convertNode(buffer[position++], buffer, readString);
1821
+ const property = convertNode(buffer[position], buffer, readString);
1809
1822
  return {
1810
1823
  type: 'MemberExpression',
1811
1824
  start,
@@ -1819,8 +1832,8 @@ const nodeConverters = [
1819
1832
  function metaProperty(position, buffer, readString) {
1820
1833
  const start = buffer[position++];
1821
1834
  const end = buffer[position++];
1822
- const property = convertNode(buffer[position++], buffer, readString);
1823
- const meta = convertNode(position, buffer, readString);
1835
+ const meta = convertNode(buffer[position++], buffer, readString);
1836
+ const property = convertNode(buffer[position], buffer, readString);
1824
1837
  return {
1825
1838
  type: 'MetaProperty',
1826
1839
  start,
@@ -1835,9 +1848,9 @@ const nodeConverters = [
1835
1848
  const flags = buffer[position++];
1836
1849
  const isStatic = (flags & 1) === 1;
1837
1850
  const computed = (flags & 2) === 2;
1851
+ const key = convertNode(buffer[position++], buffer, readString);
1838
1852
  const value = convertNode(buffer[position++], buffer, readString);
1839
- const kind = FIXED_STRINGS[buffer[position++]];
1840
- const key = convertNode(position, buffer, readString);
1853
+ const kind = FIXED_STRINGS[buffer[position]];
1841
1854
  return {
1842
1855
  type: 'MethodDefinition',
1843
1856
  start,
@@ -1852,9 +1865,9 @@ const nodeConverters = [
1852
1865
  function newExpression(position, buffer, readString) {
1853
1866
  const start = buffer[position++];
1854
1867
  const end = buffer[position++];
1868
+ const annotations = convertAnnotations(buffer[position++], buffer);
1855
1869
  const callee = convertNode(buffer[position++], buffer, readString);
1856
- const callArguments = convertNodeList(buffer[position++], buffer, readString);
1857
- const annotations = convertAnnotations(position, buffer);
1870
+ const callArguments = convertNodeList(buffer[position], buffer, readString);
1858
1871
  return {
1859
1872
  type: 'NewExpression',
1860
1873
  start,
@@ -1867,7 +1880,7 @@ const nodeConverters = [
1867
1880
  function objectExpression(position, buffer, readString) {
1868
1881
  const start = buffer[position++];
1869
1882
  const end = buffer[position++];
1870
- const properties = convertNodeList(position, buffer, readString);
1883
+ const properties = convertNodeList(buffer[position], buffer, readString);
1871
1884
  return {
1872
1885
  type: 'ObjectExpression',
1873
1886
  start,
@@ -1878,7 +1891,7 @@ const nodeConverters = [
1878
1891
  function objectPattern(position, buffer, readString) {
1879
1892
  const start = buffer[position++];
1880
1893
  const end = buffer[position++];
1881
- const properties = convertNodeList(position, buffer, readString);
1894
+ const properties = convertNodeList(buffer[position], buffer, readString);
1882
1895
  return {
1883
1896
  type: 'ObjectPattern',
1884
1897
  start,
@@ -1889,7 +1902,7 @@ const nodeConverters = [
1889
1902
  function privateIdentifier(position, buffer, readString) {
1890
1903
  const start = buffer[position++];
1891
1904
  const end = buffer[position++];
1892
- const name = convertString(position, buffer, readString);
1905
+ const name = convertString(buffer[position], buffer, readString);
1893
1906
  return {
1894
1907
  type: 'PrivateIdentifier',
1895
1908
  start,
@@ -1900,8 +1913,8 @@ const nodeConverters = [
1900
1913
  function program(position, buffer, readString) {
1901
1914
  const start = buffer[position++];
1902
1915
  const end = buffer[position++];
1903
- const invalidAnnotations = convertAnnotations(buffer[position++], buffer);
1904
- const body = convertNodeList(position, buffer, readString);
1916
+ const body = convertNodeList(buffer[position++], buffer, readString);
1917
+ const invalidAnnotations = convertAnnotations(buffer[position], buffer);
1905
1918
  return {
1906
1919
  type: 'Program',
1907
1920
  start,
@@ -1939,9 +1952,9 @@ const nodeConverters = [
1939
1952
  const flags = buffer[position++];
1940
1953
  const isStatic = (flags & 1) === 1;
1941
1954
  const computed = (flags & 2) === 2;
1942
- const valuePosition = buffer[position++];
1955
+ const key = convertNode(buffer[position++], buffer, readString);
1956
+ const valuePosition = buffer[position];
1943
1957
  const value = valuePosition === 0 ? null : convertNode(valuePosition, buffer, readString);
1944
- const key = convertNode(position, buffer, readString);
1945
1958
  return {
1946
1959
  type: 'PropertyDefinition',
1947
1960
  start,
@@ -1955,7 +1968,7 @@ const nodeConverters = [
1955
1968
  function restElement(position, buffer, readString) {
1956
1969
  const start = buffer[position++];
1957
1970
  const end = buffer[position++];
1958
- const argument = convertNode(position, buffer, readString);
1971
+ const argument = convertNode(buffer[position], buffer, readString);
1959
1972
  return {
1960
1973
  type: 'RestElement',
1961
1974
  start,
@@ -1978,7 +1991,7 @@ const nodeConverters = [
1978
1991
  function sequenceExpression(position, buffer, readString) {
1979
1992
  const start = buffer[position++];
1980
1993
  const end = buffer[position++];
1981
- const expressions = convertNodeList(position, buffer, readString);
1994
+ const expressions = convertNodeList(buffer[position], buffer, readString);
1982
1995
  return {
1983
1996
  type: 'SequenceExpression',
1984
1997
  start,
@@ -1989,7 +2002,7 @@ const nodeConverters = [
1989
2002
  function spreadElement(position, buffer, readString) {
1990
2003
  const start = buffer[position++];
1991
2004
  const end = buffer[position++];
1992
- const argument = convertNode(position, buffer, readString);
2005
+ const argument = convertNode(buffer[position], buffer, readString);
1993
2006
  return {
1994
2007
  type: 'SpreadElement',
1995
2008
  start,
@@ -2000,7 +2013,7 @@ const nodeConverters = [
2000
2013
  function staticBlock(position, buffer, readString) {
2001
2014
  const start = buffer[position++];
2002
2015
  const end = buffer[position++];
2003
- const body = convertNodeList(position, buffer, readString);
2016
+ const body = convertNodeList(buffer[position], buffer, readString);
2004
2017
  return {
2005
2018
  type: 'StaticBlock',
2006
2019
  start,
@@ -2034,8 +2047,8 @@ const nodeConverters = [
2034
2047
  function switchStatement(position, buffer, readString) {
2035
2048
  const start = buffer[position++];
2036
2049
  const end = buffer[position++];
2037
- const cases = convertNodeList(buffer[position++], buffer, readString);
2038
- const discriminant = convertNode(position, buffer, readString);
2050
+ const discriminant = convertNode(buffer[position++], buffer, readString);
2051
+ const cases = convertNodeList(buffer[position], buffer, readString);
2039
2052
  return {
2040
2053
  type: 'SwitchStatement',
2041
2054
  start,
@@ -2047,8 +2060,8 @@ const nodeConverters = [
2047
2060
  function taggedTemplateExpression(position, buffer, readString) {
2048
2061
  const start = buffer[position++];
2049
2062
  const end = buffer[position++];
2050
- const quasi = convertNode(buffer[position++], buffer, readString);
2051
- const tag = convertNode(position, buffer, readString);
2063
+ const tag = convertNode(buffer[position++], buffer, readString);
2064
+ const quasi = convertNode(buffer[position], buffer, readString);
2052
2065
  return {
2053
2066
  type: 'TaggedTemplateExpression',
2054
2067
  start,
@@ -2064,7 +2077,7 @@ const nodeConverters = [
2064
2077
  const tail = (flags & 1) === 1;
2065
2078
  const cookedPosition = buffer[position++];
2066
2079
  const cooked = cookedPosition === 0 ? undefined : convertString(cookedPosition, buffer, readString);
2067
- const raw = convertString(position, buffer, readString);
2080
+ const raw = convertString(buffer[position], buffer, readString);
2068
2081
  return {
2069
2082
  type: 'TemplateElement',
2070
2083
  start,
@@ -2076,8 +2089,8 @@ const nodeConverters = [
2076
2089
  function templateLiteral(position, buffer, readString) {
2077
2090
  const start = buffer[position++];
2078
2091
  const end = buffer[position++];
2079
- const expressions = convertNodeList(buffer[position++], buffer, readString);
2080
- const quasis = convertNodeList(position, buffer, readString);
2092
+ const quasis = convertNodeList(buffer[position++], buffer, readString);
2093
+ const expressions = convertNodeList(buffer[position], buffer, readString);
2081
2094
  return {
2082
2095
  type: 'TemplateLiteral',
2083
2096
  start,
@@ -2098,7 +2111,7 @@ const nodeConverters = [
2098
2111
  function throwStatement(position, buffer, readString) {
2099
2112
  const start = buffer[position++];
2100
2113
  const end = buffer[position++];
2101
- const argument = convertNode(position, buffer, readString);
2114
+ const argument = convertNode(buffer[position], buffer, readString);
2102
2115
  return {
2103
2116
  type: 'ThrowStatement',
2104
2117
  start,
@@ -2109,11 +2122,11 @@ const nodeConverters = [
2109
2122
  function tryStatement(position, buffer, readString) {
2110
2123
  const start = buffer[position++];
2111
2124
  const end = buffer[position++];
2125
+ const block = convertNode(buffer[position++], buffer, readString);
2112
2126
  const handlerPosition = buffer[position++];
2113
2127
  const handler = handlerPosition === 0 ? null : convertNode(handlerPosition, buffer, readString);
2114
- const finalizerPosition = buffer[position++];
2128
+ const finalizerPosition = buffer[position];
2115
2129
  const finalizer = finalizerPosition === 0 ? null : convertNode(finalizerPosition, buffer, readString);
2116
- const block = convertNode(position, buffer, readString);
2117
2130
  return {
2118
2131
  type: 'TryStatement',
2119
2132
  start,
@@ -2127,7 +2140,7 @@ const nodeConverters = [
2127
2140
  const start = buffer[position++];
2128
2141
  const end = buffer[position++];
2129
2142
  const operator = FIXED_STRINGS[buffer[position++]];
2130
- const argument = convertNode(position, buffer, readString);
2143
+ const argument = convertNode(buffer[position], buffer, readString);
2131
2144
  return {
2132
2145
  type: 'UnaryExpression',
2133
2146
  start,
@@ -2143,7 +2156,7 @@ const nodeConverters = [
2143
2156
  const flags = buffer[position++];
2144
2157
  const prefix = (flags & 1) === 1;
2145
2158
  const operator = FIXED_STRINGS[buffer[position++]];
2146
- const argument = convertNode(position, buffer, readString);
2159
+ const argument = convertNode(buffer[position], buffer, readString);
2147
2160
  return {
2148
2161
  type: 'UpdateExpression',
2149
2162
  start,
@@ -2157,7 +2170,7 @@ const nodeConverters = [
2157
2170
  const start = buffer[position++];
2158
2171
  const end = buffer[position++];
2159
2172
  const kind = FIXED_STRINGS[buffer[position++]];
2160
- const declarations = convertNodeList(position, buffer, readString);
2173
+ const declarations = convertNodeList(buffer[position], buffer, readString);
2161
2174
  return {
2162
2175
  type: 'VariableDeclaration',
2163
2176
  start,
@@ -2169,9 +2182,9 @@ const nodeConverters = [
2169
2182
  function variableDeclarator(position, buffer, readString) {
2170
2183
  const start = buffer[position++];
2171
2184
  const end = buffer[position++];
2172
- const initPosition = buffer[position++];
2185
+ const id = convertNode(buffer[position++], buffer, readString);
2186
+ const initPosition = buffer[position];
2173
2187
  const init = initPosition === 0 ? null : convertNode(initPosition, buffer, readString);
2174
- const id = convertNode(position, buffer, readString);
2175
2188
  return {
2176
2189
  type: 'VariableDeclarator',
2177
2190
  start,
@@ -2183,8 +2196,8 @@ const nodeConverters = [
2183
2196
  function whileStatement(position, buffer, readString) {
2184
2197
  const start = buffer[position++];
2185
2198
  const end = buffer[position++];
2186
- const body = convertNode(buffer[position++], buffer, readString);
2187
- const test = convertNode(position, buffer, readString);
2199
+ const test = convertNode(buffer[position++], buffer, readString);
2200
+ const body = convertNode(buffer[position], buffer, readString);
2188
2201
  return {
2189
2202
  type: 'WhileStatement',
2190
2203
  start,
@@ -2220,6 +2233,8 @@ function convertNode(position, buffer, readString) {
2220
2233
  return converter(position + 1, buffer, readString);
2221
2234
  }
2222
2235
  function convertNodeList(position, buffer, readString) {
2236
+ if (position === 0)
2237
+ return EMPTY_ARRAY;
2223
2238
  const length = buffer[position++];
2224
2239
  const list = [];
2225
2240
  for (let index = 0; index < length; index++) {
@@ -2254,9 +2269,13 @@ const parseAstAsync = async (input, { allowReturnOutsideFunction = false, signal
2254
2269
 
2255
2270
  exports.ANNOTATION_KEY = ANNOTATION_KEY;
2256
2271
  exports.ArrowFunctionExpression = ArrowFunctionExpression;
2272
+ exports.BLANK = BLANK;
2257
2273
  exports.BlockStatement = BlockStatement;
2258
2274
  exports.CallExpression = CallExpression;
2259
2275
  exports.CatchClause = CatchClause;
2276
+ exports.EMPTY_ARRAY = EMPTY_ARRAY;
2277
+ exports.EMPTY_OBJECT = EMPTY_OBJECT;
2278
+ exports.EMPTY_SET = EMPTY_SET;
2260
2279
  exports.ExpressionStatement = ExpressionStatement;
2261
2280
  exports.FIXED_STRINGS = FIXED_STRINGS;
2262
2281
  exports.INVALID_ANNOTATION_KEY = INVALID_ANNOTATION_KEY;