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
@@ -603,23 +603,23 @@ var TokenType = /* @__PURE__ */ ((TokenType2) => {
603
603
  TokenType2[TokenType2["SignedShiftRight"] = 55] = "SignedShiftRight";
604
604
  TokenType2[TokenType2["Dot"] = 56] = "Dot";
605
605
  TokenType2[TokenType2["Spread"] = 57] = "Spread";
606
- TokenType2[TokenType2["Global"] = 58] = "Global";
607
- TokenType2[TokenType2["Backtick"] = 59] = "Backtick";
608
- TokenType2[TokenType2["DollarLBrace"] = 60] = "DollarLBrace";
609
- TokenType2[TokenType2["Arrow"] = 61] = "Arrow";
610
- TokenType2[TokenType2["DecimalLiteral"] = 62] = "DecimalLiteral";
611
- TokenType2[TokenType2["HexadecimalLiteral"] = 63] = "HexadecimalLiteral";
612
- TokenType2[TokenType2["BinaryLiteral"] = 64] = "BinaryLiteral";
613
- TokenType2[TokenType2["RealLiteral"] = 65] = "RealLiteral";
614
- TokenType2[TokenType2["StringLiteral"] = 66] = "StringLiteral";
615
- TokenType2[TokenType2["Infinity"] = 67] = "Infinity";
616
- TokenType2[TokenType2["NaN"] = 68] = "NaN";
617
- TokenType2[TokenType2["True"] = 69] = "True";
618
- TokenType2[TokenType2["False"] = 70] = "False";
619
- TokenType2[TokenType2["Typeof"] = 71] = "Typeof";
620
- TokenType2[TokenType2["Null"] = 72] = "Null";
621
- TokenType2[TokenType2["Undefined"] = 73] = "Undefined";
622
- TokenType2[TokenType2["In"] = 74] = "In";
606
+ TokenType2[TokenType2["Backtick"] = 58] = "Backtick";
607
+ TokenType2[TokenType2["DollarLBrace"] = 59] = "DollarLBrace";
608
+ TokenType2[TokenType2["Arrow"] = 60] = "Arrow";
609
+ TokenType2[TokenType2["DecimalLiteral"] = 61] = "DecimalLiteral";
610
+ TokenType2[TokenType2["HexadecimalLiteral"] = 62] = "HexadecimalLiteral";
611
+ TokenType2[TokenType2["BinaryLiteral"] = 63] = "BinaryLiteral";
612
+ TokenType2[TokenType2["RealLiteral"] = 64] = "RealLiteral";
613
+ TokenType2[TokenType2["StringLiteral"] = 65] = "StringLiteral";
614
+ TokenType2[TokenType2["Infinity"] = 66] = "Infinity";
615
+ TokenType2[TokenType2["NaN"] = 67] = "NaN";
616
+ TokenType2[TokenType2["True"] = 68] = "True";
617
+ TokenType2[TokenType2["False"] = 69] = "False";
618
+ TokenType2[TokenType2["Typeof"] = 70] = "Typeof";
619
+ TokenType2[TokenType2["Null"] = 71] = "Null";
620
+ TokenType2[TokenType2["Undefined"] = 72] = "Undefined";
621
+ TokenType2[TokenType2["In"] = 73] = "In";
622
+ TokenType2[TokenType2["Instanceof"] = 74] = "Instanceof";
623
623
  TokenType2[TokenType2["Let"] = 75] = "Let";
624
624
  TokenType2[TokenType2["Const"] = 76] = "Const";
625
625
  TokenType2[TokenType2["Var"] = 77] = "Var";
@@ -724,7 +724,7 @@ class Lexer {
724
724
  * Call this after the first opening backing and after the parser is done with parsing a placeholder, after the right brace.
725
725
  */
726
726
  setStartingPhaseToTemplateLiteral() {
727
- this._phaseExternallySet = 34;
727
+ this._phaseExternallySet = 33;
728
728
  }
729
729
  /**
730
730
  * Fetches the next character from the input stream
@@ -797,19 +797,19 @@ class Lexer {
797
797
  tokenType = TokenType.Multiply;
798
798
  break;
799
799
  case "%":
800
- phase = 54;
800
+ phase = 53;
801
801
  tokenType = TokenType.Remainder;
802
802
  break;
803
803
  case "+":
804
- phase = 51;
804
+ phase = 50;
805
805
  tokenType = TokenType.Plus;
806
806
  break;
807
807
  case "-":
808
- phase = 52;
808
+ phase = 51;
809
809
  tokenType = TokenType.Minus;
810
810
  break;
811
811
  case "^":
812
- phase = 58;
812
+ phase = 57;
813
813
  tokenType = TokenType.BitwiseXor;
814
814
  break;
815
815
  // --- BitwiseOr, LogicalOr
@@ -824,7 +824,7 @@ class Lexer {
824
824
  break;
825
825
  // --- "?", "?", or "?."
826
826
  case "?":
827
- phase = 22;
827
+ phase = 21;
828
828
  tokenType = TokenType.QuestionMark;
829
829
  break;
830
830
  case ";":
@@ -835,11 +835,9 @@ class Lexer {
835
835
  return completeToken(TokenType.LParent);
836
836
  case ")":
837
837
  return completeToken(TokenType.RParent);
838
- // --- ":" or "::"
838
+ // --- ":"
839
839
  case ":":
840
- phase = 20;
841
- tokenType = TokenType.Colon;
842
- break;
840
+ return completeToken(TokenType.Colon);
843
841
  case "`":
844
842
  return completeToken(TokenType.Backtick);
845
843
  case "[":
@@ -874,7 +872,7 @@ class Lexer {
874
872
  break;
875
873
  // --- Decimal or Real literal
876
874
  case "0":
877
- phase = 21;
875
+ phase = 20;
878
876
  tokenType = TokenType.DecimalLiteral;
879
877
  break;
880
878
  case ".":
@@ -885,7 +883,7 @@ class Lexer {
885
883
  case '"':
886
884
  case "'":
887
885
  stringState = ch;
888
- phase = 35;
886
+ phase = 34;
889
887
  break;
890
888
  default:
891
889
  if (isIdStart(ch)) {
@@ -893,7 +891,7 @@ class Lexer {
893
891
  phase = 17;
894
892
  tokenType = TokenType.Identifier;
895
893
  } else if (isDecimalDigit(ch)) {
896
- phase = 27;
894
+ phase = 26;
897
895
  tokenType = TokenType.DecimalLiteral;
898
896
  } else {
899
897
  completeToken(TokenType.Unknown);
@@ -935,8 +933,6 @@ class Lexer {
935
933
  break;
936
934
  // ====================================================================
937
935
  // Process miscellaneous tokens
938
- case 20:
939
- return ch === ":" ? completeToken(TokenType.Global) : makeToken();
940
936
  case 5:
941
937
  if (ch === "*") {
942
938
  phase = 3;
@@ -949,58 +945,58 @@ class Lexer {
949
945
  return makeToken();
950
946
  }
951
947
  break;
952
- case 51:
948
+ case 50:
953
949
  if (ch === "+") {
954
950
  return completeToken(TokenType.IncOp);
955
951
  }
956
952
  return ch === "=" ? completeToken(TokenType.AddAssignment) : makeToken();
957
- case 52:
953
+ case 51:
958
954
  if (ch === "-") {
959
955
  return completeToken(TokenType.DecOp);
960
956
  }
961
957
  return ch === "=" ? completeToken(TokenType.SubtractAssignment) : makeToken();
962
- case 54:
958
+ case 53:
963
959
  return ch === "=" ? completeToken(TokenType.RemainderAssignment) : makeToken();
964
- case 58:
960
+ case 57:
965
961
  return ch === "=" ? completeToken(TokenType.BitwiseXorAssignment) : makeToken();
966
962
  case 7:
967
963
  if (ch === "=") {
968
964
  return completeToken(TokenType.BitwiseOrAssignment);
969
965
  }
970
966
  if (ch === "|") {
971
- phase = 59;
967
+ phase = 58;
972
968
  tokenType = TokenType.LogicalOr;
973
969
  break;
974
970
  }
975
971
  return makeToken();
976
- case 59:
972
+ case 58:
977
973
  return ch === "=" ? completeToken(TokenType.LogicalOrAssignment) : makeToken();
978
974
  case 9:
979
975
  if (ch === "=") {
980
976
  return completeToken(TokenType.BitwiseAndAssignment);
981
977
  }
982
978
  if (ch === "&") {
983
- phase = 57;
979
+ phase = 56;
984
980
  tokenType = TokenType.LogicalAnd;
985
981
  break;
986
982
  }
987
983
  return makeToken();
988
- case 57:
984
+ case 56:
989
985
  return ch === "=" ? completeToken(TokenType.LogicalAndAssignment) : makeToken();
990
986
  case 8:
991
987
  if (ch === "*") {
992
- phase = 50;
988
+ phase = 49;
993
989
  tokenType = TokenType.Exponent;
994
990
  break;
995
991
  } else if (ch === "=") {
996
992
  return completeToken(TokenType.MultiplyAssignment);
997
993
  }
998
994
  return makeToken();
999
- case 50:
995
+ case 49:
1000
996
  return ch === "=" ? completeToken(TokenType.ExponentAssignment) : makeToken();
1001
- case 22:
997
+ case 21:
1002
998
  if (ch === "?") {
1003
- phase = 60;
999
+ phase = 59;
1004
1000
  tokenType = TokenType.NullCoalesce;
1005
1001
  break;
1006
1002
  }
@@ -1008,7 +1004,7 @@ class Lexer {
1008
1004
  return completeToken(TokenType.OptionalChaining);
1009
1005
  }
1010
1006
  return makeToken();
1011
- case 60:
1007
+ case 59:
1012
1008
  return ch === "=" ? completeToken(TokenType.NullCoalesceAssignment) : makeToken();
1013
1009
  case 10:
1014
1010
  if (ch === ">") {
@@ -1036,12 +1032,12 @@ class Lexer {
1036
1032
  return completeToken(TokenType.LessThanOrEqual);
1037
1033
  }
1038
1034
  if (ch === "<") {
1039
- phase = 55;
1035
+ phase = 54;
1040
1036
  tokenType = TokenType.ShiftLeft;
1041
1037
  break;
1042
1038
  }
1043
1039
  return makeToken();
1044
- case 55:
1040
+ case 54:
1045
1041
  return ch === "=" ? completeToken(TokenType.ShiftLeftAssignment) : makeToken();
1046
1042
  case 15:
1047
1043
  if (ch === "=") {
@@ -1055,7 +1051,7 @@ class Lexer {
1055
1051
  return makeToken();
1056
1052
  case 16:
1057
1053
  if (ch === ">") {
1058
- phase = 56;
1054
+ phase = 55;
1059
1055
  tokenType = TokenType.ShiftRight;
1060
1056
  break;
1061
1057
  }
@@ -1063,24 +1059,24 @@ class Lexer {
1063
1059
  return completeToken(TokenType.SignedShiftRightAssignment);
1064
1060
  }
1065
1061
  return makeToken();
1066
- case 56:
1062
+ case 55:
1067
1063
  return ch === "=" ? completeToken(TokenType.ShiftRightAssignment) : makeToken();
1068
1064
  // ====================================================================
1069
1065
  // --- Literals
1070
- case 21:
1066
+ case 20:
1071
1067
  if (ch === "x") {
1072
- phase = 23;
1068
+ phase = 22;
1073
1069
  tokenType = TokenType.Unknown;
1074
1070
  } else if (ch === "b") {
1075
- phase = 25;
1071
+ phase = 24;
1076
1072
  tokenType = TokenType.Unknown;
1077
1073
  } else if (isDecimalDigit(ch) || ch === "_") {
1078
- phase = 27;
1074
+ phase = 26;
1079
1075
  } else if (ch === ".") {
1080
- phase = 28;
1076
+ phase = 27;
1081
1077
  tokenType = TokenType.Unknown;
1082
1078
  } else if (ch === "e" || ch === "E") {
1083
- phase = 30;
1079
+ phase = 29;
1084
1080
  tokenType = TokenType.Unknown;
1085
1081
  } else {
1086
1082
  return makeToken();
@@ -1095,92 +1091,92 @@ class Lexer {
1095
1091
  if (!isDecimalDigit(ch)) {
1096
1092
  return makeToken();
1097
1093
  }
1098
- phase = 29;
1094
+ phase = 28;
1099
1095
  tokenType = TokenType.RealLiteral;
1100
1096
  break;
1101
1097
  case 19:
1102
1098
  return ch === "." ? completeToken(TokenType.Spread) : makeToken();
1103
- case 23:
1099
+ case 22:
1104
1100
  if (ch === "_") {
1105
1101
  break;
1106
1102
  }
1107
1103
  if (!isHexadecimalDigit(ch)) {
1108
1104
  return makeToken();
1109
1105
  }
1110
- phase = 24;
1106
+ phase = 23;
1111
1107
  tokenType = TokenType.HexadecimalLiteral;
1112
1108
  break;
1113
- case 24:
1109
+ case 23:
1114
1110
  if (!isHexadecimalDigit(ch) && ch !== "_") {
1115
1111
  return makeToken();
1116
1112
  }
1117
1113
  break;
1118
- case 25:
1114
+ case 24:
1119
1115
  if (ch === "_") {
1120
1116
  break;
1121
1117
  }
1122
1118
  if (!isBinaryDigit(ch)) {
1123
1119
  return makeToken();
1124
1120
  }
1125
- phase = 26;
1121
+ phase = 25;
1126
1122
  tokenType = TokenType.BinaryLiteral;
1127
1123
  break;
1128
- case 26:
1124
+ case 25:
1129
1125
  if (!isBinaryDigit(ch) && ch !== "_") {
1130
1126
  return makeToken();
1131
1127
  }
1132
1128
  tokenType = TokenType.BinaryLiteral;
1133
1129
  break;
1134
- case 27:
1130
+ case 26:
1135
1131
  if (isDecimalDigit(ch) || ch === "_") {
1136
1132
  break;
1137
1133
  } else if (ch === "." && (this.input.peek() === null || isDecimalDigit(this.input.peek()))) {
1138
- phase = 28;
1134
+ phase = 27;
1139
1135
  tokenType = TokenType.Unknown;
1140
1136
  } else if (ch === "e" || ch === "E") {
1141
- phase = 30;
1137
+ phase = 29;
1142
1138
  tokenType = TokenType.Unknown;
1143
1139
  } else {
1144
1140
  return makeToken();
1145
1141
  }
1146
1142
  break;
1147
- case 28:
1143
+ case 27:
1148
1144
  if (isDecimalDigit(ch)) {
1149
- phase = 29;
1145
+ phase = 28;
1150
1146
  tokenType = TokenType.RealLiteral;
1151
1147
  } else if (ch === "e" || ch === "E") {
1152
- phase = 30;
1148
+ phase = 29;
1153
1149
  } else {
1154
1150
  return makeToken();
1155
1151
  }
1156
1152
  break;
1157
- case 29:
1153
+ case 28:
1158
1154
  if (ch === "e" || ch === "E") {
1159
- phase = 30;
1155
+ phase = 29;
1160
1156
  tokenType = TokenType.Unknown;
1161
1157
  } else if (!isDecimalDigit(ch) && ch !== "_") {
1162
1158
  return makeToken();
1163
1159
  }
1164
1160
  break;
1165
- case 30:
1161
+ case 29:
1166
1162
  if (ch === "+" || ch === "-") {
1167
- phase = 31;
1163
+ phase = 30;
1168
1164
  } else if (isDecimalDigit(ch)) {
1169
- phase = 32;
1165
+ phase = 31;
1170
1166
  tokenType = TokenType.RealLiteral;
1171
1167
  } else {
1172
1168
  return makeToken();
1173
1169
  }
1174
1170
  break;
1175
- case 31:
1171
+ case 30:
1176
1172
  if (isDecimalDigit(ch)) {
1177
- phase = 32;
1173
+ phase = 31;
1178
1174
  tokenType = TokenType.RealLiteral;
1179
1175
  } else {
1180
1176
  return makeToken();
1181
1177
  }
1182
1178
  break;
1183
- case 32:
1179
+ case 31:
1184
1180
  if (!isDecimalDigit(ch)) {
1185
1181
  return makeToken();
1186
1182
  }
@@ -1197,8 +1193,8 @@ class Lexer {
1197
1193
  makeToken();
1198
1194
  }
1199
1195
  break;
1200
- case 33: {
1201
- phase = 34;
1196
+ case 32: {
1197
+ phase = 33;
1202
1198
  const charAhead12 = this.input.ahead(0);
1203
1199
  const charAhead22 = this.input.ahead(1);
1204
1200
  if (charAhead12 === "`" || charAhead12 === "$" && charAhead22 === "{") {
@@ -1206,10 +1202,10 @@ class Lexer {
1206
1202
  }
1207
1203
  break;
1208
1204
  }
1209
- case 34:
1205
+ case 33:
1210
1206
  switch (ch) {
1211
1207
  case "\\":
1212
- phase = 33;
1208
+ phase = 32;
1213
1209
  tokenType = TokenType.Unknown;
1214
1210
  break phaseSwitch;
1215
1211
  case "`":
@@ -1228,18 +1224,18 @@ class Lexer {
1228
1224
  return completeToken(TokenType.StringLiteral);
1229
1225
  }
1230
1226
  break;
1231
- case 35:
1227
+ case 34:
1232
1228
  if (ch === stringState) {
1233
1229
  return completeToken(TokenType.StringLiteral);
1234
1230
  } else if (isRestrictedInString(ch)) {
1235
1231
  return completeToken(TokenType.Unknown);
1236
1232
  } else if (ch === "\\") {
1237
- phase = 36;
1233
+ phase = 35;
1238
1234
  tokenType = TokenType.Unknown;
1239
1235
  }
1240
1236
  break;
1241
1237
  // Start of string character escape
1242
- case 36:
1238
+ case 35:
1243
1239
  switch (ch) {
1244
1240
  case "b":
1245
1241
  case "f":
@@ -1253,133 +1249,133 @@ class Lexer {
1253
1249
  case '"':
1254
1250
  case "`":
1255
1251
  case "\\":
1256
- phase = 35;
1252
+ phase = 34;
1257
1253
  break;
1258
1254
  case "x":
1259
- phase = 37;
1255
+ phase = 36;
1260
1256
  break;
1261
1257
  case "u":
1262
- phase = 39;
1258
+ phase = 38;
1263
1259
  break;
1264
1260
  default:
1265
- phase = 35;
1261
+ phase = 34;
1266
1262
  break;
1267
1263
  }
1268
1264
  break;
1269
1265
  // --- First hexadecimal digit of string character escape
1270
- case 37:
1266
+ case 36:
1271
1267
  if (isHexadecimalDigit(ch)) {
1272
- phase = 38;
1268
+ phase = 37;
1273
1269
  } else {
1274
1270
  return completeToken(TokenType.Unknown);
1275
1271
  }
1276
1272
  break;
1277
1273
  // --- Second hexadecimal digit of character escape
1278
- case 38:
1274
+ case 37:
1279
1275
  if (isHexadecimalDigit(ch)) {
1280
- phase = 35;
1276
+ phase = 34;
1281
1277
  } else {
1282
1278
  return completeToken(TokenType.Unknown);
1283
1279
  }
1284
1280
  break;
1285
1281
  // --- First hexadecimal digit of Unicode string character escape
1286
- case 39:
1282
+ case 38:
1287
1283
  if (ch === "{") {
1288
- phase = 43;
1284
+ phase = 42;
1289
1285
  break;
1290
1286
  }
1291
1287
  if (isHexadecimalDigit(ch)) {
1292
- phase = 40;
1288
+ phase = 39;
1293
1289
  } else {
1294
1290
  return completeToken(TokenType.Unknown);
1295
1291
  }
1296
1292
  break;
1297
1293
  // --- Second hexadecimal digit of Unicode string character escape
1298
- case 40:
1294
+ case 39:
1299
1295
  if (isHexadecimalDigit(ch)) {
1300
- phase = 41;
1296
+ phase = 40;
1301
1297
  } else {
1302
1298
  return completeToken(TokenType.Unknown);
1303
1299
  }
1304
1300
  break;
1305
1301
  // --- Third hexadecimal digit of Unicode string character escape
1306
- case 41:
1302
+ case 40:
1307
1303
  if (isHexadecimalDigit(ch)) {
1308
- phase = 42;
1304
+ phase = 41;
1309
1305
  } else {
1310
1306
  return completeToken(TokenType.Unknown);
1311
1307
  }
1312
1308
  break;
1313
1309
  // --- Fourth hexadecimal digit of Unicode string character escape
1314
- case 42:
1310
+ case 41:
1315
1311
  if (isHexadecimalDigit(ch)) {
1316
- phase = 35;
1312
+ phase = 34;
1317
1313
  } else {
1318
1314
  return completeToken(TokenType.Unknown);
1319
1315
  }
1320
1316
  break;
1321
1317
  // --- First hexadecimal digit of Unicode codepoint string character escape
1322
- case 43:
1318
+ case 42:
1323
1319
  if (isHexadecimalDigit(ch)) {
1324
- phase = 44;
1320
+ phase = 43;
1325
1321
  } else {
1326
1322
  return completeToken(TokenType.Unknown);
1327
1323
  }
1328
1324
  break;
1329
1325
  // --- Second hexadecimal digit of Unicode codepoint string character escape
1330
- case 44:
1326
+ case 43:
1331
1327
  if (ch === "}") {
1332
- phase = 35;
1328
+ phase = 34;
1333
1329
  } else if (isHexadecimalDigit(ch)) {
1334
- phase = 45;
1330
+ phase = 44;
1335
1331
  } else {
1336
1332
  return completeToken(TokenType.Unknown);
1337
1333
  }
1338
1334
  break;
1339
1335
  // --- Third hexadecimal digit of Unicode codepoint string character escape
1340
- case 45:
1336
+ case 44:
1341
1337
  if (ch === "}") {
1342
- phase = 35;
1338
+ phase = 34;
1343
1339
  } else if (isHexadecimalDigit(ch)) {
1344
- phase = 46;
1340
+ phase = 45;
1345
1341
  } else {
1346
1342
  return completeToken(TokenType.Unknown);
1347
1343
  }
1348
1344
  break;
1349
1345
  // --- Fourth hexadecimal digit of Unicode codepoint string character escape
1350
- case 46:
1346
+ case 45:
1351
1347
  if (ch === "}") {
1352
- phase = 35;
1348
+ phase = 34;
1353
1349
  } else if (isHexadecimalDigit(ch)) {
1354
- phase = 47;
1350
+ phase = 46;
1355
1351
  } else {
1356
1352
  return completeToken(TokenType.Unknown);
1357
1353
  }
1358
1354
  break;
1359
1355
  // --- Fifth hexadecimal digit of Unicode codepoint string character escape
1360
- case 47:
1356
+ case 46:
1361
1357
  if (ch === "}") {
1362
- phase = 35;
1358
+ phase = 34;
1363
1359
  } else if (isHexadecimalDigit(ch)) {
1364
- phase = 48;
1360
+ phase = 47;
1365
1361
  } else {
1366
1362
  return completeToken(TokenType.Unknown);
1367
1363
  }
1368
1364
  break;
1369
1365
  // --- Sixth hexadecimal digit of Unicode codepoint string character escape
1370
- case 48:
1366
+ case 47:
1371
1367
  if (ch === "}") {
1372
- phase = 35;
1368
+ phase = 34;
1373
1369
  } else if (isHexadecimalDigit(ch)) {
1374
- phase = 49;
1370
+ phase = 48;
1375
1371
  } else {
1376
1372
  return completeToken(TokenType.Unknown);
1377
1373
  }
1378
1374
  break;
1379
1375
  // --- Closing bracket of Unicode codepoint string character escape
1380
- case 49:
1376
+ case 48:
1381
1377
  if (ch === "}") {
1382
- phase = 35;
1378
+ phase = 34;
1383
1379
  } else {
1384
1380
  return completeToken(TokenType.Unknown);
1385
1381
  }
@@ -1492,6 +1488,7 @@ resolverHash.set("false", TokenType.False);
1492
1488
  resolverHash.set("undefined", TokenType.Undefined);
1493
1489
  resolverHash.set("null", TokenType.Null);
1494
1490
  resolverHash.set("in", TokenType.In);
1491
+ resolverHash.set("instanceof", TokenType.Instanceof);
1495
1492
  resolverHash.set("let", TokenType.Let);
1496
1493
  resolverHash.set("const", TokenType.Const);
1497
1494
  resolverHash.set("var", TokenType.Var);
@@ -1703,7 +1700,6 @@ const tokenTraits = {
1703
1700
  [TokenType.SignedShiftRight]: {},
1704
1701
  [TokenType.Dot]: {},
1705
1702
  [TokenType.Spread]: { expressionStart: true, isPropLiteral: true },
1706
- [TokenType.Global]: { expressionStart: true },
1707
1703
  [TokenType.DecimalLiteral]: { expressionStart: true, isPropLiteral: true },
1708
1704
  [TokenType.HexadecimalLiteral]: { expressionStart: true, isPropLiteral: true },
1709
1705
  [TokenType.BinaryLiteral]: { expressionStart: true, isPropLiteral: true },
@@ -1719,6 +1715,7 @@ const tokenTraits = {
1719
1715
  [TokenType.Null]: { expressionStart: true, keywordLike: true },
1720
1716
  [TokenType.Undefined]: { expressionStart: true, keywordLike: true },
1721
1717
  [TokenType.In]: { keywordLike: true },
1718
+ [TokenType.Instanceof]: { keywordLike: true },
1722
1719
  [TokenType.Let]: { keywordLike: true },
1723
1720
  [TokenType.Const]: { keywordLike: true },
1724
1721
  [TokenType.Var]: { keywordLike: true },
@@ -3683,7 +3680,7 @@ class Parser {
3683
3680
  }
3684
3681
  /**
3685
3682
  * relOrInExpr
3686
- * : shiftExpr ( ( "<" | "<=" | ">" | ">=", "in" ) shiftExpr )?
3683
+ * : shiftExpr ( ( "<" | "<=" | ">" | ">=", "in", "instanceof" ) shiftExpr )?
3687
3684
  * ;
3688
3685
  */
3689
3686
  parseRelOrInExpr() {
@@ -3698,7 +3695,8 @@ class Parser {
3698
3695
  TokenType.LessThanOrEqual,
3699
3696
  TokenType.GreaterThan,
3700
3697
  TokenType.GreaterThanOrEqual,
3701
- TokenType.In
3698
+ TokenType.In,
3699
+ TokenType.Instanceof
3702
3700
  )) {
3703
3701
  const rightExpr = this.parseShiftExpr();
3704
3702
  if (!rightExpr) {
@@ -4230,23 +4228,6 @@ class Parser {
4230
4228
  idToken
4231
4229
  );
4232
4230
  }
4233
- case TokenType.Global: {
4234
- this._lexer.get();
4235
- const idToken = this._lexer.get();
4236
- if (idToken.type !== TokenType.Identifier) {
4237
- this.reportError("W003");
4238
- return null;
4239
- }
4240
- return this.createExpressionNode(
4241
- T_IDENTIFIER,
4242
- {
4243
- name: idToken.text,
4244
- isGlobal: true
4245
- },
4246
- idToken,
4247
- idToken
4248
- );
4249
- }
4250
4231
  case TokenType.Backtick:
4251
4232
  return this.parseTemplateLiteral();
4252
4233
  case TokenType.False: