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.
- package/dist/lib/{index-WVT6bIgM.js → index-CznbWBUF.js} +3224 -4066
- package/dist/lib/index.css +1 -1
- package/dist/lib/{initMock-r2IRBsLf.js → initMock-Dj__hABf.js} +2 -2
- package/dist/lib/{parser-DpwXEUNb.js → parser-zOoMLvLx.js} +120 -139
- package/dist/lib/testing.d.ts +18 -19
- package/dist/lib/testing.js +2 -2
- package/dist/lib/{xmlui-parser-Cs8kB0VK.js → xmlui-parser-CtU8O3Av.js} +43 -19
- package/dist/lib/xmlui-parser.d.ts +23 -19
- package/dist/lib/xmlui-parser.js +2 -2
- package/dist/lib/{xmlui-serializer-3MPLSsOp.js → xmlui-serializer-C-Iuczzr.js} +9 -8
- package/dist/lib/xmlui.d.ts +130 -125
- package/dist/lib/xmlui.js +38 -36
- package/dist/metadata/TextBox-B-GWiq0J.cjs +1 -0
- package/dist/metadata/{TextBox-CwicjBJI.js → TextBox-DHSTy0g0.js} +3407 -4256
- package/dist/metadata/behaviors.cjs +1 -1
- package/dist/metadata/behaviors.js +1 -1
- package/dist/metadata/{initMock-BMq6JN4I.js → initMock-SQIcDMzP.js} +1 -1
- package/dist/metadata/{initMock-BKBkbEgr.cjs → initMock-wSFvfKcr.cjs} +1 -1
- package/dist/metadata/metadata-utils.cjs +1 -1
- package/dist/metadata/metadata-utils.js +1 -1
- package/dist/metadata/transform-BOf-UbgP.cjs +1 -0
- package/dist/metadata/{transform-D0SWbm8g.js → transform-fGDqiHwH.js} +120 -139
- package/dist/metadata/xmlui-metadata.cjs +1 -1
- package/dist/metadata/xmlui-metadata.js +12 -8
- package/dist/metadata/xmlui.css +2 -2
- package/dist/nodejs/bin/index.mjs +63 -79
- package/dist/nodejs/index.cjs +63 -79
- package/dist/nodejs/index.mjs +63 -79
- package/dist/nodejs/server.cjs +1886 -1053
- package/dist/nodejs/server.mjs +1886 -1053
- package/dist/nodejs/vite-xmlui-plugin.cjs +63 -79
- package/dist/nodejs/vite-xmlui-plugin.mjs +63 -79
- package/dist/standalone/xmlui-standalone.es.d.ts +192 -179
- package/dist/standalone/xmlui-standalone.umd.js +11 -11
- package/package.json +1 -1
- package/dist/metadata/TextBox-C-4gnBpw.cjs +0 -1
- package/dist/metadata/transform-CkTQ-Bfe.cjs +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { delay as delay$1, HttpResponse, matchRequestUrl } from "msw";
|
|
2
2
|
import { isArray, isObject, mapValues } from "lodash-es";
|
|
3
|
-
import { h as delay, o as orderBy, T as ThrowStatementError } from "./xmlui-serializer-
|
|
4
|
-
import { r as runEventHandlerCode, g as getDate, m as miscellaneousUtils, d as dateFunctions } from "./index-
|
|
3
|
+
import { h as delay, o as orderBy, T as ThrowStatementError } from "./xmlui-serializer-C-Iuczzr.js";
|
|
4
|
+
import { r as runEventHandlerCode, g as getDate, m as miscellaneousUtils, d as dateFunctions } from "./index-CznbWBUF.js";
|
|
5
5
|
import Dexie from "dexie";
|
|
6
6
|
var HttpStatusCode = /* @__PURE__ */ ((HttpStatusCode2) => {
|
|
7
7
|
HttpStatusCode2[HttpStatusCode2["Continue"] = 100] = "Continue";
|
|
@@ -273,23 +273,23 @@ var TokenType = /* @__PURE__ */ ((TokenType2) => {
|
|
|
273
273
|
TokenType2[TokenType2["SignedShiftRight"] = 55] = "SignedShiftRight";
|
|
274
274
|
TokenType2[TokenType2["Dot"] = 56] = "Dot";
|
|
275
275
|
TokenType2[TokenType2["Spread"] = 57] = "Spread";
|
|
276
|
-
TokenType2[TokenType2["
|
|
277
|
-
TokenType2[TokenType2["
|
|
278
|
-
TokenType2[TokenType2["
|
|
279
|
-
TokenType2[TokenType2["
|
|
280
|
-
TokenType2[TokenType2["
|
|
281
|
-
TokenType2[TokenType2["
|
|
282
|
-
TokenType2[TokenType2["
|
|
283
|
-
TokenType2[TokenType2["
|
|
284
|
-
TokenType2[TokenType2["
|
|
285
|
-
TokenType2[TokenType2["
|
|
286
|
-
TokenType2[TokenType2["
|
|
287
|
-
TokenType2[TokenType2["
|
|
288
|
-
TokenType2[TokenType2["
|
|
289
|
-
TokenType2[TokenType2["
|
|
290
|
-
TokenType2[TokenType2["
|
|
291
|
-
TokenType2[TokenType2["
|
|
292
|
-
TokenType2[TokenType2["
|
|
276
|
+
TokenType2[TokenType2["Backtick"] = 58] = "Backtick";
|
|
277
|
+
TokenType2[TokenType2["DollarLBrace"] = 59] = "DollarLBrace";
|
|
278
|
+
TokenType2[TokenType2["Arrow"] = 60] = "Arrow";
|
|
279
|
+
TokenType2[TokenType2["DecimalLiteral"] = 61] = "DecimalLiteral";
|
|
280
|
+
TokenType2[TokenType2["HexadecimalLiteral"] = 62] = "HexadecimalLiteral";
|
|
281
|
+
TokenType2[TokenType2["BinaryLiteral"] = 63] = "BinaryLiteral";
|
|
282
|
+
TokenType2[TokenType2["RealLiteral"] = 64] = "RealLiteral";
|
|
283
|
+
TokenType2[TokenType2["StringLiteral"] = 65] = "StringLiteral";
|
|
284
|
+
TokenType2[TokenType2["Infinity"] = 66] = "Infinity";
|
|
285
|
+
TokenType2[TokenType2["NaN"] = 67] = "NaN";
|
|
286
|
+
TokenType2[TokenType2["True"] = 68] = "True";
|
|
287
|
+
TokenType2[TokenType2["False"] = 69] = "False";
|
|
288
|
+
TokenType2[TokenType2["Typeof"] = 70] = "Typeof";
|
|
289
|
+
TokenType2[TokenType2["Null"] = 71] = "Null";
|
|
290
|
+
TokenType2[TokenType2["Undefined"] = 72] = "Undefined";
|
|
291
|
+
TokenType2[TokenType2["In"] = 73] = "In";
|
|
292
|
+
TokenType2[TokenType2["Instanceof"] = 74] = "Instanceof";
|
|
293
293
|
TokenType2[TokenType2["Let"] = 75] = "Let";
|
|
294
294
|
TokenType2[TokenType2["Const"] = 76] = "Const";
|
|
295
295
|
TokenType2[TokenType2["Var"] = 77] = "Var";
|
|
@@ -394,7 +394,7 @@ class Lexer {
|
|
|
394
394
|
* Call this after the first opening backing and after the parser is done with parsing a placeholder, after the right brace.
|
|
395
395
|
*/
|
|
396
396
|
setStartingPhaseToTemplateLiteral() {
|
|
397
|
-
this._phaseExternallySet =
|
|
397
|
+
this._phaseExternallySet = 33;
|
|
398
398
|
}
|
|
399
399
|
/**
|
|
400
400
|
* Fetches the next character from the input stream
|
|
@@ -467,19 +467,19 @@ class Lexer {
|
|
|
467
467
|
tokenType = TokenType.Multiply;
|
|
468
468
|
break;
|
|
469
469
|
case "%":
|
|
470
|
-
phase =
|
|
470
|
+
phase = 53;
|
|
471
471
|
tokenType = TokenType.Remainder;
|
|
472
472
|
break;
|
|
473
473
|
case "+":
|
|
474
|
-
phase =
|
|
474
|
+
phase = 50;
|
|
475
475
|
tokenType = TokenType.Plus;
|
|
476
476
|
break;
|
|
477
477
|
case "-":
|
|
478
|
-
phase =
|
|
478
|
+
phase = 51;
|
|
479
479
|
tokenType = TokenType.Minus;
|
|
480
480
|
break;
|
|
481
481
|
case "^":
|
|
482
|
-
phase =
|
|
482
|
+
phase = 57;
|
|
483
483
|
tokenType = TokenType.BitwiseXor;
|
|
484
484
|
break;
|
|
485
485
|
// --- BitwiseOr, LogicalOr
|
|
@@ -494,7 +494,7 @@ class Lexer {
|
|
|
494
494
|
break;
|
|
495
495
|
// --- "?", "?", or "?."
|
|
496
496
|
case "?":
|
|
497
|
-
phase =
|
|
497
|
+
phase = 21;
|
|
498
498
|
tokenType = TokenType.QuestionMark;
|
|
499
499
|
break;
|
|
500
500
|
case ";":
|
|
@@ -505,11 +505,9 @@ class Lexer {
|
|
|
505
505
|
return completeToken(TokenType.LParent);
|
|
506
506
|
case ")":
|
|
507
507
|
return completeToken(TokenType.RParent);
|
|
508
|
-
// --- ":"
|
|
508
|
+
// --- ":"
|
|
509
509
|
case ":":
|
|
510
|
-
|
|
511
|
-
tokenType = TokenType.Colon;
|
|
512
|
-
break;
|
|
510
|
+
return completeToken(TokenType.Colon);
|
|
513
511
|
case "`":
|
|
514
512
|
return completeToken(TokenType.Backtick);
|
|
515
513
|
case "[":
|
|
@@ -544,7 +542,7 @@ class Lexer {
|
|
|
544
542
|
break;
|
|
545
543
|
// --- Decimal or Real literal
|
|
546
544
|
case "0":
|
|
547
|
-
phase =
|
|
545
|
+
phase = 20;
|
|
548
546
|
tokenType = TokenType.DecimalLiteral;
|
|
549
547
|
break;
|
|
550
548
|
case ".":
|
|
@@ -555,7 +553,7 @@ class Lexer {
|
|
|
555
553
|
case '"':
|
|
556
554
|
case "'":
|
|
557
555
|
stringState = ch;
|
|
558
|
-
phase =
|
|
556
|
+
phase = 34;
|
|
559
557
|
break;
|
|
560
558
|
default:
|
|
561
559
|
if (isIdStart(ch)) {
|
|
@@ -563,7 +561,7 @@ class Lexer {
|
|
|
563
561
|
phase = 17;
|
|
564
562
|
tokenType = TokenType.Identifier;
|
|
565
563
|
} else if (isDecimalDigit(ch)) {
|
|
566
|
-
phase =
|
|
564
|
+
phase = 26;
|
|
567
565
|
tokenType = TokenType.DecimalLiteral;
|
|
568
566
|
} else {
|
|
569
567
|
completeToken(TokenType.Unknown);
|
|
@@ -605,8 +603,6 @@ class Lexer {
|
|
|
605
603
|
break;
|
|
606
604
|
// ====================================================================
|
|
607
605
|
// Process miscellaneous tokens
|
|
608
|
-
case 20:
|
|
609
|
-
return ch === ":" ? completeToken(TokenType.Global) : makeToken();
|
|
610
606
|
case 5:
|
|
611
607
|
if (ch === "*") {
|
|
612
608
|
phase = 3;
|
|
@@ -619,58 +615,58 @@ class Lexer {
|
|
|
619
615
|
return makeToken();
|
|
620
616
|
}
|
|
621
617
|
break;
|
|
622
|
-
case
|
|
618
|
+
case 50:
|
|
623
619
|
if (ch === "+") {
|
|
624
620
|
return completeToken(TokenType.IncOp);
|
|
625
621
|
}
|
|
626
622
|
return ch === "=" ? completeToken(TokenType.AddAssignment) : makeToken();
|
|
627
|
-
case
|
|
623
|
+
case 51:
|
|
628
624
|
if (ch === "-") {
|
|
629
625
|
return completeToken(TokenType.DecOp);
|
|
630
626
|
}
|
|
631
627
|
return ch === "=" ? completeToken(TokenType.SubtractAssignment) : makeToken();
|
|
632
|
-
case
|
|
628
|
+
case 53:
|
|
633
629
|
return ch === "=" ? completeToken(TokenType.RemainderAssignment) : makeToken();
|
|
634
|
-
case
|
|
630
|
+
case 57:
|
|
635
631
|
return ch === "=" ? completeToken(TokenType.BitwiseXorAssignment) : makeToken();
|
|
636
632
|
case 7:
|
|
637
633
|
if (ch === "=") {
|
|
638
634
|
return completeToken(TokenType.BitwiseOrAssignment);
|
|
639
635
|
}
|
|
640
636
|
if (ch === "|") {
|
|
641
|
-
phase =
|
|
637
|
+
phase = 58;
|
|
642
638
|
tokenType = TokenType.LogicalOr;
|
|
643
639
|
break;
|
|
644
640
|
}
|
|
645
641
|
return makeToken();
|
|
646
|
-
case
|
|
642
|
+
case 58:
|
|
647
643
|
return ch === "=" ? completeToken(TokenType.LogicalOrAssignment) : makeToken();
|
|
648
644
|
case 9:
|
|
649
645
|
if (ch === "=") {
|
|
650
646
|
return completeToken(TokenType.BitwiseAndAssignment);
|
|
651
647
|
}
|
|
652
648
|
if (ch === "&") {
|
|
653
|
-
phase =
|
|
649
|
+
phase = 56;
|
|
654
650
|
tokenType = TokenType.LogicalAnd;
|
|
655
651
|
break;
|
|
656
652
|
}
|
|
657
653
|
return makeToken();
|
|
658
|
-
case
|
|
654
|
+
case 56:
|
|
659
655
|
return ch === "=" ? completeToken(TokenType.LogicalAndAssignment) : makeToken();
|
|
660
656
|
case 8:
|
|
661
657
|
if (ch === "*") {
|
|
662
|
-
phase =
|
|
658
|
+
phase = 49;
|
|
663
659
|
tokenType = TokenType.Exponent;
|
|
664
660
|
break;
|
|
665
661
|
} else if (ch === "=") {
|
|
666
662
|
return completeToken(TokenType.MultiplyAssignment);
|
|
667
663
|
}
|
|
668
664
|
return makeToken();
|
|
669
|
-
case
|
|
665
|
+
case 49:
|
|
670
666
|
return ch === "=" ? completeToken(TokenType.ExponentAssignment) : makeToken();
|
|
671
|
-
case
|
|
667
|
+
case 21:
|
|
672
668
|
if (ch === "?") {
|
|
673
|
-
phase =
|
|
669
|
+
phase = 59;
|
|
674
670
|
tokenType = TokenType.NullCoalesce;
|
|
675
671
|
break;
|
|
676
672
|
}
|
|
@@ -678,7 +674,7 @@ class Lexer {
|
|
|
678
674
|
return completeToken(TokenType.OptionalChaining);
|
|
679
675
|
}
|
|
680
676
|
return makeToken();
|
|
681
|
-
case
|
|
677
|
+
case 59:
|
|
682
678
|
return ch === "=" ? completeToken(TokenType.NullCoalesceAssignment) : makeToken();
|
|
683
679
|
case 10:
|
|
684
680
|
if (ch === ">") {
|
|
@@ -706,12 +702,12 @@ class Lexer {
|
|
|
706
702
|
return completeToken(TokenType.LessThanOrEqual);
|
|
707
703
|
}
|
|
708
704
|
if (ch === "<") {
|
|
709
|
-
phase =
|
|
705
|
+
phase = 54;
|
|
710
706
|
tokenType = TokenType.ShiftLeft;
|
|
711
707
|
break;
|
|
712
708
|
}
|
|
713
709
|
return makeToken();
|
|
714
|
-
case
|
|
710
|
+
case 54:
|
|
715
711
|
return ch === "=" ? completeToken(TokenType.ShiftLeftAssignment) : makeToken();
|
|
716
712
|
case 15:
|
|
717
713
|
if (ch === "=") {
|
|
@@ -725,7 +721,7 @@ class Lexer {
|
|
|
725
721
|
return makeToken();
|
|
726
722
|
case 16:
|
|
727
723
|
if (ch === ">") {
|
|
728
|
-
phase =
|
|
724
|
+
phase = 55;
|
|
729
725
|
tokenType = TokenType.ShiftRight;
|
|
730
726
|
break;
|
|
731
727
|
}
|
|
@@ -733,24 +729,24 @@ class Lexer {
|
|
|
733
729
|
return completeToken(TokenType.SignedShiftRightAssignment);
|
|
734
730
|
}
|
|
735
731
|
return makeToken();
|
|
736
|
-
case
|
|
732
|
+
case 55:
|
|
737
733
|
return ch === "=" ? completeToken(TokenType.ShiftRightAssignment) : makeToken();
|
|
738
734
|
// ====================================================================
|
|
739
735
|
// --- Literals
|
|
740
|
-
case
|
|
736
|
+
case 20:
|
|
741
737
|
if (ch === "x") {
|
|
742
|
-
phase =
|
|
738
|
+
phase = 22;
|
|
743
739
|
tokenType = TokenType.Unknown;
|
|
744
740
|
} else if (ch === "b") {
|
|
745
|
-
phase =
|
|
741
|
+
phase = 24;
|
|
746
742
|
tokenType = TokenType.Unknown;
|
|
747
743
|
} else if (isDecimalDigit(ch) || ch === "_") {
|
|
748
|
-
phase =
|
|
744
|
+
phase = 26;
|
|
749
745
|
} else if (ch === ".") {
|
|
750
|
-
phase =
|
|
746
|
+
phase = 27;
|
|
751
747
|
tokenType = TokenType.Unknown;
|
|
752
748
|
} else if (ch === "e" || ch === "E") {
|
|
753
|
-
phase =
|
|
749
|
+
phase = 29;
|
|
754
750
|
tokenType = TokenType.Unknown;
|
|
755
751
|
} else {
|
|
756
752
|
return makeToken();
|
|
@@ -765,92 +761,92 @@ class Lexer {
|
|
|
765
761
|
if (!isDecimalDigit(ch)) {
|
|
766
762
|
return makeToken();
|
|
767
763
|
}
|
|
768
|
-
phase =
|
|
764
|
+
phase = 28;
|
|
769
765
|
tokenType = TokenType.RealLiteral;
|
|
770
766
|
break;
|
|
771
767
|
case 19:
|
|
772
768
|
return ch === "." ? completeToken(TokenType.Spread) : makeToken();
|
|
773
|
-
case
|
|
769
|
+
case 22:
|
|
774
770
|
if (ch === "_") {
|
|
775
771
|
break;
|
|
776
772
|
}
|
|
777
773
|
if (!isHexadecimalDigit(ch)) {
|
|
778
774
|
return makeToken();
|
|
779
775
|
}
|
|
780
|
-
phase =
|
|
776
|
+
phase = 23;
|
|
781
777
|
tokenType = TokenType.HexadecimalLiteral;
|
|
782
778
|
break;
|
|
783
|
-
case
|
|
779
|
+
case 23:
|
|
784
780
|
if (!isHexadecimalDigit(ch) && ch !== "_") {
|
|
785
781
|
return makeToken();
|
|
786
782
|
}
|
|
787
783
|
break;
|
|
788
|
-
case
|
|
784
|
+
case 24:
|
|
789
785
|
if (ch === "_") {
|
|
790
786
|
break;
|
|
791
787
|
}
|
|
792
788
|
if (!isBinaryDigit(ch)) {
|
|
793
789
|
return makeToken();
|
|
794
790
|
}
|
|
795
|
-
phase =
|
|
791
|
+
phase = 25;
|
|
796
792
|
tokenType = TokenType.BinaryLiteral;
|
|
797
793
|
break;
|
|
798
|
-
case
|
|
794
|
+
case 25:
|
|
799
795
|
if (!isBinaryDigit(ch) && ch !== "_") {
|
|
800
796
|
return makeToken();
|
|
801
797
|
}
|
|
802
798
|
tokenType = TokenType.BinaryLiteral;
|
|
803
799
|
break;
|
|
804
|
-
case
|
|
800
|
+
case 26:
|
|
805
801
|
if (isDecimalDigit(ch) || ch === "_") {
|
|
806
802
|
break;
|
|
807
803
|
} else if (ch === "." && (this.input.peek() === null || isDecimalDigit(this.input.peek()))) {
|
|
808
|
-
phase =
|
|
804
|
+
phase = 27;
|
|
809
805
|
tokenType = TokenType.Unknown;
|
|
810
806
|
} else if (ch === "e" || ch === "E") {
|
|
811
|
-
phase =
|
|
807
|
+
phase = 29;
|
|
812
808
|
tokenType = TokenType.Unknown;
|
|
813
809
|
} else {
|
|
814
810
|
return makeToken();
|
|
815
811
|
}
|
|
816
812
|
break;
|
|
817
|
-
case
|
|
813
|
+
case 27:
|
|
818
814
|
if (isDecimalDigit(ch)) {
|
|
819
|
-
phase =
|
|
815
|
+
phase = 28;
|
|
820
816
|
tokenType = TokenType.RealLiteral;
|
|
821
817
|
} else if (ch === "e" || ch === "E") {
|
|
822
|
-
phase =
|
|
818
|
+
phase = 29;
|
|
823
819
|
} else {
|
|
824
820
|
return makeToken();
|
|
825
821
|
}
|
|
826
822
|
break;
|
|
827
|
-
case
|
|
823
|
+
case 28:
|
|
828
824
|
if (ch === "e" || ch === "E") {
|
|
829
|
-
phase =
|
|
825
|
+
phase = 29;
|
|
830
826
|
tokenType = TokenType.Unknown;
|
|
831
827
|
} else if (!isDecimalDigit(ch) && ch !== "_") {
|
|
832
828
|
return makeToken();
|
|
833
829
|
}
|
|
834
830
|
break;
|
|
835
|
-
case
|
|
831
|
+
case 29:
|
|
836
832
|
if (ch === "+" || ch === "-") {
|
|
837
|
-
phase =
|
|
833
|
+
phase = 30;
|
|
838
834
|
} else if (isDecimalDigit(ch)) {
|
|
839
|
-
phase =
|
|
835
|
+
phase = 31;
|
|
840
836
|
tokenType = TokenType.RealLiteral;
|
|
841
837
|
} else {
|
|
842
838
|
return makeToken();
|
|
843
839
|
}
|
|
844
840
|
break;
|
|
845
|
-
case
|
|
841
|
+
case 30:
|
|
846
842
|
if (isDecimalDigit(ch)) {
|
|
847
|
-
phase =
|
|
843
|
+
phase = 31;
|
|
848
844
|
tokenType = TokenType.RealLiteral;
|
|
849
845
|
} else {
|
|
850
846
|
return makeToken();
|
|
851
847
|
}
|
|
852
848
|
break;
|
|
853
|
-
case
|
|
849
|
+
case 31:
|
|
854
850
|
if (!isDecimalDigit(ch)) {
|
|
855
851
|
return makeToken();
|
|
856
852
|
}
|
|
@@ -867,8 +863,8 @@ class Lexer {
|
|
|
867
863
|
makeToken();
|
|
868
864
|
}
|
|
869
865
|
break;
|
|
870
|
-
case
|
|
871
|
-
phase =
|
|
866
|
+
case 32: {
|
|
867
|
+
phase = 33;
|
|
872
868
|
const charAhead12 = this.input.ahead(0);
|
|
873
869
|
const charAhead22 = this.input.ahead(1);
|
|
874
870
|
if (charAhead12 === "`" || charAhead12 === "$" && charAhead22 === "{") {
|
|
@@ -876,10 +872,10 @@ class Lexer {
|
|
|
876
872
|
}
|
|
877
873
|
break;
|
|
878
874
|
}
|
|
879
|
-
case
|
|
875
|
+
case 33:
|
|
880
876
|
switch (ch) {
|
|
881
877
|
case "\\":
|
|
882
|
-
phase =
|
|
878
|
+
phase = 32;
|
|
883
879
|
tokenType = TokenType.Unknown;
|
|
884
880
|
break phaseSwitch;
|
|
885
881
|
case "`":
|
|
@@ -898,18 +894,18 @@ class Lexer {
|
|
|
898
894
|
return completeToken(TokenType.StringLiteral);
|
|
899
895
|
}
|
|
900
896
|
break;
|
|
901
|
-
case
|
|
897
|
+
case 34:
|
|
902
898
|
if (ch === stringState) {
|
|
903
899
|
return completeToken(TokenType.StringLiteral);
|
|
904
900
|
} else if (isRestrictedInString(ch)) {
|
|
905
901
|
return completeToken(TokenType.Unknown);
|
|
906
902
|
} else if (ch === "\\") {
|
|
907
|
-
phase =
|
|
903
|
+
phase = 35;
|
|
908
904
|
tokenType = TokenType.Unknown;
|
|
909
905
|
}
|
|
910
906
|
break;
|
|
911
907
|
// Start of string character escape
|
|
912
|
-
case
|
|
908
|
+
case 35:
|
|
913
909
|
switch (ch) {
|
|
914
910
|
case "b":
|
|
915
911
|
case "f":
|
|
@@ -923,133 +919,133 @@ class Lexer {
|
|
|
923
919
|
case '"':
|
|
924
920
|
case "`":
|
|
925
921
|
case "\\":
|
|
926
|
-
phase =
|
|
922
|
+
phase = 34;
|
|
927
923
|
break;
|
|
928
924
|
case "x":
|
|
929
|
-
phase =
|
|
925
|
+
phase = 36;
|
|
930
926
|
break;
|
|
931
927
|
case "u":
|
|
932
|
-
phase =
|
|
928
|
+
phase = 38;
|
|
933
929
|
break;
|
|
934
930
|
default:
|
|
935
|
-
phase =
|
|
931
|
+
phase = 34;
|
|
936
932
|
break;
|
|
937
933
|
}
|
|
938
934
|
break;
|
|
939
935
|
// --- First hexadecimal digit of string character escape
|
|
940
|
-
case
|
|
936
|
+
case 36:
|
|
941
937
|
if (isHexadecimalDigit(ch)) {
|
|
942
|
-
phase =
|
|
938
|
+
phase = 37;
|
|
943
939
|
} else {
|
|
944
940
|
return completeToken(TokenType.Unknown);
|
|
945
941
|
}
|
|
946
942
|
break;
|
|
947
943
|
// --- Second hexadecimal digit of character escape
|
|
948
|
-
case
|
|
944
|
+
case 37:
|
|
949
945
|
if (isHexadecimalDigit(ch)) {
|
|
950
|
-
phase =
|
|
946
|
+
phase = 34;
|
|
951
947
|
} else {
|
|
952
948
|
return completeToken(TokenType.Unknown);
|
|
953
949
|
}
|
|
954
950
|
break;
|
|
955
951
|
// --- First hexadecimal digit of Unicode string character escape
|
|
956
|
-
case
|
|
952
|
+
case 38:
|
|
957
953
|
if (ch === "{") {
|
|
958
|
-
phase =
|
|
954
|
+
phase = 42;
|
|
959
955
|
break;
|
|
960
956
|
}
|
|
961
957
|
if (isHexadecimalDigit(ch)) {
|
|
962
|
-
phase =
|
|
958
|
+
phase = 39;
|
|
963
959
|
} else {
|
|
964
960
|
return completeToken(TokenType.Unknown);
|
|
965
961
|
}
|
|
966
962
|
break;
|
|
967
963
|
// --- Second hexadecimal digit of Unicode string character escape
|
|
968
|
-
case
|
|
964
|
+
case 39:
|
|
969
965
|
if (isHexadecimalDigit(ch)) {
|
|
970
|
-
phase =
|
|
966
|
+
phase = 40;
|
|
971
967
|
} else {
|
|
972
968
|
return completeToken(TokenType.Unknown);
|
|
973
969
|
}
|
|
974
970
|
break;
|
|
975
971
|
// --- Third hexadecimal digit of Unicode string character escape
|
|
976
|
-
case
|
|
972
|
+
case 40:
|
|
977
973
|
if (isHexadecimalDigit(ch)) {
|
|
978
|
-
phase =
|
|
974
|
+
phase = 41;
|
|
979
975
|
} else {
|
|
980
976
|
return completeToken(TokenType.Unknown);
|
|
981
977
|
}
|
|
982
978
|
break;
|
|
983
979
|
// --- Fourth hexadecimal digit of Unicode string character escape
|
|
984
|
-
case
|
|
980
|
+
case 41:
|
|
985
981
|
if (isHexadecimalDigit(ch)) {
|
|
986
|
-
phase =
|
|
982
|
+
phase = 34;
|
|
987
983
|
} else {
|
|
988
984
|
return completeToken(TokenType.Unknown);
|
|
989
985
|
}
|
|
990
986
|
break;
|
|
991
987
|
// --- First hexadecimal digit of Unicode codepoint string character escape
|
|
992
|
-
case
|
|
988
|
+
case 42:
|
|
993
989
|
if (isHexadecimalDigit(ch)) {
|
|
994
|
-
phase =
|
|
990
|
+
phase = 43;
|
|
995
991
|
} else {
|
|
996
992
|
return completeToken(TokenType.Unknown);
|
|
997
993
|
}
|
|
998
994
|
break;
|
|
999
995
|
// --- Second hexadecimal digit of Unicode codepoint string character escape
|
|
1000
|
-
case
|
|
996
|
+
case 43:
|
|
1001
997
|
if (ch === "}") {
|
|
1002
|
-
phase =
|
|
998
|
+
phase = 34;
|
|
1003
999
|
} else if (isHexadecimalDigit(ch)) {
|
|
1004
|
-
phase =
|
|
1000
|
+
phase = 44;
|
|
1005
1001
|
} else {
|
|
1006
1002
|
return completeToken(TokenType.Unknown);
|
|
1007
1003
|
}
|
|
1008
1004
|
break;
|
|
1009
1005
|
// --- Third hexadecimal digit of Unicode codepoint string character escape
|
|
1010
|
-
case
|
|
1006
|
+
case 44:
|
|
1011
1007
|
if (ch === "}") {
|
|
1012
|
-
phase =
|
|
1008
|
+
phase = 34;
|
|
1013
1009
|
} else if (isHexadecimalDigit(ch)) {
|
|
1014
|
-
phase =
|
|
1010
|
+
phase = 45;
|
|
1015
1011
|
} else {
|
|
1016
1012
|
return completeToken(TokenType.Unknown);
|
|
1017
1013
|
}
|
|
1018
1014
|
break;
|
|
1019
1015
|
// --- Fourth hexadecimal digit of Unicode codepoint string character escape
|
|
1020
|
-
case
|
|
1016
|
+
case 45:
|
|
1021
1017
|
if (ch === "}") {
|
|
1022
|
-
phase =
|
|
1018
|
+
phase = 34;
|
|
1023
1019
|
} else if (isHexadecimalDigit(ch)) {
|
|
1024
|
-
phase =
|
|
1020
|
+
phase = 46;
|
|
1025
1021
|
} else {
|
|
1026
1022
|
return completeToken(TokenType.Unknown);
|
|
1027
1023
|
}
|
|
1028
1024
|
break;
|
|
1029
1025
|
// --- Fifth hexadecimal digit of Unicode codepoint string character escape
|
|
1030
|
-
case
|
|
1026
|
+
case 46:
|
|
1031
1027
|
if (ch === "}") {
|
|
1032
|
-
phase =
|
|
1028
|
+
phase = 34;
|
|
1033
1029
|
} else if (isHexadecimalDigit(ch)) {
|
|
1034
|
-
phase =
|
|
1030
|
+
phase = 47;
|
|
1035
1031
|
} else {
|
|
1036
1032
|
return completeToken(TokenType.Unknown);
|
|
1037
1033
|
}
|
|
1038
1034
|
break;
|
|
1039
1035
|
// --- Sixth hexadecimal digit of Unicode codepoint string character escape
|
|
1040
|
-
case
|
|
1036
|
+
case 47:
|
|
1041
1037
|
if (ch === "}") {
|
|
1042
|
-
phase =
|
|
1038
|
+
phase = 34;
|
|
1043
1039
|
} else if (isHexadecimalDigit(ch)) {
|
|
1044
|
-
phase =
|
|
1040
|
+
phase = 48;
|
|
1045
1041
|
} else {
|
|
1046
1042
|
return completeToken(TokenType.Unknown);
|
|
1047
1043
|
}
|
|
1048
1044
|
break;
|
|
1049
1045
|
// --- Closing bracket of Unicode codepoint string character escape
|
|
1050
|
-
case
|
|
1046
|
+
case 48:
|
|
1051
1047
|
if (ch === "}") {
|
|
1052
|
-
phase =
|
|
1048
|
+
phase = 34;
|
|
1053
1049
|
} else {
|
|
1054
1050
|
return completeToken(TokenType.Unknown);
|
|
1055
1051
|
}
|
|
@@ -1162,6 +1158,7 @@ resolverHash.set("false", TokenType.False);
|
|
|
1162
1158
|
resolverHash.set("undefined", TokenType.Undefined);
|
|
1163
1159
|
resolverHash.set("null", TokenType.Null);
|
|
1164
1160
|
resolverHash.set("in", TokenType.In);
|
|
1161
|
+
resolverHash.set("instanceof", TokenType.Instanceof);
|
|
1165
1162
|
resolverHash.set("let", TokenType.Let);
|
|
1166
1163
|
resolverHash.set("const", TokenType.Const);
|
|
1167
1164
|
resolverHash.set("var", TokenType.Var);
|
|
@@ -1373,7 +1370,6 @@ const tokenTraits = {
|
|
|
1373
1370
|
[TokenType.SignedShiftRight]: {},
|
|
1374
1371
|
[TokenType.Dot]: {},
|
|
1375
1372
|
[TokenType.Spread]: { expressionStart: true, isPropLiteral: true },
|
|
1376
|
-
[TokenType.Global]: { expressionStart: true },
|
|
1377
1373
|
[TokenType.DecimalLiteral]: { expressionStart: true, isPropLiteral: true },
|
|
1378
1374
|
[TokenType.HexadecimalLiteral]: { expressionStart: true, isPropLiteral: true },
|
|
1379
1375
|
[TokenType.BinaryLiteral]: { expressionStart: true, isPropLiteral: true },
|
|
@@ -1389,6 +1385,7 @@ const tokenTraits = {
|
|
|
1389
1385
|
[TokenType.Null]: { expressionStart: true, keywordLike: true },
|
|
1390
1386
|
[TokenType.Undefined]: { expressionStart: true, keywordLike: true },
|
|
1391
1387
|
[TokenType.In]: { keywordLike: true },
|
|
1388
|
+
[TokenType.Instanceof]: { keywordLike: true },
|
|
1392
1389
|
[TokenType.Let]: { keywordLike: true },
|
|
1393
1390
|
[TokenType.Const]: { keywordLike: true },
|
|
1394
1391
|
[TokenType.Var]: { keywordLike: true },
|
|
@@ -3353,7 +3350,7 @@ class Parser {
|
|
|
3353
3350
|
}
|
|
3354
3351
|
/**
|
|
3355
3352
|
* relOrInExpr
|
|
3356
|
-
* : shiftExpr ( ( "<" | "<=" | ">" | ">=", "in" ) shiftExpr )?
|
|
3353
|
+
* : shiftExpr ( ( "<" | "<=" | ">" | ">=", "in", "instanceof" ) shiftExpr )?
|
|
3357
3354
|
* ;
|
|
3358
3355
|
*/
|
|
3359
3356
|
parseRelOrInExpr() {
|
|
@@ -3368,7 +3365,8 @@ class Parser {
|
|
|
3368
3365
|
TokenType.LessThanOrEqual,
|
|
3369
3366
|
TokenType.GreaterThan,
|
|
3370
3367
|
TokenType.GreaterThanOrEqual,
|
|
3371
|
-
TokenType.In
|
|
3368
|
+
TokenType.In,
|
|
3369
|
+
TokenType.Instanceof
|
|
3372
3370
|
)) {
|
|
3373
3371
|
const rightExpr = this.parseShiftExpr();
|
|
3374
3372
|
if (!rightExpr) {
|
|
@@ -3900,23 +3898,6 @@ class Parser {
|
|
|
3900
3898
|
idToken
|
|
3901
3899
|
);
|
|
3902
3900
|
}
|
|
3903
|
-
case TokenType.Global: {
|
|
3904
|
-
this._lexer.get();
|
|
3905
|
-
const idToken = this._lexer.get();
|
|
3906
|
-
if (idToken.type !== TokenType.Identifier) {
|
|
3907
|
-
this.reportError("W003");
|
|
3908
|
-
return null;
|
|
3909
|
-
}
|
|
3910
|
-
return this.createExpressionNode(
|
|
3911
|
-
T_IDENTIFIER,
|
|
3912
|
-
{
|
|
3913
|
-
name: idToken.text,
|
|
3914
|
-
isGlobal: true
|
|
3915
|
-
},
|
|
3916
|
-
idToken,
|
|
3917
|
-
idToken
|
|
3918
|
-
);
|
|
3919
|
-
}
|
|
3920
3901
|
case TokenType.Backtick:
|
|
3921
3902
|
return this.parseTemplateLiteral();
|
|
3922
3903
|
case TokenType.False:
|