meriyah 4.5.0 → 6.0.0

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 (81) hide show
  1. package/CHANGELOG.md +415 -445
  2. package/README.md +52 -34
  3. package/dist/meriyah.cjs +9203 -8807
  4. package/dist/meriyah.min.mjs +1 -0
  5. package/dist/{meriyah.esm.js → meriyah.mjs} +9203 -8807
  6. package/dist/meriyah.umd.js +9203 -8807
  7. package/dist/meriyah.umd.min.js +1 -1
  8. package/dist/src/chars.d.ts +135 -135
  9. package/dist/src/common.d.ts +225 -200
  10. package/dist/src/common.d.ts.map +1 -1
  11. package/dist/src/errors.d.ts +197 -187
  12. package/dist/src/errors.d.ts.map +1 -1
  13. package/dist/src/estree.d.ts +524 -507
  14. package/dist/src/estree.d.ts.map +1 -1
  15. package/dist/src/lexer/charClassifier.d.ts +24 -24
  16. package/dist/src/lexer/charClassifier.d.ts.map +1 -1
  17. package/dist/src/lexer/comments.d.ts +14 -14
  18. package/dist/src/lexer/common.d.ts +25 -26
  19. package/dist/src/lexer/common.d.ts.map +1 -1
  20. package/dist/src/lexer/decodeHTML.d.ts +1 -1
  21. package/dist/src/lexer/decodeHTML.d.ts.map +1 -1
  22. package/dist/src/lexer/identifier.d.ts +8 -8
  23. package/dist/src/lexer/identifier.d.ts.map +1 -1
  24. package/dist/src/lexer/index.d.ts +9 -9
  25. package/dist/src/lexer/index.d.ts.map +1 -1
  26. package/dist/src/lexer/jsx.d.ts +6 -6
  27. package/dist/src/lexer/jsx.d.ts.map +1 -1
  28. package/dist/src/lexer/numeric.d.ts +5 -5
  29. package/dist/src/lexer/numeric.d.ts.map +1 -1
  30. package/dist/src/lexer/regexp.d.ts +3 -3
  31. package/dist/src/lexer/regexp.d.ts.map +1 -1
  32. package/dist/src/lexer/scan.d.ts +6 -6
  33. package/dist/src/lexer/scan.d.ts.map +1 -1
  34. package/dist/src/lexer/string.d.ts +12 -12
  35. package/dist/src/lexer/string.d.ts.map +1 -1
  36. package/dist/src/lexer/template.d.ts +4 -4
  37. package/dist/src/lexer/template.d.ts.map +1 -1
  38. package/dist/src/meriyah.d.ts +7 -7
  39. package/dist/src/meriyah.d.ts.map +1 -1
  40. package/dist/src/parser.d.ts +119 -118
  41. package/dist/src/parser.d.ts.map +1 -1
  42. package/dist/src/token.d.ts +167 -167
  43. package/dist/src/token.d.ts.map +1 -1
  44. package/dist/src/unicode.d.ts +5 -5
  45. package/package.json +44 -48
  46. package/dist/meriyah.amd.js +0 -8854
  47. package/dist/meriyah.amd.min.js +0 -1
  48. package/dist/meriyah.cjs.js +0 -8852
  49. package/dist/meriyah.cjs.min.js +0 -1
  50. package/dist/meriyah.esm.min.js +0 -1
  51. package/dist/meriyah.esm.min.mjs +0 -1
  52. package/dist/meriyah.esm.mjs +0 -8846
  53. package/dist/meriyah.iife.js +0 -8857
  54. package/dist/meriyah.iife.min.js +0 -1
  55. package/dist/meriyah.min.cjs +0 -1
  56. package/dist/meriyah.system.js +0 -8860
  57. package/dist/meriyah.system.min.js +0 -1
  58. package/dist/meriyah.umd.cjs +0 -8858
  59. package/dist/meriyah.umd.es5.js +0 -8927
  60. package/dist/meriyah.umd.es5.min.js +0 -1
  61. package/dist/meriyah.umd.min.cjs +0 -1
  62. package/src/chars.ts +0 -155
  63. package/src/common.ts +0 -841
  64. package/src/errors.ts +0 -419
  65. package/src/estree.ts +0 -817
  66. package/src/lexer/charClassifier.ts +0 -449
  67. package/src/lexer/comments.ts +0 -178
  68. package/src/lexer/common.ts +0 -140
  69. package/src/lexer/decodeHTML.ts +0 -2186
  70. package/src/lexer/identifier.ts +0 -196
  71. package/src/lexer/index.ts +0 -32
  72. package/src/lexer/jsx.ts +0 -126
  73. package/src/lexer/numeric.ts +0 -259
  74. package/src/lexer/regexp.ts +0 -156
  75. package/src/lexer/scan.ts +0 -655
  76. package/src/lexer/string.ts +0 -242
  77. package/src/lexer/template.ts +0 -108
  78. package/src/meriyah.ts +0 -29
  79. package/src/parser.ts +0 -9210
  80. package/src/token.ts +0 -307
  81. package/src/unicode.ts +0 -36
@@ -1,140 +0,0 @@
1
- import { Token } from '../token';
2
- import { Chars } from '../chars';
3
- import { ParserState, Flags } from '../common';
4
- import { unicodeLookup } from '../unicode';
5
- import { report, Errors } from '../errors';
6
-
7
- export const enum LexerState {
8
- None = 0,
9
- NewLine = 1 << 0,
10
- LastIsCR = 1 << 2
11
- }
12
-
13
- export const enum NumberKind {
14
- ImplicitOctal = 1 << 0,
15
- Binary = 1 << 1,
16
- Octal = 1 << 2,
17
- Hex = 1 << 3,
18
- Decimal = 1 << 4,
19
- NonOctalDecimal = 1 << 5,
20
- Float = 1 << 6,
21
- ValidBigIntKind = 1 << 7,
22
- DecimalNumberKind = Decimal | NonOctalDecimal
23
- }
24
-
25
- /**
26
- * Advances this lexer's current index.
27
- *
28
- * @param parser The parser instance
29
- */
30
- export function advanceChar(parser: ParserState): number {
31
- parser.column++;
32
- return (parser.currentChar = parser.source.charCodeAt(++parser.index));
33
- }
34
-
35
- /**
36
- * Consumes multi unit code point
37
- *
38
- * @param parser The parser instance
39
- * @param hi Code point to validate
40
- */
41
- export function consumeMultiUnitCodePoint(parser: ParserState, hi: number): 0 | 1 {
42
- // See: https://tc39.github.io/ecma262/#sec-ecmascript-language-types-string-type
43
- if ((hi & 0xfc00) !== Chars.LeadSurrogateMin) return 0;
44
- const lo = parser.source.charCodeAt(parser.index + 1);
45
- if ((lo & 0xfc00) !== 0xdc00) return 0;
46
- hi = parser.currentChar = Chars.NonBMPMin + ((hi & 0x3ff) << 10) + (lo & 0x3ff);
47
- if (((unicodeLookup[(hi >>> 5) + 0] >>> hi) & 31 & 1) === 0) {
48
- report(parser, Errors.IllegalCharacter, fromCodePoint(hi));
49
- }
50
- parser.index++;
51
- parser.column++;
52
- return 1;
53
- }
54
-
55
- /**
56
- * Use to consume a line feed instead of `scanNewLine`.
57
- */
58
- export function consumeLineFeed(parser: ParserState, state: LexerState): void {
59
- parser.currentChar = parser.source.charCodeAt(++parser.index);
60
- parser.flags |= Flags.NewLine;
61
- if ((state & LexerState.LastIsCR) === 0) {
62
- parser.column = 0;
63
- parser.line++;
64
- }
65
- }
66
-
67
- export function scanNewLine(parser: ParserState): void {
68
- parser.flags |= Flags.NewLine;
69
- parser.currentChar = parser.source.charCodeAt(++parser.index);
70
- parser.column = 0;
71
- parser.line++;
72
- }
73
-
74
- // ECMA-262 11.2 White Space
75
- // gC=Zs, U+0009, U+000B, U+000C, U+FEFF
76
- export function isExoticECMAScriptWhitespace(ch: number): boolean {
77
- return (
78
- ch === Chars.NonBreakingSpace ||
79
- ch === Chars.ZeroWidthNoBreakSpace ||
80
- ch === Chars.NextLine ||
81
- ch === Chars.Ogham ||
82
- (ch >= Chars.EnQuad && ch <= Chars.ZeroWidthSpace) ||
83
- ch === Chars.NarrowNoBreakSpace ||
84
- ch === Chars.MathematicalSpace ||
85
- ch === Chars.IdeographicSpace ||
86
- ch === Chars.ThinSpace ||
87
- ch === Chars.ByteOrderMark
88
- );
89
- }
90
-
91
- /**
92
- * Optimized version of 'fromCodePoint'
93
- *
94
- * @param {number} code
95
- * @returns {string}
96
- */
97
- export function fromCodePoint(codePoint: number): string {
98
- return codePoint <= 65535
99
- ? String.fromCharCode(codePoint)
100
- : String.fromCharCode(codePoint >>> 10) + String.fromCharCode(codePoint & 0x3ff);
101
- }
102
-
103
- /**
104
- * Converts a value to a hex value
105
- *
106
- * @param code CodePoint
107
- */
108
- export function toHex(code: number): number {
109
- return code < Chars.UpperA ? code - Chars.Zero : (code - Chars.UpperA + 10) & 0xf;
110
- }
111
-
112
- /**
113
- * Converts a token to a string representation
114
- *
115
- * @param t Token
116
- */
117
- export function convertTokenType(t: Token): string {
118
- switch (t) {
119
- case Token.NumericLiteral:
120
- return 'NumericLiteral';
121
- case Token.StringLiteral:
122
- return 'StringLiteral';
123
- case Token.FalseKeyword:
124
- case Token.TrueKeyword:
125
- return 'BooleanLiteral';
126
- case Token.NullKeyword:
127
- return 'NullLiteral';
128
- case Token.RegularExpression:
129
- return 'RegularExpression';
130
- case Token.TemplateContinuation:
131
- case Token.TemplateSpan:
132
- case Token.Template:
133
- return 'TemplateLiteral';
134
- default:
135
- if ((t & Token.IsIdentifier) === Token.IsIdentifier) return 'Identifier';
136
- if ((t & Token.Keyword) === Token.Keyword) return 'Keyword';
137
-
138
- return 'Punctuator';
139
- }
140
- }