xmlui 0.12.19 → 0.12.21

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.
Files changed (37) hide show
  1. package/dist/lib/{index-WVT6bIgM.js → index-CznbWBUF.js} +3224 -4066
  2. package/dist/lib/index.css +1 -1
  3. package/dist/lib/{initMock-r2IRBsLf.js → initMock-Dj__hABf.js} +2 -2
  4. package/dist/lib/{parser-DpwXEUNb.js → parser-zOoMLvLx.js} +120 -139
  5. package/dist/lib/testing.d.ts +18 -19
  6. package/dist/lib/testing.js +2 -2
  7. package/dist/lib/{xmlui-parser-Cs8kB0VK.js → xmlui-parser-CtU8O3Av.js} +43 -19
  8. package/dist/lib/xmlui-parser.d.ts +23 -19
  9. package/dist/lib/xmlui-parser.js +2 -2
  10. package/dist/lib/{xmlui-serializer-3MPLSsOp.js → xmlui-serializer-C-Iuczzr.js} +9 -8
  11. package/dist/lib/xmlui.d.ts +130 -125
  12. package/dist/lib/xmlui.js +38 -36
  13. package/dist/metadata/TextBox-B-GWiq0J.cjs +1 -0
  14. package/dist/metadata/{TextBox-CwicjBJI.js → TextBox-DHSTy0g0.js} +3407 -4256
  15. package/dist/metadata/behaviors.cjs +1 -1
  16. package/dist/metadata/behaviors.js +1 -1
  17. package/dist/metadata/{initMock-BMq6JN4I.js → initMock-SQIcDMzP.js} +1 -1
  18. package/dist/metadata/{initMock-BKBkbEgr.cjs → initMock-wSFvfKcr.cjs} +1 -1
  19. package/dist/metadata/metadata-utils.cjs +1 -1
  20. package/dist/metadata/metadata-utils.js +1 -1
  21. package/dist/metadata/transform-BOf-UbgP.cjs +1 -0
  22. package/dist/metadata/{transform-D0SWbm8g.js → transform-fGDqiHwH.js} +120 -139
  23. package/dist/metadata/xmlui-metadata.cjs +1 -1
  24. package/dist/metadata/xmlui-metadata.js +12 -8
  25. package/dist/metadata/xmlui.css +2 -2
  26. package/dist/nodejs/bin/index.mjs +63 -79
  27. package/dist/nodejs/index.cjs +63 -79
  28. package/dist/nodejs/index.mjs +63 -79
  29. package/dist/nodejs/server.cjs +1886 -1053
  30. package/dist/nodejs/server.mjs +1886 -1053
  31. package/dist/nodejs/vite-xmlui-plugin.cjs +63 -79
  32. package/dist/nodejs/vite-xmlui-plugin.mjs +63 -79
  33. package/dist/standalone/xmlui-standalone.es.d.ts +192 -179
  34. package/dist/standalone/xmlui-standalone.umd.js +11 -11
  35. package/package.json +1 -1
  36. package/dist/metadata/TextBox-C-4gnBpw.cjs +0 -1
  37. package/dist/metadata/transform-CkTQ-Bfe.cjs +0 -1
@@ -2424,23 +2424,23 @@ let TokenType = /* @__PURE__ */ function(TokenType) {
2424
2424
  TokenType[TokenType["SignedShiftRight"] = 55] = "SignedShiftRight";
2425
2425
  TokenType[TokenType["Dot"] = 56] = "Dot";
2426
2426
  TokenType[TokenType["Spread"] = 57] = "Spread";
2427
- TokenType[TokenType["Global"] = 58] = "Global";
2428
- TokenType[TokenType["Backtick"] = 59] = "Backtick";
2429
- TokenType[TokenType["DollarLBrace"] = 60] = "DollarLBrace";
2430
- TokenType[TokenType["Arrow"] = 61] = "Arrow";
2431
- TokenType[TokenType["DecimalLiteral"] = 62] = "DecimalLiteral";
2432
- TokenType[TokenType["HexadecimalLiteral"] = 63] = "HexadecimalLiteral";
2433
- TokenType[TokenType["BinaryLiteral"] = 64] = "BinaryLiteral";
2434
- TokenType[TokenType["RealLiteral"] = 65] = "RealLiteral";
2435
- TokenType[TokenType["StringLiteral"] = 66] = "StringLiteral";
2436
- TokenType[TokenType["Infinity"] = 67] = "Infinity";
2437
- TokenType[TokenType["NaN"] = 68] = "NaN";
2438
- TokenType[TokenType["True"] = 69] = "True";
2439
- TokenType[TokenType["False"] = 70] = "False";
2440
- TokenType[TokenType["Typeof"] = 71] = "Typeof";
2441
- TokenType[TokenType["Null"] = 72] = "Null";
2442
- TokenType[TokenType["Undefined"] = 73] = "Undefined";
2443
- TokenType[TokenType["In"] = 74] = "In";
2427
+ TokenType[TokenType["Backtick"] = 58] = "Backtick";
2428
+ TokenType[TokenType["DollarLBrace"] = 59] = "DollarLBrace";
2429
+ TokenType[TokenType["Arrow"] = 60] = "Arrow";
2430
+ TokenType[TokenType["DecimalLiteral"] = 61] = "DecimalLiteral";
2431
+ TokenType[TokenType["HexadecimalLiteral"] = 62] = "HexadecimalLiteral";
2432
+ TokenType[TokenType["BinaryLiteral"] = 63] = "BinaryLiteral";
2433
+ TokenType[TokenType["RealLiteral"] = 64] = "RealLiteral";
2434
+ TokenType[TokenType["StringLiteral"] = 65] = "StringLiteral";
2435
+ TokenType[TokenType["Infinity"] = 66] = "Infinity";
2436
+ TokenType[TokenType["NaN"] = 67] = "NaN";
2437
+ TokenType[TokenType["True"] = 68] = "True";
2438
+ TokenType[TokenType["False"] = 69] = "False";
2439
+ TokenType[TokenType["Typeof"] = 70] = "Typeof";
2440
+ TokenType[TokenType["Null"] = 71] = "Null";
2441
+ TokenType[TokenType["Undefined"] = 72] = "Undefined";
2442
+ TokenType[TokenType["In"] = 73] = "In";
2443
+ TokenType[TokenType["Instanceof"] = 74] = "Instanceof";
2444
2444
  TokenType[TokenType["Let"] = 75] = "Let";
2445
2445
  TokenType[TokenType["Const"] = 76] = "Const";
2446
2446
  TokenType[TokenType["Var"] = 77] = "Var";
@@ -2494,48 +2494,47 @@ var LexerPhase = /* @__PURE__ */ function(LexerPhase) {
2494
2494
  LexerPhase[LexerPhase["IdTail"] = 17] = "IdTail";
2495
2495
  LexerPhase[LexerPhase["Dot"] = 18] = "Dot";
2496
2496
  LexerPhase[LexerPhase["DotDot"] = 19] = "DotDot";
2497
- LexerPhase[LexerPhase["Colon"] = 20] = "Colon";
2498
- LexerPhase[LexerPhase["Zero"] = 21] = "Zero";
2499
- LexerPhase[LexerPhase["QuestionMark"] = 22] = "QuestionMark";
2500
- LexerPhase[LexerPhase["HexaFirst"] = 23] = "HexaFirst";
2501
- LexerPhase[LexerPhase["HexaTail"] = 24] = "HexaTail";
2502
- LexerPhase[LexerPhase["BinaryFirst"] = 25] = "BinaryFirst";
2503
- LexerPhase[LexerPhase["BinaryTail"] = 26] = "BinaryTail";
2504
- LexerPhase[LexerPhase["DecimalOrReal"] = 27] = "DecimalOrReal";
2505
- LexerPhase[LexerPhase["RealFractionalFirst"] = 28] = "RealFractionalFirst";
2506
- LexerPhase[LexerPhase["RealFractionalTail"] = 29] = "RealFractionalTail";
2507
- LexerPhase[LexerPhase["RealExponent"] = 30] = "RealExponent";
2508
- LexerPhase[LexerPhase["RealExponentSign"] = 31] = "RealExponentSign";
2509
- LexerPhase[LexerPhase["RealExponentTail"] = 32] = "RealExponentTail";
2510
- LexerPhase[LexerPhase["StringTemplateLiteralBackSlash"] = 33] = "StringTemplateLiteralBackSlash";
2511
- LexerPhase[LexerPhase["StringTemplateLiteral"] = 34] = "StringTemplateLiteral";
2512
- LexerPhase[LexerPhase["String"] = 35] = "String";
2513
- LexerPhase[LexerPhase["StringBackSlash"] = 36] = "StringBackSlash";
2514
- LexerPhase[LexerPhase["StringHexa1"] = 37] = "StringHexa1";
2515
- LexerPhase[LexerPhase["StringHexa2"] = 38] = "StringHexa2";
2516
- LexerPhase[LexerPhase["StringUHexa1"] = 39] = "StringUHexa1";
2517
- LexerPhase[LexerPhase["StringUHexa2"] = 40] = "StringUHexa2";
2518
- LexerPhase[LexerPhase["StringUHexa3"] = 41] = "StringUHexa3";
2519
- LexerPhase[LexerPhase["StringUHexa4"] = 42] = "StringUHexa4";
2520
- LexerPhase[LexerPhase["StringUcp1"] = 43] = "StringUcp1";
2521
- LexerPhase[LexerPhase["StringUcp2"] = 44] = "StringUcp2";
2522
- LexerPhase[LexerPhase["StringUcp3"] = 45] = "StringUcp3";
2523
- LexerPhase[LexerPhase["StringUcp4"] = 46] = "StringUcp4";
2524
- LexerPhase[LexerPhase["StringUcp5"] = 47] = "StringUcp5";
2525
- LexerPhase[LexerPhase["StringUcp6"] = 48] = "StringUcp6";
2526
- LexerPhase[LexerPhase["StringUcpTail"] = 49] = "StringUcpTail";
2527
- LexerPhase[LexerPhase["Exponent"] = 50] = "Exponent";
2528
- LexerPhase[LexerPhase["Plus"] = 51] = "Plus";
2529
- LexerPhase[LexerPhase["Minus"] = 52] = "Minus";
2530
- LexerPhase[LexerPhase["Divide"] = 53] = "Divide";
2531
- LexerPhase[LexerPhase["Remainder"] = 54] = "Remainder";
2532
- LexerPhase[LexerPhase["ShiftLeft"] = 55] = "ShiftLeft";
2533
- LexerPhase[LexerPhase["ShiftRight"] = 56] = "ShiftRight";
2534
- LexerPhase[LexerPhase["LogicalAnd"] = 57] = "LogicalAnd";
2535
- LexerPhase[LexerPhase["BitwiseXor"] = 58] = "BitwiseXor";
2536
- LexerPhase[LexerPhase["LogicalOr"] = 59] = "LogicalOr";
2537
- LexerPhase[LexerPhase["NullCoalesce"] = 60] = "NullCoalesce";
2538
- LexerPhase[LexerPhase["RegEx"] = 61] = "RegEx";
2497
+ LexerPhase[LexerPhase["Zero"] = 20] = "Zero";
2498
+ LexerPhase[LexerPhase["QuestionMark"] = 21] = "QuestionMark";
2499
+ LexerPhase[LexerPhase["HexaFirst"] = 22] = "HexaFirst";
2500
+ LexerPhase[LexerPhase["HexaTail"] = 23] = "HexaTail";
2501
+ LexerPhase[LexerPhase["BinaryFirst"] = 24] = "BinaryFirst";
2502
+ LexerPhase[LexerPhase["BinaryTail"] = 25] = "BinaryTail";
2503
+ LexerPhase[LexerPhase["DecimalOrReal"] = 26] = "DecimalOrReal";
2504
+ LexerPhase[LexerPhase["RealFractionalFirst"] = 27] = "RealFractionalFirst";
2505
+ LexerPhase[LexerPhase["RealFractionalTail"] = 28] = "RealFractionalTail";
2506
+ LexerPhase[LexerPhase["RealExponent"] = 29] = "RealExponent";
2507
+ LexerPhase[LexerPhase["RealExponentSign"] = 30] = "RealExponentSign";
2508
+ LexerPhase[LexerPhase["RealExponentTail"] = 31] = "RealExponentTail";
2509
+ LexerPhase[LexerPhase["StringTemplateLiteralBackSlash"] = 32] = "StringTemplateLiteralBackSlash";
2510
+ LexerPhase[LexerPhase["StringTemplateLiteral"] = 33] = "StringTemplateLiteral";
2511
+ LexerPhase[LexerPhase["String"] = 34] = "String";
2512
+ LexerPhase[LexerPhase["StringBackSlash"] = 35] = "StringBackSlash";
2513
+ LexerPhase[LexerPhase["StringHexa1"] = 36] = "StringHexa1";
2514
+ LexerPhase[LexerPhase["StringHexa2"] = 37] = "StringHexa2";
2515
+ LexerPhase[LexerPhase["StringUHexa1"] = 38] = "StringUHexa1";
2516
+ LexerPhase[LexerPhase["StringUHexa2"] = 39] = "StringUHexa2";
2517
+ LexerPhase[LexerPhase["StringUHexa3"] = 40] = "StringUHexa3";
2518
+ LexerPhase[LexerPhase["StringUHexa4"] = 41] = "StringUHexa4";
2519
+ LexerPhase[LexerPhase["StringUcp1"] = 42] = "StringUcp1";
2520
+ LexerPhase[LexerPhase["StringUcp2"] = 43] = "StringUcp2";
2521
+ LexerPhase[LexerPhase["StringUcp3"] = 44] = "StringUcp3";
2522
+ LexerPhase[LexerPhase["StringUcp4"] = 45] = "StringUcp4";
2523
+ LexerPhase[LexerPhase["StringUcp5"] = 46] = "StringUcp5";
2524
+ LexerPhase[LexerPhase["StringUcp6"] = 47] = "StringUcp6";
2525
+ LexerPhase[LexerPhase["StringUcpTail"] = 48] = "StringUcpTail";
2526
+ LexerPhase[LexerPhase["Exponent"] = 49] = "Exponent";
2527
+ LexerPhase[LexerPhase["Plus"] = 50] = "Plus";
2528
+ LexerPhase[LexerPhase["Minus"] = 51] = "Minus";
2529
+ LexerPhase[LexerPhase["Divide"] = 52] = "Divide";
2530
+ LexerPhase[LexerPhase["Remainder"] = 53] = "Remainder";
2531
+ LexerPhase[LexerPhase["ShiftLeft"] = 54] = "ShiftLeft";
2532
+ LexerPhase[LexerPhase["ShiftRight"] = 55] = "ShiftRight";
2533
+ LexerPhase[LexerPhase["LogicalAnd"] = 56] = "LogicalAnd";
2534
+ LexerPhase[LexerPhase["BitwiseXor"] = 57] = "BitwiseXor";
2535
+ LexerPhase[LexerPhase["LogicalOr"] = 58] = "LogicalOr";
2536
+ LexerPhase[LexerPhase["NullCoalesce"] = 59] = "NullCoalesce";
2537
+ LexerPhase[LexerPhase["RegEx"] = 60] = "RegEx";
2539
2538
  return LexerPhase;
2540
2539
  }(LexerPhase || {});
2541
2540
  /**
@@ -2707,10 +2706,7 @@ var Lexer = class {
2707
2706
  case ",": return completeToken(TokenType.Comma);
2708
2707
  case "(": return completeToken(TokenType.LParent);
2709
2708
  case ")": return completeToken(TokenType.RParent);
2710
- case ":":
2711
- phase = LexerPhase.Colon;
2712
- tokenType = TokenType.Colon;
2713
- break;
2709
+ case ":": return completeToken(TokenType.Colon);
2714
2710
  case "`": return completeToken(TokenType.Backtick);
2715
2711
  case "[": return completeToken(TokenType.LSquare);
2716
2712
  case "]": return completeToken(TokenType.RSquare);
@@ -2773,7 +2769,6 @@ var Lexer = class {
2773
2769
  case LexerPhase.IdTail:
2774
2770
  if (!isIdContinuation(ch)) return makeToken();
2775
2771
  break;
2776
- case LexerPhase.Colon: return ch === ":" ? completeToken(TokenType.Global) : makeToken();
2777
2772
  case LexerPhase.Slash:
2778
2773
  if (ch === "*") phase = LexerPhase.BlockCommentTrail1;
2779
2774
  else if (ch === "/") {
@@ -3184,6 +3179,7 @@ resolverHash.set("false", TokenType.False);
3184
3179
  resolverHash.set("undefined", TokenType.Undefined);
3185
3180
  resolverHash.set("null", TokenType.Null);
3186
3181
  resolverHash.set("in", TokenType.In);
3182
+ resolverHash.set("instanceof", TokenType.Instanceof);
3187
3183
  resolverHash.set("let", TokenType.Let);
3188
3184
  resolverHash.set("const", TokenType.Const);
3189
3185
  resolverHash.set("var", TokenType.Var);
@@ -3349,7 +3345,6 @@ const tokenTraits = {
3349
3345
  expressionStart: true,
3350
3346
  isPropLiteral: true
3351
3347
  },
3352
- [TokenType.Global]: { expressionStart: true },
3353
3348
  [TokenType.DecimalLiteral]: {
3354
3349
  expressionStart: true,
3355
3350
  isPropLiteral: true
@@ -3404,6 +3399,7 @@ const tokenTraits = {
3404
3399
  keywordLike: true
3405
3400
  },
3406
3401
  [TokenType.In]: { keywordLike: true },
3402
+ [TokenType.Instanceof]: { keywordLike: true },
3407
3403
  [TokenType.Let]: { keywordLike: true },
3408
3404
  [TokenType.Const]: { keywordLike: true },
3409
3405
  [TokenType.Var]: { keywordLike: true },
@@ -4964,7 +4960,7 @@ var Parser = class {
4964
4960
  }
4965
4961
  /**
4966
4962
  * relOrInExpr
4967
- * : shiftExpr ( ( "<" | "<=" | ">" | ">=", "in" ) shiftExpr )?
4963
+ * : shiftExpr ( ( "<" | "<=" | ">" | ">=", "in", "instanceof" ) shiftExpr )?
4968
4964
  * ;
4969
4965
  */
4970
4966
  parseRelOrInExpr() {
@@ -4972,7 +4968,7 @@ var Parser = class {
4972
4968
  let leftExpr = this.parseShiftExpr();
4973
4969
  if (!leftExpr) return null;
4974
4970
  let opType;
4975
- while (opType = this.skipTokens(TokenType.LessThan, TokenType.LessThanOrEqual, TokenType.GreaterThan, TokenType.GreaterThanOrEqual, TokenType.In)) {
4971
+ while (opType = this.skipTokens(TokenType.LessThan, TokenType.LessThanOrEqual, TokenType.GreaterThan, TokenType.GreaterThanOrEqual, TokenType.In, TokenType.Instanceof)) {
4976
4972
  const rightExpr = this.parseShiftExpr();
4977
4973
  if (!rightExpr) {
4978
4974
  this.reportError("W001");
@@ -5360,18 +5356,6 @@ var Parser = class {
5360
5356
  const idToken = this._lexer.get();
5361
5357
  return this.createExpressionNode(T_IDENTIFIER, { name: idToken.text }, idToken, idToken);
5362
5358
  }
5363
- case TokenType.Global: {
5364
- this._lexer.get();
5365
- const idToken = this._lexer.get();
5366
- if (idToken.type !== TokenType.Identifier) {
5367
- this.reportError("W003");
5368
- return null;
5369
- }
5370
- return this.createExpressionNode(T_IDENTIFIER, {
5371
- name: idToken.text,
5372
- isGlobal: true
5373
- }, idToken, idToken);
5374
- }
5375
5359
  case TokenType.Backtick: return this.parseTemplateLiteral();
5376
5360
  case TokenType.False:
5377
5361
  case TokenType.True:
@@ -2410,23 +2410,23 @@ let TokenType = /* @__PURE__ */ function(TokenType) {
2410
2410
  TokenType[TokenType["SignedShiftRight"] = 55] = "SignedShiftRight";
2411
2411
  TokenType[TokenType["Dot"] = 56] = "Dot";
2412
2412
  TokenType[TokenType["Spread"] = 57] = "Spread";
2413
- TokenType[TokenType["Global"] = 58] = "Global";
2414
- TokenType[TokenType["Backtick"] = 59] = "Backtick";
2415
- TokenType[TokenType["DollarLBrace"] = 60] = "DollarLBrace";
2416
- TokenType[TokenType["Arrow"] = 61] = "Arrow";
2417
- TokenType[TokenType["DecimalLiteral"] = 62] = "DecimalLiteral";
2418
- TokenType[TokenType["HexadecimalLiteral"] = 63] = "HexadecimalLiteral";
2419
- TokenType[TokenType["BinaryLiteral"] = 64] = "BinaryLiteral";
2420
- TokenType[TokenType["RealLiteral"] = 65] = "RealLiteral";
2421
- TokenType[TokenType["StringLiteral"] = 66] = "StringLiteral";
2422
- TokenType[TokenType["Infinity"] = 67] = "Infinity";
2423
- TokenType[TokenType["NaN"] = 68] = "NaN";
2424
- TokenType[TokenType["True"] = 69] = "True";
2425
- TokenType[TokenType["False"] = 70] = "False";
2426
- TokenType[TokenType["Typeof"] = 71] = "Typeof";
2427
- TokenType[TokenType["Null"] = 72] = "Null";
2428
- TokenType[TokenType["Undefined"] = 73] = "Undefined";
2429
- TokenType[TokenType["In"] = 74] = "In";
2413
+ TokenType[TokenType["Backtick"] = 58] = "Backtick";
2414
+ TokenType[TokenType["DollarLBrace"] = 59] = "DollarLBrace";
2415
+ TokenType[TokenType["Arrow"] = 60] = "Arrow";
2416
+ TokenType[TokenType["DecimalLiteral"] = 61] = "DecimalLiteral";
2417
+ TokenType[TokenType["HexadecimalLiteral"] = 62] = "HexadecimalLiteral";
2418
+ TokenType[TokenType["BinaryLiteral"] = 63] = "BinaryLiteral";
2419
+ TokenType[TokenType["RealLiteral"] = 64] = "RealLiteral";
2420
+ TokenType[TokenType["StringLiteral"] = 65] = "StringLiteral";
2421
+ TokenType[TokenType["Infinity"] = 66] = "Infinity";
2422
+ TokenType[TokenType["NaN"] = 67] = "NaN";
2423
+ TokenType[TokenType["True"] = 68] = "True";
2424
+ TokenType[TokenType["False"] = 69] = "False";
2425
+ TokenType[TokenType["Typeof"] = 70] = "Typeof";
2426
+ TokenType[TokenType["Null"] = 71] = "Null";
2427
+ TokenType[TokenType["Undefined"] = 72] = "Undefined";
2428
+ TokenType[TokenType["In"] = 73] = "In";
2429
+ TokenType[TokenType["Instanceof"] = 74] = "Instanceof";
2430
2430
  TokenType[TokenType["Let"] = 75] = "Let";
2431
2431
  TokenType[TokenType["Const"] = 76] = "Const";
2432
2432
  TokenType[TokenType["Var"] = 77] = "Var";
@@ -2480,48 +2480,47 @@ var LexerPhase = /* @__PURE__ */ function(LexerPhase) {
2480
2480
  LexerPhase[LexerPhase["IdTail"] = 17] = "IdTail";
2481
2481
  LexerPhase[LexerPhase["Dot"] = 18] = "Dot";
2482
2482
  LexerPhase[LexerPhase["DotDot"] = 19] = "DotDot";
2483
- LexerPhase[LexerPhase["Colon"] = 20] = "Colon";
2484
- LexerPhase[LexerPhase["Zero"] = 21] = "Zero";
2485
- LexerPhase[LexerPhase["QuestionMark"] = 22] = "QuestionMark";
2486
- LexerPhase[LexerPhase["HexaFirst"] = 23] = "HexaFirst";
2487
- LexerPhase[LexerPhase["HexaTail"] = 24] = "HexaTail";
2488
- LexerPhase[LexerPhase["BinaryFirst"] = 25] = "BinaryFirst";
2489
- LexerPhase[LexerPhase["BinaryTail"] = 26] = "BinaryTail";
2490
- LexerPhase[LexerPhase["DecimalOrReal"] = 27] = "DecimalOrReal";
2491
- LexerPhase[LexerPhase["RealFractionalFirst"] = 28] = "RealFractionalFirst";
2492
- LexerPhase[LexerPhase["RealFractionalTail"] = 29] = "RealFractionalTail";
2493
- LexerPhase[LexerPhase["RealExponent"] = 30] = "RealExponent";
2494
- LexerPhase[LexerPhase["RealExponentSign"] = 31] = "RealExponentSign";
2495
- LexerPhase[LexerPhase["RealExponentTail"] = 32] = "RealExponentTail";
2496
- LexerPhase[LexerPhase["StringTemplateLiteralBackSlash"] = 33] = "StringTemplateLiteralBackSlash";
2497
- LexerPhase[LexerPhase["StringTemplateLiteral"] = 34] = "StringTemplateLiteral";
2498
- LexerPhase[LexerPhase["String"] = 35] = "String";
2499
- LexerPhase[LexerPhase["StringBackSlash"] = 36] = "StringBackSlash";
2500
- LexerPhase[LexerPhase["StringHexa1"] = 37] = "StringHexa1";
2501
- LexerPhase[LexerPhase["StringHexa2"] = 38] = "StringHexa2";
2502
- LexerPhase[LexerPhase["StringUHexa1"] = 39] = "StringUHexa1";
2503
- LexerPhase[LexerPhase["StringUHexa2"] = 40] = "StringUHexa2";
2504
- LexerPhase[LexerPhase["StringUHexa3"] = 41] = "StringUHexa3";
2505
- LexerPhase[LexerPhase["StringUHexa4"] = 42] = "StringUHexa4";
2506
- LexerPhase[LexerPhase["StringUcp1"] = 43] = "StringUcp1";
2507
- LexerPhase[LexerPhase["StringUcp2"] = 44] = "StringUcp2";
2508
- LexerPhase[LexerPhase["StringUcp3"] = 45] = "StringUcp3";
2509
- LexerPhase[LexerPhase["StringUcp4"] = 46] = "StringUcp4";
2510
- LexerPhase[LexerPhase["StringUcp5"] = 47] = "StringUcp5";
2511
- LexerPhase[LexerPhase["StringUcp6"] = 48] = "StringUcp6";
2512
- LexerPhase[LexerPhase["StringUcpTail"] = 49] = "StringUcpTail";
2513
- LexerPhase[LexerPhase["Exponent"] = 50] = "Exponent";
2514
- LexerPhase[LexerPhase["Plus"] = 51] = "Plus";
2515
- LexerPhase[LexerPhase["Minus"] = 52] = "Minus";
2516
- LexerPhase[LexerPhase["Divide"] = 53] = "Divide";
2517
- LexerPhase[LexerPhase["Remainder"] = 54] = "Remainder";
2518
- LexerPhase[LexerPhase["ShiftLeft"] = 55] = "ShiftLeft";
2519
- LexerPhase[LexerPhase["ShiftRight"] = 56] = "ShiftRight";
2520
- LexerPhase[LexerPhase["LogicalAnd"] = 57] = "LogicalAnd";
2521
- LexerPhase[LexerPhase["BitwiseXor"] = 58] = "BitwiseXor";
2522
- LexerPhase[LexerPhase["LogicalOr"] = 59] = "LogicalOr";
2523
- LexerPhase[LexerPhase["NullCoalesce"] = 60] = "NullCoalesce";
2524
- LexerPhase[LexerPhase["RegEx"] = 61] = "RegEx";
2483
+ LexerPhase[LexerPhase["Zero"] = 20] = "Zero";
2484
+ LexerPhase[LexerPhase["QuestionMark"] = 21] = "QuestionMark";
2485
+ LexerPhase[LexerPhase["HexaFirst"] = 22] = "HexaFirst";
2486
+ LexerPhase[LexerPhase["HexaTail"] = 23] = "HexaTail";
2487
+ LexerPhase[LexerPhase["BinaryFirst"] = 24] = "BinaryFirst";
2488
+ LexerPhase[LexerPhase["BinaryTail"] = 25] = "BinaryTail";
2489
+ LexerPhase[LexerPhase["DecimalOrReal"] = 26] = "DecimalOrReal";
2490
+ LexerPhase[LexerPhase["RealFractionalFirst"] = 27] = "RealFractionalFirst";
2491
+ LexerPhase[LexerPhase["RealFractionalTail"] = 28] = "RealFractionalTail";
2492
+ LexerPhase[LexerPhase["RealExponent"] = 29] = "RealExponent";
2493
+ LexerPhase[LexerPhase["RealExponentSign"] = 30] = "RealExponentSign";
2494
+ LexerPhase[LexerPhase["RealExponentTail"] = 31] = "RealExponentTail";
2495
+ LexerPhase[LexerPhase["StringTemplateLiteralBackSlash"] = 32] = "StringTemplateLiteralBackSlash";
2496
+ LexerPhase[LexerPhase["StringTemplateLiteral"] = 33] = "StringTemplateLiteral";
2497
+ LexerPhase[LexerPhase["String"] = 34] = "String";
2498
+ LexerPhase[LexerPhase["StringBackSlash"] = 35] = "StringBackSlash";
2499
+ LexerPhase[LexerPhase["StringHexa1"] = 36] = "StringHexa1";
2500
+ LexerPhase[LexerPhase["StringHexa2"] = 37] = "StringHexa2";
2501
+ LexerPhase[LexerPhase["StringUHexa1"] = 38] = "StringUHexa1";
2502
+ LexerPhase[LexerPhase["StringUHexa2"] = 39] = "StringUHexa2";
2503
+ LexerPhase[LexerPhase["StringUHexa3"] = 40] = "StringUHexa3";
2504
+ LexerPhase[LexerPhase["StringUHexa4"] = 41] = "StringUHexa4";
2505
+ LexerPhase[LexerPhase["StringUcp1"] = 42] = "StringUcp1";
2506
+ LexerPhase[LexerPhase["StringUcp2"] = 43] = "StringUcp2";
2507
+ LexerPhase[LexerPhase["StringUcp3"] = 44] = "StringUcp3";
2508
+ LexerPhase[LexerPhase["StringUcp4"] = 45] = "StringUcp4";
2509
+ LexerPhase[LexerPhase["StringUcp5"] = 46] = "StringUcp5";
2510
+ LexerPhase[LexerPhase["StringUcp6"] = 47] = "StringUcp6";
2511
+ LexerPhase[LexerPhase["StringUcpTail"] = 48] = "StringUcpTail";
2512
+ LexerPhase[LexerPhase["Exponent"] = 49] = "Exponent";
2513
+ LexerPhase[LexerPhase["Plus"] = 50] = "Plus";
2514
+ LexerPhase[LexerPhase["Minus"] = 51] = "Minus";
2515
+ LexerPhase[LexerPhase["Divide"] = 52] = "Divide";
2516
+ LexerPhase[LexerPhase["Remainder"] = 53] = "Remainder";
2517
+ LexerPhase[LexerPhase["ShiftLeft"] = 54] = "ShiftLeft";
2518
+ LexerPhase[LexerPhase["ShiftRight"] = 55] = "ShiftRight";
2519
+ LexerPhase[LexerPhase["LogicalAnd"] = 56] = "LogicalAnd";
2520
+ LexerPhase[LexerPhase["BitwiseXor"] = 57] = "BitwiseXor";
2521
+ LexerPhase[LexerPhase["LogicalOr"] = 58] = "LogicalOr";
2522
+ LexerPhase[LexerPhase["NullCoalesce"] = 59] = "NullCoalesce";
2523
+ LexerPhase[LexerPhase["RegEx"] = 60] = "RegEx";
2525
2524
  return LexerPhase;
2526
2525
  }(LexerPhase || {});
2527
2526
  /**
@@ -2693,10 +2692,7 @@ var Lexer = class {
2693
2692
  case ",": return completeToken(TokenType.Comma);
2694
2693
  case "(": return completeToken(TokenType.LParent);
2695
2694
  case ")": return completeToken(TokenType.RParent);
2696
- case ":":
2697
- phase = LexerPhase.Colon;
2698
- tokenType = TokenType.Colon;
2699
- break;
2695
+ case ":": return completeToken(TokenType.Colon);
2700
2696
  case "`": return completeToken(TokenType.Backtick);
2701
2697
  case "[": return completeToken(TokenType.LSquare);
2702
2698
  case "]": return completeToken(TokenType.RSquare);
@@ -2759,7 +2755,6 @@ var Lexer = class {
2759
2755
  case LexerPhase.IdTail:
2760
2756
  if (!isIdContinuation(ch)) return makeToken();
2761
2757
  break;
2762
- case LexerPhase.Colon: return ch === ":" ? completeToken(TokenType.Global) : makeToken();
2763
2758
  case LexerPhase.Slash:
2764
2759
  if (ch === "*") phase = LexerPhase.BlockCommentTrail1;
2765
2760
  else if (ch === "/") {
@@ -3170,6 +3165,7 @@ resolverHash.set("false", TokenType.False);
3170
3165
  resolverHash.set("undefined", TokenType.Undefined);
3171
3166
  resolverHash.set("null", TokenType.Null);
3172
3167
  resolverHash.set("in", TokenType.In);
3168
+ resolverHash.set("instanceof", TokenType.Instanceof);
3173
3169
  resolverHash.set("let", TokenType.Let);
3174
3170
  resolverHash.set("const", TokenType.Const);
3175
3171
  resolverHash.set("var", TokenType.Var);
@@ -3335,7 +3331,6 @@ const tokenTraits = {
3335
3331
  expressionStart: true,
3336
3332
  isPropLiteral: true
3337
3333
  },
3338
- [TokenType.Global]: { expressionStart: true },
3339
3334
  [TokenType.DecimalLiteral]: {
3340
3335
  expressionStart: true,
3341
3336
  isPropLiteral: true
@@ -3390,6 +3385,7 @@ const tokenTraits = {
3390
3385
  keywordLike: true
3391
3386
  },
3392
3387
  [TokenType.In]: { keywordLike: true },
3388
+ [TokenType.Instanceof]: { keywordLike: true },
3393
3389
  [TokenType.Let]: { keywordLike: true },
3394
3390
  [TokenType.Const]: { keywordLike: true },
3395
3391
  [TokenType.Var]: { keywordLike: true },
@@ -4950,7 +4946,7 @@ var Parser = class {
4950
4946
  }
4951
4947
  /**
4952
4948
  * relOrInExpr
4953
- * : shiftExpr ( ( "<" | "<=" | ">" | ">=", "in" ) shiftExpr )?
4949
+ * : shiftExpr ( ( "<" | "<=" | ">" | ">=", "in", "instanceof" ) shiftExpr )?
4954
4950
  * ;
4955
4951
  */
4956
4952
  parseRelOrInExpr() {
@@ -4958,7 +4954,7 @@ var Parser = class {
4958
4954
  let leftExpr = this.parseShiftExpr();
4959
4955
  if (!leftExpr) return null;
4960
4956
  let opType;
4961
- while (opType = this.skipTokens(TokenType.LessThan, TokenType.LessThanOrEqual, TokenType.GreaterThan, TokenType.GreaterThanOrEqual, TokenType.In)) {
4957
+ while (opType = this.skipTokens(TokenType.LessThan, TokenType.LessThanOrEqual, TokenType.GreaterThan, TokenType.GreaterThanOrEqual, TokenType.In, TokenType.Instanceof)) {
4962
4958
  const rightExpr = this.parseShiftExpr();
4963
4959
  if (!rightExpr) {
4964
4960
  this.reportError("W001");
@@ -5346,18 +5342,6 @@ var Parser = class {
5346
5342
  const idToken = this._lexer.get();
5347
5343
  return this.createExpressionNode(T_IDENTIFIER, { name: idToken.text }, idToken, idToken);
5348
5344
  }
5349
- case TokenType.Global: {
5350
- this._lexer.get();
5351
- const idToken = this._lexer.get();
5352
- if (idToken.type !== TokenType.Identifier) {
5353
- this.reportError("W003");
5354
- return null;
5355
- }
5356
- return this.createExpressionNode(T_IDENTIFIER, {
5357
- name: idToken.text,
5358
- isGlobal: true
5359
- }, idToken, idToken);
5360
- }
5361
5345
  case TokenType.Backtick: return this.parseTemplateLiteral();
5362
5346
  case TokenType.False:
5363
5347
  case TokenType.True: