meriyah 7.4.0 → 7.4.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/meriyah.mjs CHANGED
@@ -1,4 +1,4 @@
1
- var version$1 = "7.4.0";
1
+ var version$1 = "7.4.1";
2
2
  var packageJson = {
3
3
  version: version$1};
4
4
 
@@ -2313,6 +2313,9 @@ function classifyIdentifier(parser, context, t) {
2313
2313
  parser.report(121);
2314
2314
  parser.flags |= 512;
2315
2315
  }
2316
+ if (context & 1 && (t & 255) === (241737 & 255)) {
2317
+ parser.report(99);
2318
+ }
2316
2319
  if (!isValidIdentifier(context, t))
2317
2320
  parser.report(0);
2318
2321
  }
@@ -4359,24 +4362,29 @@ function parseExportDeclaration(parser, context, scope) {
4359
4362
  const { tokenStart } = parser;
4360
4363
  declaration = parseIdentifier(parser, context);
4361
4364
  const { flags } = parser;
4362
- if ((flags & 1) === 0) {
4363
- if (parser.getToken() === 86104) {
4364
- declaration = parseFunctionDeclaration(parser, context, scope, undefined, 1, 1, 1, tokenStart, 4);
4365
- }
4366
- else {
4367
- if (parser.getToken() === 67174411) {
4368
- declaration = parseAsyncArrowOrCallExpression(parser, context, undefined, declaration, 1, 1, flags, tokenStart);
4369
- declaration = parseMemberOrUpdateExpression(parser, context, undefined, declaration, 0, 0, tokenStart);
4370
- declaration = parseAssignmentExpression(parser, context, undefined, 0, 0, tokenStart, declaration);
4371
- }
4372
- else if (parser.getToken() & 143360) {
4373
- if (scope)
4374
- scope = createArrowHeadParsingScope(parser, context, parser.tokenValue, parser.tokenStart, parser.currentLocation);
4375
- declaration = parseIdentifier(parser, context);
4376
- declaration = parseArrowFunctionExpression(parser, context, scope, undefined, [declaration], 1, tokenStart);
4377
- }
4378
- }
4365
+ if ((flags & 1) === 0 && parser.getToken() === 86104) {
4366
+ declaration = parseFunctionDeclaration(parser, context, scope, undefined, 1, 1, 1, tokenStart, 4);
4367
+ break;
4368
+ }
4369
+ if (parser.getToken() === 10) {
4370
+ declaration = parseArrowFromIdentifier(parser, context & -9, undefined, 'async', declaration, 0, 1, 0, tokenStart);
4371
+ }
4372
+ else if ((flags & 1) === 0 && parser.getToken() === 67174411) {
4373
+ declaration = parseAsyncArrowOrCallExpression(parser, context, undefined, declaration, 1, 1, flags, tokenStart);
4374
+ declaration = parseMemberOrUpdateExpression(parser, context, undefined, declaration, 0, 0, tokenStart);
4375
+ declaration = parseAssignmentExpression(parser, context, undefined, 0, 0, tokenStart, declaration);
4376
+ }
4377
+ else if ((flags & 1) === 0 && parser.getToken() & 143360) {
4378
+ if (scope)
4379
+ scope = createArrowHeadParsingScope(parser, context, parser.tokenValue, parser.tokenStart, parser.currentLocation);
4380
+ declaration = parseIdentifier(parser, context);
4381
+ declaration = parseArrowFunctionExpression(parser, context, scope, undefined, [declaration], 1, tokenStart);
4379
4382
  }
4383
+ else {
4384
+ declaration = parseMemberOrUpdateExpression(parser, context, undefined, declaration, 0, 0, tokenStart);
4385
+ declaration = parseAssignmentExpression(parser, context, undefined, 0, 0, tokenStart, declaration);
4386
+ }
4387
+ matchOrInsertSemicolon(parser, context | 32);
4380
4388
  break;
4381
4389
  }
4382
4390
  default:
@@ -4602,6 +4610,10 @@ function parseConditionalExpression(parser, context, privateScope, test, start)
4602
4610
  }, start);
4603
4611
  }
4604
4612
  function parseBinaryExpression(parser, context, privateScope, inGroup, start, minPrecedence, operator, left) {
4613
+ if ((parser.flags & 16384) === 16384) {
4614
+ parser.flags = (parser.flags | 16384) ^ 16384;
4615
+ return left;
4616
+ }
4605
4617
  const bit = -((context & 131072) > 0) & 8673330;
4606
4618
  let t;
4607
4619
  let precedence;
@@ -4709,6 +4721,12 @@ function parseYieldExpressionOrIdentifier(parser, context, privateScope, inGroup
4709
4721
  else if (parser.getToken() === 8391476) {
4710
4722
  parser.report(30, KeywordDescTable[parser.getToken() & 255]);
4711
4723
  }
4724
+ if (parser.getToken() & (67108864 | 8388608)) {
4725
+ if (argument === null && (parser.flags & 1) === 0) {
4726
+ parser.report(30, KeywordDescTable[parser.getToken() & 255]);
4727
+ }
4728
+ parser.flags |= 16384;
4729
+ }
4712
4730
  parser.assignable = 2;
4713
4731
  return parser.finishNode({
4714
4732
  type: 'YieldExpression',
@@ -4871,6 +4889,10 @@ function parseMemberOrUpdateExpression(parser, context, privateScope, expr, inGr
4871
4889
  expr = parseUpdateExpression(parser, context, expr, start);
4872
4890
  }
4873
4891
  else if ((parser.getToken() & 67108864) === 67108864) {
4892
+ if ((parser.flags & 16384) === 16384) {
4893
+ parser.flags = (parser.flags | 16384) ^ 16384;
4894
+ return expr;
4895
+ }
4874
4896
  context = (context | 131072) ^ 131072;
4875
4897
  switch (parser.getToken()) {
4876
4898
  case 67108877: {
@@ -5812,7 +5834,6 @@ function parseSpreadOrRestElement(parser, context, scope, privateScope, closingT
5812
5834
  else {
5813
5835
  destructible |= 32;
5814
5836
  argument = parseLeftHandSideExpression(parser, context, privateScope, 1, inGroup, 1);
5815
- const { tokenStart } = parser;
5816
5837
  const token = parser.getToken();
5817
5838
  if (token === 1077936155) {
5818
5839
  if (parser.assignable & 2)
@@ -4,7 +4,7 @@
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.meriyah = {}));
5
5
  })(this, (function (exports) { 'use strict';
6
6
 
7
- var version$1 = "7.4.0";
7
+ var version$1 = "7.4.1";
8
8
  var packageJson = {
9
9
  version: version$1};
10
10
 
@@ -2319,6 +2319,9 @@
2319
2319
  parser.report(121);
2320
2320
  parser.flags |= 512;
2321
2321
  }
2322
+ if (context & 1 && (t & 255) === (241737 & 255)) {
2323
+ parser.report(99);
2324
+ }
2322
2325
  if (!isValidIdentifier(context, t))
2323
2326
  parser.report(0);
2324
2327
  }
@@ -4365,24 +4368,29 @@
4365
4368
  const { tokenStart } = parser;
4366
4369
  declaration = parseIdentifier(parser, context);
4367
4370
  const { flags } = parser;
4368
- if ((flags & 1) === 0) {
4369
- if (parser.getToken() === 86104) {
4370
- declaration = parseFunctionDeclaration(parser, context, scope, undefined, 1, 1, 1, tokenStart, 4);
4371
- }
4372
- else {
4373
- if (parser.getToken() === 67174411) {
4374
- declaration = parseAsyncArrowOrCallExpression(parser, context, undefined, declaration, 1, 1, flags, tokenStart);
4375
- declaration = parseMemberOrUpdateExpression(parser, context, undefined, declaration, 0, 0, tokenStart);
4376
- declaration = parseAssignmentExpression(parser, context, undefined, 0, 0, tokenStart, declaration);
4377
- }
4378
- else if (parser.getToken() & 143360) {
4379
- if (scope)
4380
- scope = createArrowHeadParsingScope(parser, context, parser.tokenValue, parser.tokenStart, parser.currentLocation);
4381
- declaration = parseIdentifier(parser, context);
4382
- declaration = parseArrowFunctionExpression(parser, context, scope, undefined, [declaration], 1, tokenStart);
4383
- }
4384
- }
4371
+ if ((flags & 1) === 0 && parser.getToken() === 86104) {
4372
+ declaration = parseFunctionDeclaration(parser, context, scope, undefined, 1, 1, 1, tokenStart, 4);
4373
+ break;
4374
+ }
4375
+ if (parser.getToken() === 10) {
4376
+ declaration = parseArrowFromIdentifier(parser, context & -9, undefined, 'async', declaration, 0, 1, 0, tokenStart);
4377
+ }
4378
+ else if ((flags & 1) === 0 && parser.getToken() === 67174411) {
4379
+ declaration = parseAsyncArrowOrCallExpression(parser, context, undefined, declaration, 1, 1, flags, tokenStart);
4380
+ declaration = parseMemberOrUpdateExpression(parser, context, undefined, declaration, 0, 0, tokenStart);
4381
+ declaration = parseAssignmentExpression(parser, context, undefined, 0, 0, tokenStart, declaration);
4382
+ }
4383
+ else if ((flags & 1) === 0 && parser.getToken() & 143360) {
4384
+ if (scope)
4385
+ scope = createArrowHeadParsingScope(parser, context, parser.tokenValue, parser.tokenStart, parser.currentLocation);
4386
+ declaration = parseIdentifier(parser, context);
4387
+ declaration = parseArrowFunctionExpression(parser, context, scope, undefined, [declaration], 1, tokenStart);
4385
4388
  }
4389
+ else {
4390
+ declaration = parseMemberOrUpdateExpression(parser, context, undefined, declaration, 0, 0, tokenStart);
4391
+ declaration = parseAssignmentExpression(parser, context, undefined, 0, 0, tokenStart, declaration);
4392
+ }
4393
+ matchOrInsertSemicolon(parser, context | 32);
4386
4394
  break;
4387
4395
  }
4388
4396
  default:
@@ -4608,6 +4616,10 @@
4608
4616
  }, start);
4609
4617
  }
4610
4618
  function parseBinaryExpression(parser, context, privateScope, inGroup, start, minPrecedence, operator, left) {
4619
+ if ((parser.flags & 16384) === 16384) {
4620
+ parser.flags = (parser.flags | 16384) ^ 16384;
4621
+ return left;
4622
+ }
4611
4623
  const bit = -((context & 131072) > 0) & 8673330;
4612
4624
  let t;
4613
4625
  let precedence;
@@ -4715,6 +4727,12 @@
4715
4727
  else if (parser.getToken() === 8391476) {
4716
4728
  parser.report(30, KeywordDescTable[parser.getToken() & 255]);
4717
4729
  }
4730
+ if (parser.getToken() & (67108864 | 8388608)) {
4731
+ if (argument === null && (parser.flags & 1) === 0) {
4732
+ parser.report(30, KeywordDescTable[parser.getToken() & 255]);
4733
+ }
4734
+ parser.flags |= 16384;
4735
+ }
4718
4736
  parser.assignable = 2;
4719
4737
  return parser.finishNode({
4720
4738
  type: 'YieldExpression',
@@ -4877,6 +4895,10 @@
4877
4895
  expr = parseUpdateExpression(parser, context, expr, start);
4878
4896
  }
4879
4897
  else if ((parser.getToken() & 67108864) === 67108864) {
4898
+ if ((parser.flags & 16384) === 16384) {
4899
+ parser.flags = (parser.flags | 16384) ^ 16384;
4900
+ return expr;
4901
+ }
4880
4902
  context = (context | 131072) ^ 131072;
4881
4903
  switch (parser.getToken()) {
4882
4904
  case 67108877: {
@@ -5818,7 +5840,6 @@
5818
5840
  else {
5819
5841
  destructible |= 32;
5820
5842
  argument = parseLeftHandSideExpression(parser, context, privateScope, 1, inGroup, 1);
5821
- const { tokenStart } = parser;
5822
5843
  const token = parser.getToken();
5823
5844
  if (token === 1077936155) {
5824
5845
  if (parser.assignable & 2)