meriyah 5.0.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 (69) hide show
  1. package/CHANGELOG.md +79 -0
  2. package/README.md +38 -14
  3. package/dist/meriyah.cjs +2356 -2070
  4. package/dist/meriyah.min.mjs +1 -0
  5. package/dist/{meriyah.esm.js → meriyah.mjs} +2356 -2070
  6. package/dist/meriyah.umd.js +2356 -2070
  7. package/dist/meriyah.umd.min.js +1 -1
  8. package/dist/src/common.d.ts +71 -47
  9. package/dist/src/common.d.ts.map +1 -1
  10. package/dist/src/errors.d.ts +186 -177
  11. package/dist/src/errors.d.ts.map +1 -1
  12. package/dist/src/estree.d.ts +15 -6
  13. package/dist/src/estree.d.ts.map +1 -1
  14. package/dist/src/lexer/charClassifier.d.ts +2 -2
  15. package/dist/src/lexer/charClassifier.d.ts.map +1 -1
  16. package/dist/src/lexer/common.d.ts +1 -2
  17. package/dist/src/lexer/common.d.ts.map +1 -1
  18. package/dist/src/lexer/identifier.d.ts.map +1 -1
  19. package/dist/src/lexer/index.d.ts +1 -1
  20. package/dist/src/lexer/index.d.ts.map +1 -1
  21. package/dist/src/lexer/jsx.d.ts +2 -2
  22. package/dist/src/lexer/jsx.d.ts.map +1 -1
  23. package/dist/src/lexer/numeric.d.ts.map +1 -1
  24. package/dist/src/lexer/regexp.d.ts.map +1 -1
  25. package/dist/src/lexer/scan.d.ts.map +1 -1
  26. package/dist/src/lexer/string.d.ts +1 -1
  27. package/dist/src/lexer/string.d.ts.map +1 -1
  28. package/dist/src/lexer/template.d.ts.map +1 -1
  29. package/dist/src/parser.d.ts +72 -72
  30. package/dist/src/parser.d.ts.map +1 -1
  31. package/dist/src/token.d.ts +115 -115
  32. package/dist/src/token.d.ts.map +1 -1
  33. package/package.json +25 -34
  34. package/dist/meriyah.amd.js +0 -8964
  35. package/dist/meriyah.amd.min.js +0 -1
  36. package/dist/meriyah.cjs.js +0 -8962
  37. package/dist/meriyah.cjs.min.js +0 -1
  38. package/dist/meriyah.esm.min.js +0 -1
  39. package/dist/meriyah.esm.min.mjs +0 -1
  40. package/dist/meriyah.esm.mjs +0 -8956
  41. package/dist/meriyah.iife.js +0 -8967
  42. package/dist/meriyah.iife.min.js +0 -1
  43. package/dist/meriyah.min.cjs +0 -1
  44. package/dist/meriyah.system.js +0 -8970
  45. package/dist/meriyah.system.min.js +0 -1
  46. package/dist/meriyah.umd.cjs +0 -8968
  47. package/dist/meriyah.umd.es5.js +0 -9022
  48. package/dist/meriyah.umd.es5.min.js +0 -1
  49. package/dist/meriyah.umd.min.cjs +0 -1
  50. package/src/chars.ts +0 -155
  51. package/src/common.ts +0 -834
  52. package/src/errors.ts +0 -421
  53. package/src/estree.ts +0 -827
  54. package/src/lexer/charClassifier.ts +0 -449
  55. package/src/lexer/comments.ts +0 -178
  56. package/src/lexer/common.ts +0 -140
  57. package/src/lexer/decodeHTML.ts +0 -2184
  58. package/src/lexer/identifier.ts +0 -196
  59. package/src/lexer/index.ts +0 -32
  60. package/src/lexer/jsx.ts +0 -127
  61. package/src/lexer/numeric.ts +0 -259
  62. package/src/lexer/regexp.ts +0 -156
  63. package/src/lexer/scan.ts +0 -657
  64. package/src/lexer/string.ts +0 -242
  65. package/src/lexer/template.ts +0 -108
  66. package/src/meriyah.ts +0 -28
  67. package/src/parser.ts +0 -9358
  68. package/src/token.ts +0 -307
  69. 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
- }