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
@@ -2432,23 +2432,23 @@ let TokenType = /* @__PURE__ */ function(TokenType) {
2432
2432
  TokenType[TokenType["SignedShiftRight"] = 55] = "SignedShiftRight";
2433
2433
  TokenType[TokenType["Dot"] = 56] = "Dot";
2434
2434
  TokenType[TokenType["Spread"] = 57] = "Spread";
2435
- TokenType[TokenType["Global"] = 58] = "Global";
2436
- TokenType[TokenType["Backtick"] = 59] = "Backtick";
2437
- TokenType[TokenType["DollarLBrace"] = 60] = "DollarLBrace";
2438
- TokenType[TokenType["Arrow"] = 61] = "Arrow";
2439
- TokenType[TokenType["DecimalLiteral"] = 62] = "DecimalLiteral";
2440
- TokenType[TokenType["HexadecimalLiteral"] = 63] = "HexadecimalLiteral";
2441
- TokenType[TokenType["BinaryLiteral"] = 64] = "BinaryLiteral";
2442
- TokenType[TokenType["RealLiteral"] = 65] = "RealLiteral";
2443
- TokenType[TokenType["StringLiteral"] = 66] = "StringLiteral";
2444
- TokenType[TokenType["Infinity"] = 67] = "Infinity";
2445
- TokenType[TokenType["NaN"] = 68] = "NaN";
2446
- TokenType[TokenType["True"] = 69] = "True";
2447
- TokenType[TokenType["False"] = 70] = "False";
2448
- TokenType[TokenType["Typeof"] = 71] = "Typeof";
2449
- TokenType[TokenType["Null"] = 72] = "Null";
2450
- TokenType[TokenType["Undefined"] = 73] = "Undefined";
2451
- TokenType[TokenType["In"] = 74] = "In";
2435
+ TokenType[TokenType["Backtick"] = 58] = "Backtick";
2436
+ TokenType[TokenType["DollarLBrace"] = 59] = "DollarLBrace";
2437
+ TokenType[TokenType["Arrow"] = 60] = "Arrow";
2438
+ TokenType[TokenType["DecimalLiteral"] = 61] = "DecimalLiteral";
2439
+ TokenType[TokenType["HexadecimalLiteral"] = 62] = "HexadecimalLiteral";
2440
+ TokenType[TokenType["BinaryLiteral"] = 63] = "BinaryLiteral";
2441
+ TokenType[TokenType["RealLiteral"] = 64] = "RealLiteral";
2442
+ TokenType[TokenType["StringLiteral"] = 65] = "StringLiteral";
2443
+ TokenType[TokenType["Infinity"] = 66] = "Infinity";
2444
+ TokenType[TokenType["NaN"] = 67] = "NaN";
2445
+ TokenType[TokenType["True"] = 68] = "True";
2446
+ TokenType[TokenType["False"] = 69] = "False";
2447
+ TokenType[TokenType["Typeof"] = 70] = "Typeof";
2448
+ TokenType[TokenType["Null"] = 71] = "Null";
2449
+ TokenType[TokenType["Undefined"] = 72] = "Undefined";
2450
+ TokenType[TokenType["In"] = 73] = "In";
2451
+ TokenType[TokenType["Instanceof"] = 74] = "Instanceof";
2452
2452
  TokenType[TokenType["Let"] = 75] = "Let";
2453
2453
  TokenType[TokenType["Const"] = 76] = "Const";
2454
2454
  TokenType[TokenType["Var"] = 77] = "Var";
@@ -2502,48 +2502,47 @@ var LexerPhase = /* @__PURE__ */ function(LexerPhase) {
2502
2502
  LexerPhase[LexerPhase["IdTail"] = 17] = "IdTail";
2503
2503
  LexerPhase[LexerPhase["Dot"] = 18] = "Dot";
2504
2504
  LexerPhase[LexerPhase["DotDot"] = 19] = "DotDot";
2505
- LexerPhase[LexerPhase["Colon"] = 20] = "Colon";
2506
- LexerPhase[LexerPhase["Zero"] = 21] = "Zero";
2507
- LexerPhase[LexerPhase["QuestionMark"] = 22] = "QuestionMark";
2508
- LexerPhase[LexerPhase["HexaFirst"] = 23] = "HexaFirst";
2509
- LexerPhase[LexerPhase["HexaTail"] = 24] = "HexaTail";
2510
- LexerPhase[LexerPhase["BinaryFirst"] = 25] = "BinaryFirst";
2511
- LexerPhase[LexerPhase["BinaryTail"] = 26] = "BinaryTail";
2512
- LexerPhase[LexerPhase["DecimalOrReal"] = 27] = "DecimalOrReal";
2513
- LexerPhase[LexerPhase["RealFractionalFirst"] = 28] = "RealFractionalFirst";
2514
- LexerPhase[LexerPhase["RealFractionalTail"] = 29] = "RealFractionalTail";
2515
- LexerPhase[LexerPhase["RealExponent"] = 30] = "RealExponent";
2516
- LexerPhase[LexerPhase["RealExponentSign"] = 31] = "RealExponentSign";
2517
- LexerPhase[LexerPhase["RealExponentTail"] = 32] = "RealExponentTail";
2518
- LexerPhase[LexerPhase["StringTemplateLiteralBackSlash"] = 33] = "StringTemplateLiteralBackSlash";
2519
- LexerPhase[LexerPhase["StringTemplateLiteral"] = 34] = "StringTemplateLiteral";
2520
- LexerPhase[LexerPhase["String"] = 35] = "String";
2521
- LexerPhase[LexerPhase["StringBackSlash"] = 36] = "StringBackSlash";
2522
- LexerPhase[LexerPhase["StringHexa1"] = 37] = "StringHexa1";
2523
- LexerPhase[LexerPhase["StringHexa2"] = 38] = "StringHexa2";
2524
- LexerPhase[LexerPhase["StringUHexa1"] = 39] = "StringUHexa1";
2525
- LexerPhase[LexerPhase["StringUHexa2"] = 40] = "StringUHexa2";
2526
- LexerPhase[LexerPhase["StringUHexa3"] = 41] = "StringUHexa3";
2527
- LexerPhase[LexerPhase["StringUHexa4"] = 42] = "StringUHexa4";
2528
- LexerPhase[LexerPhase["StringUcp1"] = 43] = "StringUcp1";
2529
- LexerPhase[LexerPhase["StringUcp2"] = 44] = "StringUcp2";
2530
- LexerPhase[LexerPhase["StringUcp3"] = 45] = "StringUcp3";
2531
- LexerPhase[LexerPhase["StringUcp4"] = 46] = "StringUcp4";
2532
- LexerPhase[LexerPhase["StringUcp5"] = 47] = "StringUcp5";
2533
- LexerPhase[LexerPhase["StringUcp6"] = 48] = "StringUcp6";
2534
- LexerPhase[LexerPhase["StringUcpTail"] = 49] = "StringUcpTail";
2535
- LexerPhase[LexerPhase["Exponent"] = 50] = "Exponent";
2536
- LexerPhase[LexerPhase["Plus"] = 51] = "Plus";
2537
- LexerPhase[LexerPhase["Minus"] = 52] = "Minus";
2538
- LexerPhase[LexerPhase["Divide"] = 53] = "Divide";
2539
- LexerPhase[LexerPhase["Remainder"] = 54] = "Remainder";
2540
- LexerPhase[LexerPhase["ShiftLeft"] = 55] = "ShiftLeft";
2541
- LexerPhase[LexerPhase["ShiftRight"] = 56] = "ShiftRight";
2542
- LexerPhase[LexerPhase["LogicalAnd"] = 57] = "LogicalAnd";
2543
- LexerPhase[LexerPhase["BitwiseXor"] = 58] = "BitwiseXor";
2544
- LexerPhase[LexerPhase["LogicalOr"] = 59] = "LogicalOr";
2545
- LexerPhase[LexerPhase["NullCoalesce"] = 60] = "NullCoalesce";
2546
- LexerPhase[LexerPhase["RegEx"] = 61] = "RegEx";
2505
+ LexerPhase[LexerPhase["Zero"] = 20] = "Zero";
2506
+ LexerPhase[LexerPhase["QuestionMark"] = 21] = "QuestionMark";
2507
+ LexerPhase[LexerPhase["HexaFirst"] = 22] = "HexaFirst";
2508
+ LexerPhase[LexerPhase["HexaTail"] = 23] = "HexaTail";
2509
+ LexerPhase[LexerPhase["BinaryFirst"] = 24] = "BinaryFirst";
2510
+ LexerPhase[LexerPhase["BinaryTail"] = 25] = "BinaryTail";
2511
+ LexerPhase[LexerPhase["DecimalOrReal"] = 26] = "DecimalOrReal";
2512
+ LexerPhase[LexerPhase["RealFractionalFirst"] = 27] = "RealFractionalFirst";
2513
+ LexerPhase[LexerPhase["RealFractionalTail"] = 28] = "RealFractionalTail";
2514
+ LexerPhase[LexerPhase["RealExponent"] = 29] = "RealExponent";
2515
+ LexerPhase[LexerPhase["RealExponentSign"] = 30] = "RealExponentSign";
2516
+ LexerPhase[LexerPhase["RealExponentTail"] = 31] = "RealExponentTail";
2517
+ LexerPhase[LexerPhase["StringTemplateLiteralBackSlash"] = 32] = "StringTemplateLiteralBackSlash";
2518
+ LexerPhase[LexerPhase["StringTemplateLiteral"] = 33] = "StringTemplateLiteral";
2519
+ LexerPhase[LexerPhase["String"] = 34] = "String";
2520
+ LexerPhase[LexerPhase["StringBackSlash"] = 35] = "StringBackSlash";
2521
+ LexerPhase[LexerPhase["StringHexa1"] = 36] = "StringHexa1";
2522
+ LexerPhase[LexerPhase["StringHexa2"] = 37] = "StringHexa2";
2523
+ LexerPhase[LexerPhase["StringUHexa1"] = 38] = "StringUHexa1";
2524
+ LexerPhase[LexerPhase["StringUHexa2"] = 39] = "StringUHexa2";
2525
+ LexerPhase[LexerPhase["StringUHexa3"] = 40] = "StringUHexa3";
2526
+ LexerPhase[LexerPhase["StringUHexa4"] = 41] = "StringUHexa4";
2527
+ LexerPhase[LexerPhase["StringUcp1"] = 42] = "StringUcp1";
2528
+ LexerPhase[LexerPhase["StringUcp2"] = 43] = "StringUcp2";
2529
+ LexerPhase[LexerPhase["StringUcp3"] = 44] = "StringUcp3";
2530
+ LexerPhase[LexerPhase["StringUcp4"] = 45] = "StringUcp4";
2531
+ LexerPhase[LexerPhase["StringUcp5"] = 46] = "StringUcp5";
2532
+ LexerPhase[LexerPhase["StringUcp6"] = 47] = "StringUcp6";
2533
+ LexerPhase[LexerPhase["StringUcpTail"] = 48] = "StringUcpTail";
2534
+ LexerPhase[LexerPhase["Exponent"] = 49] = "Exponent";
2535
+ LexerPhase[LexerPhase["Plus"] = 50] = "Plus";
2536
+ LexerPhase[LexerPhase["Minus"] = 51] = "Minus";
2537
+ LexerPhase[LexerPhase["Divide"] = 52] = "Divide";
2538
+ LexerPhase[LexerPhase["Remainder"] = 53] = "Remainder";
2539
+ LexerPhase[LexerPhase["ShiftLeft"] = 54] = "ShiftLeft";
2540
+ LexerPhase[LexerPhase["ShiftRight"] = 55] = "ShiftRight";
2541
+ LexerPhase[LexerPhase["LogicalAnd"] = 56] = "LogicalAnd";
2542
+ LexerPhase[LexerPhase["BitwiseXor"] = 57] = "BitwiseXor";
2543
+ LexerPhase[LexerPhase["LogicalOr"] = 58] = "LogicalOr";
2544
+ LexerPhase[LexerPhase["NullCoalesce"] = 59] = "NullCoalesce";
2545
+ LexerPhase[LexerPhase["RegEx"] = 60] = "RegEx";
2547
2546
  return LexerPhase;
2548
2547
  }(LexerPhase || {});
2549
2548
  /**
@@ -2715,10 +2714,7 @@ var Lexer = class {
2715
2714
  case ",": return completeToken(TokenType.Comma);
2716
2715
  case "(": return completeToken(TokenType.LParent);
2717
2716
  case ")": return completeToken(TokenType.RParent);
2718
- case ":":
2719
- phase = LexerPhase.Colon;
2720
- tokenType = TokenType.Colon;
2721
- break;
2717
+ case ":": return completeToken(TokenType.Colon);
2722
2718
  case "`": return completeToken(TokenType.Backtick);
2723
2719
  case "[": return completeToken(TokenType.LSquare);
2724
2720
  case "]": return completeToken(TokenType.RSquare);
@@ -2781,7 +2777,6 @@ var Lexer = class {
2781
2777
  case LexerPhase.IdTail:
2782
2778
  if (!isIdContinuation(ch)) return makeToken();
2783
2779
  break;
2784
- case LexerPhase.Colon: return ch === ":" ? completeToken(TokenType.Global) : makeToken();
2785
2780
  case LexerPhase.Slash:
2786
2781
  if (ch === "*") phase = LexerPhase.BlockCommentTrail1;
2787
2782
  else if (ch === "/") {
@@ -3192,6 +3187,7 @@ resolverHash.set("false", TokenType.False);
3192
3187
  resolverHash.set("undefined", TokenType.Undefined);
3193
3188
  resolverHash.set("null", TokenType.Null);
3194
3189
  resolverHash.set("in", TokenType.In);
3190
+ resolverHash.set("instanceof", TokenType.Instanceof);
3195
3191
  resolverHash.set("let", TokenType.Let);
3196
3192
  resolverHash.set("const", TokenType.Const);
3197
3193
  resolverHash.set("var", TokenType.Var);
@@ -3357,7 +3353,6 @@ const tokenTraits = {
3357
3353
  expressionStart: true,
3358
3354
  isPropLiteral: true
3359
3355
  },
3360
- [TokenType.Global]: { expressionStart: true },
3361
3356
  [TokenType.DecimalLiteral]: {
3362
3357
  expressionStart: true,
3363
3358
  isPropLiteral: true
@@ -3412,6 +3407,7 @@ const tokenTraits = {
3412
3407
  keywordLike: true
3413
3408
  },
3414
3409
  [TokenType.In]: { keywordLike: true },
3410
+ [TokenType.Instanceof]: { keywordLike: true },
3415
3411
  [TokenType.Let]: { keywordLike: true },
3416
3412
  [TokenType.Const]: { keywordLike: true },
3417
3413
  [TokenType.Var]: { keywordLike: true },
@@ -4972,7 +4968,7 @@ var Parser = class {
4972
4968
  }
4973
4969
  /**
4974
4970
  * relOrInExpr
4975
- * : shiftExpr ( ( "<" | "<=" | ">" | ">=", "in" ) shiftExpr )?
4971
+ * : shiftExpr ( ( "<" | "<=" | ">" | ">=", "in", "instanceof" ) shiftExpr )?
4976
4972
  * ;
4977
4973
  */
4978
4974
  parseRelOrInExpr() {
@@ -4980,7 +4976,7 @@ var Parser = class {
4980
4976
  let leftExpr = this.parseShiftExpr();
4981
4977
  if (!leftExpr) return null;
4982
4978
  let opType;
4983
- while (opType = this.skipTokens(TokenType.LessThan, TokenType.LessThanOrEqual, TokenType.GreaterThan, TokenType.GreaterThanOrEqual, TokenType.In)) {
4979
+ while (opType = this.skipTokens(TokenType.LessThan, TokenType.LessThanOrEqual, TokenType.GreaterThan, TokenType.GreaterThanOrEqual, TokenType.In, TokenType.Instanceof)) {
4984
4980
  const rightExpr = this.parseShiftExpr();
4985
4981
  if (!rightExpr) {
4986
4982
  this.reportError("W001");
@@ -5368,18 +5364,6 @@ var Parser = class {
5368
5364
  const idToken = this._lexer.get();
5369
5365
  return this.createExpressionNode(T_IDENTIFIER, { name: idToken.text }, idToken, idToken);
5370
5366
  }
5371
- case TokenType.Global: {
5372
- this._lexer.get();
5373
- const idToken = this._lexer.get();
5374
- if (idToken.type !== TokenType.Identifier) {
5375
- this.reportError("W003");
5376
- return null;
5377
- }
5378
- return this.createExpressionNode(T_IDENTIFIER, {
5379
- name: idToken.text,
5380
- isGlobal: true
5381
- }, idToken, idToken);
5382
- }
5383
5367
  case TokenType.Backtick: return this.parseTemplateLiteral();
5384
5368
  case TokenType.False:
5385
5369
  case TokenType.True:
@@ -1223,23 +1223,23 @@ let TokenType = /* @__PURE__ */ function(TokenType) {
1223
1223
  TokenType[TokenType["SignedShiftRight"] = 55] = "SignedShiftRight";
1224
1224
  TokenType[TokenType["Dot"] = 56] = "Dot";
1225
1225
  TokenType[TokenType["Spread"] = 57] = "Spread";
1226
- TokenType[TokenType["Global"] = 58] = "Global";
1227
- TokenType[TokenType["Backtick"] = 59] = "Backtick";
1228
- TokenType[TokenType["DollarLBrace"] = 60] = "DollarLBrace";
1229
- TokenType[TokenType["Arrow"] = 61] = "Arrow";
1230
- TokenType[TokenType["DecimalLiteral"] = 62] = "DecimalLiteral";
1231
- TokenType[TokenType["HexadecimalLiteral"] = 63] = "HexadecimalLiteral";
1232
- TokenType[TokenType["BinaryLiteral"] = 64] = "BinaryLiteral";
1233
- TokenType[TokenType["RealLiteral"] = 65] = "RealLiteral";
1234
- TokenType[TokenType["StringLiteral"] = 66] = "StringLiteral";
1235
- TokenType[TokenType["Infinity"] = 67] = "Infinity";
1236
- TokenType[TokenType["NaN"] = 68] = "NaN";
1237
- TokenType[TokenType["True"] = 69] = "True";
1238
- TokenType[TokenType["False"] = 70] = "False";
1239
- TokenType[TokenType["Typeof"] = 71] = "Typeof";
1240
- TokenType[TokenType["Null"] = 72] = "Null";
1241
- TokenType[TokenType["Undefined"] = 73] = "Undefined";
1242
- TokenType[TokenType["In"] = 74] = "In";
1226
+ TokenType[TokenType["Backtick"] = 58] = "Backtick";
1227
+ TokenType[TokenType["DollarLBrace"] = 59] = "DollarLBrace";
1228
+ TokenType[TokenType["Arrow"] = 60] = "Arrow";
1229
+ TokenType[TokenType["DecimalLiteral"] = 61] = "DecimalLiteral";
1230
+ TokenType[TokenType["HexadecimalLiteral"] = 62] = "HexadecimalLiteral";
1231
+ TokenType[TokenType["BinaryLiteral"] = 63] = "BinaryLiteral";
1232
+ TokenType[TokenType["RealLiteral"] = 64] = "RealLiteral";
1233
+ TokenType[TokenType["StringLiteral"] = 65] = "StringLiteral";
1234
+ TokenType[TokenType["Infinity"] = 66] = "Infinity";
1235
+ TokenType[TokenType["NaN"] = 67] = "NaN";
1236
+ TokenType[TokenType["True"] = 68] = "True";
1237
+ TokenType[TokenType["False"] = 69] = "False";
1238
+ TokenType[TokenType["Typeof"] = 70] = "Typeof";
1239
+ TokenType[TokenType["Null"] = 71] = "Null";
1240
+ TokenType[TokenType["Undefined"] = 72] = "Undefined";
1241
+ TokenType[TokenType["In"] = 73] = "In";
1242
+ TokenType[TokenType["Instanceof"] = 74] = "Instanceof";
1243
1243
  TokenType[TokenType["Let"] = 75] = "Let";
1244
1244
  TokenType[TokenType["Const"] = 76] = "Const";
1245
1245
  TokenType[TokenType["Var"] = 77] = "Var";
@@ -1293,48 +1293,47 @@ var LexerPhase = /* @__PURE__ */ function(LexerPhase) {
1293
1293
  LexerPhase[LexerPhase["IdTail"] = 17] = "IdTail";
1294
1294
  LexerPhase[LexerPhase["Dot"] = 18] = "Dot";
1295
1295
  LexerPhase[LexerPhase["DotDot"] = 19] = "DotDot";
1296
- LexerPhase[LexerPhase["Colon"] = 20] = "Colon";
1297
- LexerPhase[LexerPhase["Zero"] = 21] = "Zero";
1298
- LexerPhase[LexerPhase["QuestionMark"] = 22] = "QuestionMark";
1299
- LexerPhase[LexerPhase["HexaFirst"] = 23] = "HexaFirst";
1300
- LexerPhase[LexerPhase["HexaTail"] = 24] = "HexaTail";
1301
- LexerPhase[LexerPhase["BinaryFirst"] = 25] = "BinaryFirst";
1302
- LexerPhase[LexerPhase["BinaryTail"] = 26] = "BinaryTail";
1303
- LexerPhase[LexerPhase["DecimalOrReal"] = 27] = "DecimalOrReal";
1304
- LexerPhase[LexerPhase["RealFractionalFirst"] = 28] = "RealFractionalFirst";
1305
- LexerPhase[LexerPhase["RealFractionalTail"] = 29] = "RealFractionalTail";
1306
- LexerPhase[LexerPhase["RealExponent"] = 30] = "RealExponent";
1307
- LexerPhase[LexerPhase["RealExponentSign"] = 31] = "RealExponentSign";
1308
- LexerPhase[LexerPhase["RealExponentTail"] = 32] = "RealExponentTail";
1309
- LexerPhase[LexerPhase["StringTemplateLiteralBackSlash"] = 33] = "StringTemplateLiteralBackSlash";
1310
- LexerPhase[LexerPhase["StringTemplateLiteral"] = 34] = "StringTemplateLiteral";
1311
- LexerPhase[LexerPhase["String"] = 35] = "String";
1312
- LexerPhase[LexerPhase["StringBackSlash"] = 36] = "StringBackSlash";
1313
- LexerPhase[LexerPhase["StringHexa1"] = 37] = "StringHexa1";
1314
- LexerPhase[LexerPhase["StringHexa2"] = 38] = "StringHexa2";
1315
- LexerPhase[LexerPhase["StringUHexa1"] = 39] = "StringUHexa1";
1316
- LexerPhase[LexerPhase["StringUHexa2"] = 40] = "StringUHexa2";
1317
- LexerPhase[LexerPhase["StringUHexa3"] = 41] = "StringUHexa3";
1318
- LexerPhase[LexerPhase["StringUHexa4"] = 42] = "StringUHexa4";
1319
- LexerPhase[LexerPhase["StringUcp1"] = 43] = "StringUcp1";
1320
- LexerPhase[LexerPhase["StringUcp2"] = 44] = "StringUcp2";
1321
- LexerPhase[LexerPhase["StringUcp3"] = 45] = "StringUcp3";
1322
- LexerPhase[LexerPhase["StringUcp4"] = 46] = "StringUcp4";
1323
- LexerPhase[LexerPhase["StringUcp5"] = 47] = "StringUcp5";
1324
- LexerPhase[LexerPhase["StringUcp6"] = 48] = "StringUcp6";
1325
- LexerPhase[LexerPhase["StringUcpTail"] = 49] = "StringUcpTail";
1326
- LexerPhase[LexerPhase["Exponent"] = 50] = "Exponent";
1327
- LexerPhase[LexerPhase["Plus"] = 51] = "Plus";
1328
- LexerPhase[LexerPhase["Minus"] = 52] = "Minus";
1329
- LexerPhase[LexerPhase["Divide"] = 53] = "Divide";
1330
- LexerPhase[LexerPhase["Remainder"] = 54] = "Remainder";
1331
- LexerPhase[LexerPhase["ShiftLeft"] = 55] = "ShiftLeft";
1332
- LexerPhase[LexerPhase["ShiftRight"] = 56] = "ShiftRight";
1333
- LexerPhase[LexerPhase["LogicalAnd"] = 57] = "LogicalAnd";
1334
- LexerPhase[LexerPhase["BitwiseXor"] = 58] = "BitwiseXor";
1335
- LexerPhase[LexerPhase["LogicalOr"] = 59] = "LogicalOr";
1336
- LexerPhase[LexerPhase["NullCoalesce"] = 60] = "NullCoalesce";
1337
- LexerPhase[LexerPhase["RegEx"] = 61] = "RegEx";
1296
+ LexerPhase[LexerPhase["Zero"] = 20] = "Zero";
1297
+ LexerPhase[LexerPhase["QuestionMark"] = 21] = "QuestionMark";
1298
+ LexerPhase[LexerPhase["HexaFirst"] = 22] = "HexaFirst";
1299
+ LexerPhase[LexerPhase["HexaTail"] = 23] = "HexaTail";
1300
+ LexerPhase[LexerPhase["BinaryFirst"] = 24] = "BinaryFirst";
1301
+ LexerPhase[LexerPhase["BinaryTail"] = 25] = "BinaryTail";
1302
+ LexerPhase[LexerPhase["DecimalOrReal"] = 26] = "DecimalOrReal";
1303
+ LexerPhase[LexerPhase["RealFractionalFirst"] = 27] = "RealFractionalFirst";
1304
+ LexerPhase[LexerPhase["RealFractionalTail"] = 28] = "RealFractionalTail";
1305
+ LexerPhase[LexerPhase["RealExponent"] = 29] = "RealExponent";
1306
+ LexerPhase[LexerPhase["RealExponentSign"] = 30] = "RealExponentSign";
1307
+ LexerPhase[LexerPhase["RealExponentTail"] = 31] = "RealExponentTail";
1308
+ LexerPhase[LexerPhase["StringTemplateLiteralBackSlash"] = 32] = "StringTemplateLiteralBackSlash";
1309
+ LexerPhase[LexerPhase["StringTemplateLiteral"] = 33] = "StringTemplateLiteral";
1310
+ LexerPhase[LexerPhase["String"] = 34] = "String";
1311
+ LexerPhase[LexerPhase["StringBackSlash"] = 35] = "StringBackSlash";
1312
+ LexerPhase[LexerPhase["StringHexa1"] = 36] = "StringHexa1";
1313
+ LexerPhase[LexerPhase["StringHexa2"] = 37] = "StringHexa2";
1314
+ LexerPhase[LexerPhase["StringUHexa1"] = 38] = "StringUHexa1";
1315
+ LexerPhase[LexerPhase["StringUHexa2"] = 39] = "StringUHexa2";
1316
+ LexerPhase[LexerPhase["StringUHexa3"] = 40] = "StringUHexa3";
1317
+ LexerPhase[LexerPhase["StringUHexa4"] = 41] = "StringUHexa4";
1318
+ LexerPhase[LexerPhase["StringUcp1"] = 42] = "StringUcp1";
1319
+ LexerPhase[LexerPhase["StringUcp2"] = 43] = "StringUcp2";
1320
+ LexerPhase[LexerPhase["StringUcp3"] = 44] = "StringUcp3";
1321
+ LexerPhase[LexerPhase["StringUcp4"] = 45] = "StringUcp4";
1322
+ LexerPhase[LexerPhase["StringUcp5"] = 46] = "StringUcp5";
1323
+ LexerPhase[LexerPhase["StringUcp6"] = 47] = "StringUcp6";
1324
+ LexerPhase[LexerPhase["StringUcpTail"] = 48] = "StringUcpTail";
1325
+ LexerPhase[LexerPhase["Exponent"] = 49] = "Exponent";
1326
+ LexerPhase[LexerPhase["Plus"] = 50] = "Plus";
1327
+ LexerPhase[LexerPhase["Minus"] = 51] = "Minus";
1328
+ LexerPhase[LexerPhase["Divide"] = 52] = "Divide";
1329
+ LexerPhase[LexerPhase["Remainder"] = 53] = "Remainder";
1330
+ LexerPhase[LexerPhase["ShiftLeft"] = 54] = "ShiftLeft";
1331
+ LexerPhase[LexerPhase["ShiftRight"] = 55] = "ShiftRight";
1332
+ LexerPhase[LexerPhase["LogicalAnd"] = 56] = "LogicalAnd";
1333
+ LexerPhase[LexerPhase["BitwiseXor"] = 57] = "BitwiseXor";
1334
+ LexerPhase[LexerPhase["LogicalOr"] = 58] = "LogicalOr";
1335
+ LexerPhase[LexerPhase["NullCoalesce"] = 59] = "NullCoalesce";
1336
+ LexerPhase[LexerPhase["RegEx"] = 60] = "RegEx";
1338
1337
  return LexerPhase;
1339
1338
  }(LexerPhase || {});
1340
1339
  /**
@@ -1506,10 +1505,7 @@ var Lexer = class {
1506
1505
  case ",": return completeToken(TokenType.Comma);
1507
1506
  case "(": return completeToken(TokenType.LParent);
1508
1507
  case ")": return completeToken(TokenType.RParent);
1509
- case ":":
1510
- phase = LexerPhase.Colon;
1511
- tokenType = TokenType.Colon;
1512
- break;
1508
+ case ":": return completeToken(TokenType.Colon);
1513
1509
  case "`": return completeToken(TokenType.Backtick);
1514
1510
  case "[": return completeToken(TokenType.LSquare);
1515
1511
  case "]": return completeToken(TokenType.RSquare);
@@ -1572,7 +1568,6 @@ var Lexer = class {
1572
1568
  case LexerPhase.IdTail:
1573
1569
  if (!isIdContinuation(ch)) return makeToken();
1574
1570
  break;
1575
- case LexerPhase.Colon: return ch === ":" ? completeToken(TokenType.Global) : makeToken();
1576
1571
  case LexerPhase.Slash:
1577
1572
  if (ch === "*") phase = LexerPhase.BlockCommentTrail1;
1578
1573
  else if (ch === "/") {
@@ -1983,6 +1978,7 @@ resolverHash.set("false", TokenType.False);
1983
1978
  resolverHash.set("undefined", TokenType.Undefined);
1984
1979
  resolverHash.set("null", TokenType.Null);
1985
1980
  resolverHash.set("in", TokenType.In);
1981
+ resolverHash.set("instanceof", TokenType.Instanceof);
1986
1982
  resolverHash.set("let", TokenType.Let);
1987
1983
  resolverHash.set("const", TokenType.Const);
1988
1984
  resolverHash.set("var", TokenType.Var);
@@ -2148,7 +2144,6 @@ const tokenTraits = {
2148
2144
  expressionStart: true,
2149
2145
  isPropLiteral: true
2150
2146
  },
2151
- [TokenType.Global]: { expressionStart: true },
2152
2147
  [TokenType.DecimalLiteral]: {
2153
2148
  expressionStart: true,
2154
2149
  isPropLiteral: true
@@ -2203,6 +2198,7 @@ const tokenTraits = {
2203
2198
  keywordLike: true
2204
2199
  },
2205
2200
  [TokenType.In]: { keywordLike: true },
2201
+ [TokenType.Instanceof]: { keywordLike: true },
2206
2202
  [TokenType.Let]: { keywordLike: true },
2207
2203
  [TokenType.Const]: { keywordLike: true },
2208
2204
  [TokenType.Var]: { keywordLike: true },
@@ -3763,7 +3759,7 @@ var Parser = class {
3763
3759
  }
3764
3760
  /**
3765
3761
  * relOrInExpr
3766
- * : shiftExpr ( ( "<" | "<=" | ">" | ">=", "in" ) shiftExpr )?
3762
+ * : shiftExpr ( ( "<" | "<=" | ">" | ">=", "in", "instanceof" ) shiftExpr )?
3767
3763
  * ;
3768
3764
  */
3769
3765
  parseRelOrInExpr() {
@@ -3771,7 +3767,7 @@ var Parser = class {
3771
3767
  let leftExpr = this.parseShiftExpr();
3772
3768
  if (!leftExpr) return null;
3773
3769
  let opType;
3774
- while (opType = this.skipTokens(TokenType.LessThan, TokenType.LessThanOrEqual, TokenType.GreaterThan, TokenType.GreaterThanOrEqual, TokenType.In)) {
3770
+ while (opType = this.skipTokens(TokenType.LessThan, TokenType.LessThanOrEqual, TokenType.GreaterThan, TokenType.GreaterThanOrEqual, TokenType.In, TokenType.Instanceof)) {
3775
3771
  const rightExpr = this.parseShiftExpr();
3776
3772
  if (!rightExpr) {
3777
3773
  this.reportError("W001");
@@ -4159,18 +4155,6 @@ var Parser = class {
4159
4155
  const idToken = this._lexer.get();
4160
4156
  return this.createExpressionNode(T_IDENTIFIER, { name: idToken.text }, idToken, idToken);
4161
4157
  }
4162
- case TokenType.Global: {
4163
- this._lexer.get();
4164
- const idToken = this._lexer.get();
4165
- if (idToken.type !== TokenType.Identifier) {
4166
- this.reportError("W003");
4167
- return null;
4168
- }
4169
- return this.createExpressionNode(T_IDENTIFIER, {
4170
- name: idToken.text,
4171
- isGlobal: true
4172
- }, idToken, idToken);
4173
- }
4174
4158
  case TokenType.Backtick: return this.parseTemplateLiteral();
4175
4159
  case TokenType.False:
4176
4160
  case TokenType.True: