laif-ds 0.2.78 → 0.2.80

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 (48) hide show
  1. package/dist/CHANGELOG.md +25 -0
  2. package/dist/_virtual/index3.js +5 -5
  3. package/dist/_virtual/index4.js +5 -5
  4. package/dist/_virtual/index5.js +4 -4
  5. package/dist/agent-docs/adoption-report.json +10 -10
  6. package/dist/agent-docs/components/AppEditor.md +4 -4
  7. package/dist/agent-docs/components/AppSelect.md +46 -0
  8. package/dist/agent-docs/manifest.json +5 -3
  9. package/dist/components/editor/editor-ui/content-editable.js +15 -8
  10. package/dist/components/ui/app-editor.js +88 -76
  11. package/dist/components/ui/app-select.js +232 -143
  12. package/dist/components/ui/date-picker.js +184 -153
  13. package/dist/components/ui/markdown-renderer.js +40 -30
  14. package/dist/index.d.ts +3 -1
  15. package/dist/node_modules/comma-separated-tokens/index.js +16 -5
  16. package/dist/node_modules/entities/dist/esm/decode-codepoint.js +39 -0
  17. package/dist/node_modules/entities/dist/esm/decode.js +246 -0
  18. package/dist/node_modules/entities/dist/esm/generated/decode-data-html.js +8 -0
  19. package/dist/node_modules/eventemitter3/index.js +1 -1
  20. package/dist/node_modules/hast-util-from-parse5/lib/index.js +146 -0
  21. package/dist/node_modules/hast-util-parse-selector/lib/index.js +21 -0
  22. package/dist/node_modules/hast-util-raw/lib/index.js +218 -0
  23. package/dist/node_modules/hast-util-to-jsx-runtime/lib/index.js +1 -1
  24. package/dist/node_modules/hast-util-to-parse5/lib/index.js +119 -0
  25. package/dist/node_modules/hastscript/lib/create-h.js +113 -0
  26. package/dist/node_modules/hastscript/lib/index.js +9 -0
  27. package/dist/node_modules/hastscript/lib/svg-case-sensitive-tag-names.js +45 -0
  28. package/dist/node_modules/parse5/dist/common/doctype.js +99 -0
  29. package/dist/node_modules/parse5/dist/common/error-codes.js +8 -0
  30. package/dist/node_modules/parse5/dist/common/foreign-content.js +211 -0
  31. package/dist/node_modules/parse5/dist/common/html.js +251 -0
  32. package/dist/node_modules/parse5/dist/common/token.js +15 -0
  33. package/dist/node_modules/parse5/dist/common/unicode.js +74 -0
  34. package/dist/node_modules/parse5/dist/parser/formatting-element-list.js +85 -0
  35. package/dist/node_modules/parse5/dist/parser/index.js +2272 -0
  36. package/dist/node_modules/parse5/dist/parser/open-element-stack.js +241 -0
  37. package/dist/node_modules/parse5/dist/serializer/index.js +3 -0
  38. package/dist/node_modules/parse5/dist/tokenizer/index.js +1941 -0
  39. package/dist/node_modules/parse5/dist/tokenizer/preprocessor.js +89 -0
  40. package/dist/node_modules/parse5/dist/tree-adapters/default.js +163 -0
  41. package/dist/node_modules/recharts/es6/util/Events.js +1 -1
  42. package/dist/node_modules/rehype-raw/lib/index.js +13 -0
  43. package/dist/node_modules/space-separated-tokens/index.js +8 -3
  44. package/dist/node_modules/unified/lib/index.js +1 -1
  45. package/dist/node_modules/vfile-location/lib/index.js +43 -0
  46. package/dist/node_modules/web-namespaces/index.js +12 -0
  47. package/dist/styles.v3.css +1 -1
  48. package/package.json +2 -1
@@ -0,0 +1,1941 @@
1
+ "use client";
2
+ import { Preprocessor as u } from "./preprocessor.js";
3
+ import { CODE_POINTS as t, REPLACEMENT_CHARACTER as _, SEQUENCES as T, isSurrogate as O, isUndefinedCodePoint as R, isControlCodePoint as m } from "../common/unicode.js";
4
+ import { TokenType as A, getTokenAttr as P } from "../common/token.js";
5
+ import { EntityDecoder as k, DecodingMode as D } from "../../../entities/dist/esm/decode.js";
6
+ import { ERR as i } from "../common/error-codes.js";
7
+ import { TAG_ID as C, getTagID as l } from "../common/html.js";
8
+ import { htmlDecodeTree as d } from "../../../entities/dist/esm/generated/decode-data-html.js";
9
+ var s;
10
+ (function(a) {
11
+ a[a.DATA = 0] = "DATA", a[a.RCDATA = 1] = "RCDATA", a[a.RAWTEXT = 2] = "RAWTEXT", a[a.SCRIPT_DATA = 3] = "SCRIPT_DATA", a[a.PLAINTEXT = 4] = "PLAINTEXT", a[a.TAG_OPEN = 5] = "TAG_OPEN", a[a.END_TAG_OPEN = 6] = "END_TAG_OPEN", a[a.TAG_NAME = 7] = "TAG_NAME", a[a.RCDATA_LESS_THAN_SIGN = 8] = "RCDATA_LESS_THAN_SIGN", a[a.RCDATA_END_TAG_OPEN = 9] = "RCDATA_END_TAG_OPEN", a[a.RCDATA_END_TAG_NAME = 10] = "RCDATA_END_TAG_NAME", a[a.RAWTEXT_LESS_THAN_SIGN = 11] = "RAWTEXT_LESS_THAN_SIGN", a[a.RAWTEXT_END_TAG_OPEN = 12] = "RAWTEXT_END_TAG_OPEN", a[a.RAWTEXT_END_TAG_NAME = 13] = "RAWTEXT_END_TAG_NAME", a[a.SCRIPT_DATA_LESS_THAN_SIGN = 14] = "SCRIPT_DATA_LESS_THAN_SIGN", a[a.SCRIPT_DATA_END_TAG_OPEN = 15] = "SCRIPT_DATA_END_TAG_OPEN", a[a.SCRIPT_DATA_END_TAG_NAME = 16] = "SCRIPT_DATA_END_TAG_NAME", a[a.SCRIPT_DATA_ESCAPE_START = 17] = "SCRIPT_DATA_ESCAPE_START", a[a.SCRIPT_DATA_ESCAPE_START_DASH = 18] = "SCRIPT_DATA_ESCAPE_START_DASH", a[a.SCRIPT_DATA_ESCAPED = 19] = "SCRIPT_DATA_ESCAPED", a[a.SCRIPT_DATA_ESCAPED_DASH = 20] = "SCRIPT_DATA_ESCAPED_DASH", a[a.SCRIPT_DATA_ESCAPED_DASH_DASH = 21] = "SCRIPT_DATA_ESCAPED_DASH_DASH", a[a.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN = 22] = "SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN", a[a.SCRIPT_DATA_ESCAPED_END_TAG_OPEN = 23] = "SCRIPT_DATA_ESCAPED_END_TAG_OPEN", a[a.SCRIPT_DATA_ESCAPED_END_TAG_NAME = 24] = "SCRIPT_DATA_ESCAPED_END_TAG_NAME", a[a.SCRIPT_DATA_DOUBLE_ESCAPE_START = 25] = "SCRIPT_DATA_DOUBLE_ESCAPE_START", a[a.SCRIPT_DATA_DOUBLE_ESCAPED = 26] = "SCRIPT_DATA_DOUBLE_ESCAPED", a[a.SCRIPT_DATA_DOUBLE_ESCAPED_DASH = 27] = "SCRIPT_DATA_DOUBLE_ESCAPED_DASH", a[a.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH = 28] = "SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH", a[a.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN = 29] = "SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN", a[a.SCRIPT_DATA_DOUBLE_ESCAPE_END = 30] = "SCRIPT_DATA_DOUBLE_ESCAPE_END", a[a.BEFORE_ATTRIBUTE_NAME = 31] = "BEFORE_ATTRIBUTE_NAME", a[a.ATTRIBUTE_NAME = 32] = "ATTRIBUTE_NAME", a[a.AFTER_ATTRIBUTE_NAME = 33] = "AFTER_ATTRIBUTE_NAME", a[a.BEFORE_ATTRIBUTE_VALUE = 34] = "BEFORE_ATTRIBUTE_VALUE", a[a.ATTRIBUTE_VALUE_DOUBLE_QUOTED = 35] = "ATTRIBUTE_VALUE_DOUBLE_QUOTED", a[a.ATTRIBUTE_VALUE_SINGLE_QUOTED = 36] = "ATTRIBUTE_VALUE_SINGLE_QUOTED", a[a.ATTRIBUTE_VALUE_UNQUOTED = 37] = "ATTRIBUTE_VALUE_UNQUOTED", a[a.AFTER_ATTRIBUTE_VALUE_QUOTED = 38] = "AFTER_ATTRIBUTE_VALUE_QUOTED", a[a.SELF_CLOSING_START_TAG = 39] = "SELF_CLOSING_START_TAG", a[a.BOGUS_COMMENT = 40] = "BOGUS_COMMENT", a[a.MARKUP_DECLARATION_OPEN = 41] = "MARKUP_DECLARATION_OPEN", a[a.COMMENT_START = 42] = "COMMENT_START", a[a.COMMENT_START_DASH = 43] = "COMMENT_START_DASH", a[a.COMMENT = 44] = "COMMENT", a[a.COMMENT_LESS_THAN_SIGN = 45] = "COMMENT_LESS_THAN_SIGN", a[a.COMMENT_LESS_THAN_SIGN_BANG = 46] = "COMMENT_LESS_THAN_SIGN_BANG", a[a.COMMENT_LESS_THAN_SIGN_BANG_DASH = 47] = "COMMENT_LESS_THAN_SIGN_BANG_DASH", a[a.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH = 48] = "COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH", a[a.COMMENT_END_DASH = 49] = "COMMENT_END_DASH", a[a.COMMENT_END = 50] = "COMMENT_END", a[a.COMMENT_END_BANG = 51] = "COMMENT_END_BANG", a[a.DOCTYPE = 52] = "DOCTYPE", a[a.BEFORE_DOCTYPE_NAME = 53] = "BEFORE_DOCTYPE_NAME", a[a.DOCTYPE_NAME = 54] = "DOCTYPE_NAME", a[a.AFTER_DOCTYPE_NAME = 55] = "AFTER_DOCTYPE_NAME", a[a.AFTER_DOCTYPE_PUBLIC_KEYWORD = 56] = "AFTER_DOCTYPE_PUBLIC_KEYWORD", a[a.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER = 57] = "BEFORE_DOCTYPE_PUBLIC_IDENTIFIER", a[a.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED = 58] = "DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED", a[a.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED = 59] = "DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED", a[a.AFTER_DOCTYPE_PUBLIC_IDENTIFIER = 60] = "AFTER_DOCTYPE_PUBLIC_IDENTIFIER", a[a.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS = 61] = "BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS", a[a.AFTER_DOCTYPE_SYSTEM_KEYWORD = 62] = "AFTER_DOCTYPE_SYSTEM_KEYWORD", a[a.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER = 63] = "BEFORE_DOCTYPE_SYSTEM_IDENTIFIER", a[a.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED = 64] = "DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED", a[a.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED = 65] = "DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED", a[a.AFTER_DOCTYPE_SYSTEM_IDENTIFIER = 66] = "AFTER_DOCTYPE_SYSTEM_IDENTIFIER", a[a.BOGUS_DOCTYPE = 67] = "BOGUS_DOCTYPE", a[a.CDATA_SECTION = 68] = "CDATA_SECTION", a[a.CDATA_SECTION_BRACKET = 69] = "CDATA_SECTION_BRACKET", a[a.CDATA_SECTION_END = 70] = "CDATA_SECTION_END", a[a.CHARACTER_REFERENCE = 71] = "CHARACTER_REFERENCE", a[a.AMBIGUOUS_AMPERSAND = 72] = "AMBIGUOUS_AMPERSAND";
12
+ })(s || (s = {}));
13
+ const H = {
14
+ DATA: s.DATA,
15
+ RCDATA: s.RCDATA,
16
+ RAWTEXT: s.RAWTEXT,
17
+ SCRIPT_DATA: s.SCRIPT_DATA,
18
+ PLAINTEXT: s.PLAINTEXT,
19
+ CDATA_SECTION: s.CDATA_SECTION
20
+ };
21
+ function f(a) {
22
+ return a >= t.DIGIT_0 && a <= t.DIGIT_9;
23
+ }
24
+ function o(a) {
25
+ return a >= t.LATIN_CAPITAL_A && a <= t.LATIN_CAPITAL_Z;
26
+ }
27
+ function L(a) {
28
+ return a >= t.LATIN_SMALL_A && a <= t.LATIN_SMALL_Z;
29
+ }
30
+ function n(a) {
31
+ return L(a) || o(a);
32
+ }
33
+ function S(a) {
34
+ return n(a) || f(a);
35
+ }
36
+ function c(a) {
37
+ return a + 32;
38
+ }
39
+ function I(a) {
40
+ return a === t.SPACE || a === t.LINE_FEED || a === t.TABULATION || a === t.FORM_FEED;
41
+ }
42
+ function N(a) {
43
+ return I(a) || a === t.SOLIDUS || a === t.GREATER_THAN_SIGN;
44
+ }
45
+ function b(a) {
46
+ return a === t.NULL ? i.nullCharacterReference : a > 1114111 ? i.characterReferenceOutsideUnicodeRange : O(a) ? i.surrogateCharacterReference : R(a) ? i.noncharacterCharacterReference : m(a) || a === t.CARRIAGE_RETURN ? i.controlCharacterReference : null;
47
+ }
48
+ class y {
49
+ constructor(e, r) {
50
+ this.options = e, this.handler = r, this.paused = !1, this.inLoop = !1, this.inForeignNode = !1, this.lastStartTagName = "", this.active = !1, this.state = s.DATA, this.returnState = s.DATA, this.entityStartPos = 0, this.consumedAfterSnapshot = -1, this.currentCharacterToken = null, this.currentToken = null, this.currentAttr = { name: "", value: "" }, this.preprocessor = new u(r), this.currentLocation = this.getCurrentLocation(-1), this.entityDecoder = new k(d, (E, h) => {
51
+ this.preprocessor.pos = this.entityStartPos + h - 1, this._flushCodePointConsumedAsCharacterReference(E);
52
+ }, r.onParseError ? {
53
+ missingSemicolonAfterCharacterReference: () => {
54
+ this._err(i.missingSemicolonAfterCharacterReference, 1);
55
+ },
56
+ absenceOfDigitsInNumericCharacterReference: (E) => {
57
+ this._err(i.absenceOfDigitsInNumericCharacterReference, this.entityStartPos - this.preprocessor.pos + E);
58
+ },
59
+ validateNumericCharacterReference: (E) => {
60
+ const h = b(E);
61
+ h && this._err(h, 1);
62
+ }
63
+ } : void 0);
64
+ }
65
+ //Errors
66
+ _err(e, r = 0) {
67
+ var E, h;
68
+ (h = (E = this.handler).onParseError) === null || h === void 0 || h.call(E, this.preprocessor.getError(e, r));
69
+ }
70
+ // NOTE: `offset` may never run across line boundaries.
71
+ getCurrentLocation(e) {
72
+ return this.options.sourceCodeLocationInfo ? {
73
+ startLine: this.preprocessor.line,
74
+ startCol: this.preprocessor.col - e,
75
+ startOffset: this.preprocessor.offset - e,
76
+ endLine: -1,
77
+ endCol: -1,
78
+ endOffset: -1
79
+ } : null;
80
+ }
81
+ _runParsingLoop() {
82
+ if (!this.inLoop) {
83
+ for (this.inLoop = !0; this.active && !this.paused; ) {
84
+ this.consumedAfterSnapshot = 0;
85
+ const e = this._consume();
86
+ this._ensureHibernation() || this._callState(e);
87
+ }
88
+ this.inLoop = !1;
89
+ }
90
+ }
91
+ //API
92
+ pause() {
93
+ this.paused = !0;
94
+ }
95
+ resume(e) {
96
+ if (!this.paused)
97
+ throw new Error("Parser was already resumed");
98
+ this.paused = !1, !this.inLoop && (this._runParsingLoop(), this.paused || e?.());
99
+ }
100
+ write(e, r, E) {
101
+ this.active = !0, this.preprocessor.write(e, r), this._runParsingLoop(), this.paused || E?.();
102
+ }
103
+ insertHtmlAtCurrentPos(e) {
104
+ this.active = !0, this.preprocessor.insertHtmlAtCurrentPos(e), this._runParsingLoop();
105
+ }
106
+ //Hibernation
107
+ _ensureHibernation() {
108
+ return this.preprocessor.endOfChunkHit ? (this.preprocessor.retreat(this.consumedAfterSnapshot), this.consumedAfterSnapshot = 0, this.active = !1, !0) : !1;
109
+ }
110
+ //Consumption
111
+ _consume() {
112
+ return this.consumedAfterSnapshot++, this.preprocessor.advance();
113
+ }
114
+ _advanceBy(e) {
115
+ this.consumedAfterSnapshot += e;
116
+ for (let r = 0; r < e; r++)
117
+ this.preprocessor.advance();
118
+ }
119
+ _consumeSequenceIfMatch(e, r) {
120
+ return this.preprocessor.startsWith(e, r) ? (this._advanceBy(e.length - 1), !0) : !1;
121
+ }
122
+ //Token creation
123
+ _createStartTagToken() {
124
+ this.currentToken = {
125
+ type: A.START_TAG,
126
+ tagName: "",
127
+ tagID: C.UNKNOWN,
128
+ selfClosing: !1,
129
+ ackSelfClosing: !1,
130
+ attrs: [],
131
+ location: this.getCurrentLocation(1)
132
+ };
133
+ }
134
+ _createEndTagToken() {
135
+ this.currentToken = {
136
+ type: A.END_TAG,
137
+ tagName: "",
138
+ tagID: C.UNKNOWN,
139
+ selfClosing: !1,
140
+ ackSelfClosing: !1,
141
+ attrs: [],
142
+ location: this.getCurrentLocation(2)
143
+ };
144
+ }
145
+ _createCommentToken(e) {
146
+ this.currentToken = {
147
+ type: A.COMMENT,
148
+ data: "",
149
+ location: this.getCurrentLocation(e)
150
+ };
151
+ }
152
+ _createDoctypeToken(e) {
153
+ this.currentToken = {
154
+ type: A.DOCTYPE,
155
+ name: e,
156
+ forceQuirks: !1,
157
+ publicId: null,
158
+ systemId: null,
159
+ location: this.currentLocation
160
+ };
161
+ }
162
+ _createCharacterToken(e, r) {
163
+ this.currentCharacterToken = {
164
+ type: e,
165
+ chars: r,
166
+ location: this.currentLocation
167
+ };
168
+ }
169
+ //Tag attributes
170
+ _createAttr(e) {
171
+ this.currentAttr = {
172
+ name: e,
173
+ value: ""
174
+ }, this.currentLocation = this.getCurrentLocation(0);
175
+ }
176
+ _leaveAttrName() {
177
+ var e, r;
178
+ const E = this.currentToken;
179
+ if (P(E, this.currentAttr.name) === null) {
180
+ if (E.attrs.push(this.currentAttr), E.location && this.currentLocation) {
181
+ const h = (e = (r = E.location).attrs) !== null && e !== void 0 ? e : r.attrs = /* @__PURE__ */ Object.create(null);
182
+ h[this.currentAttr.name] = this.currentLocation, this._leaveAttrValue();
183
+ }
184
+ } else
185
+ this._err(i.duplicateAttribute);
186
+ }
187
+ _leaveAttrValue() {
188
+ this.currentLocation && (this.currentLocation.endLine = this.preprocessor.line, this.currentLocation.endCol = this.preprocessor.col, this.currentLocation.endOffset = this.preprocessor.offset);
189
+ }
190
+ //Token emission
191
+ prepareToken(e) {
192
+ this._emitCurrentCharacterToken(e.location), this.currentToken = null, e.location && (e.location.endLine = this.preprocessor.line, e.location.endCol = this.preprocessor.col + 1, e.location.endOffset = this.preprocessor.offset + 1), this.currentLocation = this.getCurrentLocation(-1);
193
+ }
194
+ emitCurrentTagToken() {
195
+ const e = this.currentToken;
196
+ this.prepareToken(e), e.tagID = l(e.tagName), e.type === A.START_TAG ? (this.lastStartTagName = e.tagName, this.handler.onStartTag(e)) : (e.attrs.length > 0 && this._err(i.endTagWithAttributes), e.selfClosing && this._err(i.endTagWithTrailingSolidus), this.handler.onEndTag(e)), this.preprocessor.dropParsedChunk();
197
+ }
198
+ emitCurrentComment(e) {
199
+ this.prepareToken(e), this.handler.onComment(e), this.preprocessor.dropParsedChunk();
200
+ }
201
+ emitCurrentDoctype(e) {
202
+ this.prepareToken(e), this.handler.onDoctype(e), this.preprocessor.dropParsedChunk();
203
+ }
204
+ _emitCurrentCharacterToken(e) {
205
+ if (this.currentCharacterToken) {
206
+ switch (e && this.currentCharacterToken.location && (this.currentCharacterToken.location.endLine = e.startLine, this.currentCharacterToken.location.endCol = e.startCol, this.currentCharacterToken.location.endOffset = e.startOffset), this.currentCharacterToken.type) {
207
+ case A.CHARACTER: {
208
+ this.handler.onCharacter(this.currentCharacterToken);
209
+ break;
210
+ }
211
+ case A.NULL_CHARACTER: {
212
+ this.handler.onNullCharacter(this.currentCharacterToken);
213
+ break;
214
+ }
215
+ case A.WHITESPACE_CHARACTER: {
216
+ this.handler.onWhitespaceCharacter(this.currentCharacterToken);
217
+ break;
218
+ }
219
+ }
220
+ this.currentCharacterToken = null;
221
+ }
222
+ }
223
+ _emitEOFToken() {
224
+ const e = this.getCurrentLocation(0);
225
+ e && (e.endLine = e.startLine, e.endCol = e.startCol, e.endOffset = e.startOffset), this._emitCurrentCharacterToken(e), this.handler.onEof({ type: A.EOF, location: e }), this.active = !1;
226
+ }
227
+ //Characters emission
228
+ //OPTIMIZATION: The specification uses only one type of character token (one token per character).
229
+ //This causes a huge memory overhead and a lot of unnecessary parser loops. parse5 uses 3 groups of characters.
230
+ //If we have a sequence of characters that belong to the same group, the parser can process it
231
+ //as a single solid character token.
232
+ //So, there are 3 types of character tokens in parse5:
233
+ //1)TokenType.NULL_CHARACTER - \u0000-character sequences (e.g. '\u0000\u0000\u0000')
234
+ //2)TokenType.WHITESPACE_CHARACTER - any whitespace/new-line character sequences (e.g. '\n \r\t \f')
235
+ //3)TokenType.CHARACTER - any character sequence which don't belong to groups 1 and 2 (e.g. 'abcdef1234@@#$%^')
236
+ _appendCharToCurrentCharacterToken(e, r) {
237
+ if (this.currentCharacterToken)
238
+ if (this.currentCharacterToken.type === e) {
239
+ this.currentCharacterToken.chars += r;
240
+ return;
241
+ } else
242
+ this.currentLocation = this.getCurrentLocation(0), this._emitCurrentCharacterToken(this.currentLocation), this.preprocessor.dropParsedChunk();
243
+ this._createCharacterToken(e, r);
244
+ }
245
+ _emitCodePoint(e) {
246
+ const r = I(e) ? A.WHITESPACE_CHARACTER : e === t.NULL ? A.NULL_CHARACTER : A.CHARACTER;
247
+ this._appendCharToCurrentCharacterToken(r, String.fromCodePoint(e));
248
+ }
249
+ //NOTE: used when we emit characters explicitly.
250
+ //This is always for non-whitespace and non-null characters, which allows us to avoid additional checks.
251
+ _emitChars(e) {
252
+ this._appendCharToCurrentCharacterToken(A.CHARACTER, e);
253
+ }
254
+ // Character reference helpers
255
+ _startCharacterReference() {
256
+ this.returnState = this.state, this.state = s.CHARACTER_REFERENCE, this.entityStartPos = this.preprocessor.pos, this.entityDecoder.startEntity(this._isCharacterReferenceInAttribute() ? D.Attribute : D.Legacy);
257
+ }
258
+ _isCharacterReferenceInAttribute() {
259
+ return this.returnState === s.ATTRIBUTE_VALUE_DOUBLE_QUOTED || this.returnState === s.ATTRIBUTE_VALUE_SINGLE_QUOTED || this.returnState === s.ATTRIBUTE_VALUE_UNQUOTED;
260
+ }
261
+ _flushCodePointConsumedAsCharacterReference(e) {
262
+ this._isCharacterReferenceInAttribute() ? this.currentAttr.value += String.fromCodePoint(e) : this._emitCodePoint(e);
263
+ }
264
+ // Calling states this way turns out to be much faster than any other approach.
265
+ _callState(e) {
266
+ switch (this.state) {
267
+ case s.DATA: {
268
+ this._stateData(e);
269
+ break;
270
+ }
271
+ case s.RCDATA: {
272
+ this._stateRcdata(e);
273
+ break;
274
+ }
275
+ case s.RAWTEXT: {
276
+ this._stateRawtext(e);
277
+ break;
278
+ }
279
+ case s.SCRIPT_DATA: {
280
+ this._stateScriptData(e);
281
+ break;
282
+ }
283
+ case s.PLAINTEXT: {
284
+ this._statePlaintext(e);
285
+ break;
286
+ }
287
+ case s.TAG_OPEN: {
288
+ this._stateTagOpen(e);
289
+ break;
290
+ }
291
+ case s.END_TAG_OPEN: {
292
+ this._stateEndTagOpen(e);
293
+ break;
294
+ }
295
+ case s.TAG_NAME: {
296
+ this._stateTagName(e);
297
+ break;
298
+ }
299
+ case s.RCDATA_LESS_THAN_SIGN: {
300
+ this._stateRcdataLessThanSign(e);
301
+ break;
302
+ }
303
+ case s.RCDATA_END_TAG_OPEN: {
304
+ this._stateRcdataEndTagOpen(e);
305
+ break;
306
+ }
307
+ case s.RCDATA_END_TAG_NAME: {
308
+ this._stateRcdataEndTagName(e);
309
+ break;
310
+ }
311
+ case s.RAWTEXT_LESS_THAN_SIGN: {
312
+ this._stateRawtextLessThanSign(e);
313
+ break;
314
+ }
315
+ case s.RAWTEXT_END_TAG_OPEN: {
316
+ this._stateRawtextEndTagOpen(e);
317
+ break;
318
+ }
319
+ case s.RAWTEXT_END_TAG_NAME: {
320
+ this._stateRawtextEndTagName(e);
321
+ break;
322
+ }
323
+ case s.SCRIPT_DATA_LESS_THAN_SIGN: {
324
+ this._stateScriptDataLessThanSign(e);
325
+ break;
326
+ }
327
+ case s.SCRIPT_DATA_END_TAG_OPEN: {
328
+ this._stateScriptDataEndTagOpen(e);
329
+ break;
330
+ }
331
+ case s.SCRIPT_DATA_END_TAG_NAME: {
332
+ this._stateScriptDataEndTagName(e);
333
+ break;
334
+ }
335
+ case s.SCRIPT_DATA_ESCAPE_START: {
336
+ this._stateScriptDataEscapeStart(e);
337
+ break;
338
+ }
339
+ case s.SCRIPT_DATA_ESCAPE_START_DASH: {
340
+ this._stateScriptDataEscapeStartDash(e);
341
+ break;
342
+ }
343
+ case s.SCRIPT_DATA_ESCAPED: {
344
+ this._stateScriptDataEscaped(e);
345
+ break;
346
+ }
347
+ case s.SCRIPT_DATA_ESCAPED_DASH: {
348
+ this._stateScriptDataEscapedDash(e);
349
+ break;
350
+ }
351
+ case s.SCRIPT_DATA_ESCAPED_DASH_DASH: {
352
+ this._stateScriptDataEscapedDashDash(e);
353
+ break;
354
+ }
355
+ case s.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN: {
356
+ this._stateScriptDataEscapedLessThanSign(e);
357
+ break;
358
+ }
359
+ case s.SCRIPT_DATA_ESCAPED_END_TAG_OPEN: {
360
+ this._stateScriptDataEscapedEndTagOpen(e);
361
+ break;
362
+ }
363
+ case s.SCRIPT_DATA_ESCAPED_END_TAG_NAME: {
364
+ this._stateScriptDataEscapedEndTagName(e);
365
+ break;
366
+ }
367
+ case s.SCRIPT_DATA_DOUBLE_ESCAPE_START: {
368
+ this._stateScriptDataDoubleEscapeStart(e);
369
+ break;
370
+ }
371
+ case s.SCRIPT_DATA_DOUBLE_ESCAPED: {
372
+ this._stateScriptDataDoubleEscaped(e);
373
+ break;
374
+ }
375
+ case s.SCRIPT_DATA_DOUBLE_ESCAPED_DASH: {
376
+ this._stateScriptDataDoubleEscapedDash(e);
377
+ break;
378
+ }
379
+ case s.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH: {
380
+ this._stateScriptDataDoubleEscapedDashDash(e);
381
+ break;
382
+ }
383
+ case s.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN: {
384
+ this._stateScriptDataDoubleEscapedLessThanSign(e);
385
+ break;
386
+ }
387
+ case s.SCRIPT_DATA_DOUBLE_ESCAPE_END: {
388
+ this._stateScriptDataDoubleEscapeEnd(e);
389
+ break;
390
+ }
391
+ case s.BEFORE_ATTRIBUTE_NAME: {
392
+ this._stateBeforeAttributeName(e);
393
+ break;
394
+ }
395
+ case s.ATTRIBUTE_NAME: {
396
+ this._stateAttributeName(e);
397
+ break;
398
+ }
399
+ case s.AFTER_ATTRIBUTE_NAME: {
400
+ this._stateAfterAttributeName(e);
401
+ break;
402
+ }
403
+ case s.BEFORE_ATTRIBUTE_VALUE: {
404
+ this._stateBeforeAttributeValue(e);
405
+ break;
406
+ }
407
+ case s.ATTRIBUTE_VALUE_DOUBLE_QUOTED: {
408
+ this._stateAttributeValueDoubleQuoted(e);
409
+ break;
410
+ }
411
+ case s.ATTRIBUTE_VALUE_SINGLE_QUOTED: {
412
+ this._stateAttributeValueSingleQuoted(e);
413
+ break;
414
+ }
415
+ case s.ATTRIBUTE_VALUE_UNQUOTED: {
416
+ this._stateAttributeValueUnquoted(e);
417
+ break;
418
+ }
419
+ case s.AFTER_ATTRIBUTE_VALUE_QUOTED: {
420
+ this._stateAfterAttributeValueQuoted(e);
421
+ break;
422
+ }
423
+ case s.SELF_CLOSING_START_TAG: {
424
+ this._stateSelfClosingStartTag(e);
425
+ break;
426
+ }
427
+ case s.BOGUS_COMMENT: {
428
+ this._stateBogusComment(e);
429
+ break;
430
+ }
431
+ case s.MARKUP_DECLARATION_OPEN: {
432
+ this._stateMarkupDeclarationOpen(e);
433
+ break;
434
+ }
435
+ case s.COMMENT_START: {
436
+ this._stateCommentStart(e);
437
+ break;
438
+ }
439
+ case s.COMMENT_START_DASH: {
440
+ this._stateCommentStartDash(e);
441
+ break;
442
+ }
443
+ case s.COMMENT: {
444
+ this._stateComment(e);
445
+ break;
446
+ }
447
+ case s.COMMENT_LESS_THAN_SIGN: {
448
+ this._stateCommentLessThanSign(e);
449
+ break;
450
+ }
451
+ case s.COMMENT_LESS_THAN_SIGN_BANG: {
452
+ this._stateCommentLessThanSignBang(e);
453
+ break;
454
+ }
455
+ case s.COMMENT_LESS_THAN_SIGN_BANG_DASH: {
456
+ this._stateCommentLessThanSignBangDash(e);
457
+ break;
458
+ }
459
+ case s.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH: {
460
+ this._stateCommentLessThanSignBangDashDash(e);
461
+ break;
462
+ }
463
+ case s.COMMENT_END_DASH: {
464
+ this._stateCommentEndDash(e);
465
+ break;
466
+ }
467
+ case s.COMMENT_END: {
468
+ this._stateCommentEnd(e);
469
+ break;
470
+ }
471
+ case s.COMMENT_END_BANG: {
472
+ this._stateCommentEndBang(e);
473
+ break;
474
+ }
475
+ case s.DOCTYPE: {
476
+ this._stateDoctype(e);
477
+ break;
478
+ }
479
+ case s.BEFORE_DOCTYPE_NAME: {
480
+ this._stateBeforeDoctypeName(e);
481
+ break;
482
+ }
483
+ case s.DOCTYPE_NAME: {
484
+ this._stateDoctypeName(e);
485
+ break;
486
+ }
487
+ case s.AFTER_DOCTYPE_NAME: {
488
+ this._stateAfterDoctypeName(e);
489
+ break;
490
+ }
491
+ case s.AFTER_DOCTYPE_PUBLIC_KEYWORD: {
492
+ this._stateAfterDoctypePublicKeyword(e);
493
+ break;
494
+ }
495
+ case s.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER: {
496
+ this._stateBeforeDoctypePublicIdentifier(e);
497
+ break;
498
+ }
499
+ case s.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED: {
500
+ this._stateDoctypePublicIdentifierDoubleQuoted(e);
501
+ break;
502
+ }
503
+ case s.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED: {
504
+ this._stateDoctypePublicIdentifierSingleQuoted(e);
505
+ break;
506
+ }
507
+ case s.AFTER_DOCTYPE_PUBLIC_IDENTIFIER: {
508
+ this._stateAfterDoctypePublicIdentifier(e);
509
+ break;
510
+ }
511
+ case s.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS: {
512
+ this._stateBetweenDoctypePublicAndSystemIdentifiers(e);
513
+ break;
514
+ }
515
+ case s.AFTER_DOCTYPE_SYSTEM_KEYWORD: {
516
+ this._stateAfterDoctypeSystemKeyword(e);
517
+ break;
518
+ }
519
+ case s.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER: {
520
+ this._stateBeforeDoctypeSystemIdentifier(e);
521
+ break;
522
+ }
523
+ case s.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED: {
524
+ this._stateDoctypeSystemIdentifierDoubleQuoted(e);
525
+ break;
526
+ }
527
+ case s.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED: {
528
+ this._stateDoctypeSystemIdentifierSingleQuoted(e);
529
+ break;
530
+ }
531
+ case s.AFTER_DOCTYPE_SYSTEM_IDENTIFIER: {
532
+ this._stateAfterDoctypeSystemIdentifier(e);
533
+ break;
534
+ }
535
+ case s.BOGUS_DOCTYPE: {
536
+ this._stateBogusDoctype(e);
537
+ break;
538
+ }
539
+ case s.CDATA_SECTION: {
540
+ this._stateCdataSection(e);
541
+ break;
542
+ }
543
+ case s.CDATA_SECTION_BRACKET: {
544
+ this._stateCdataSectionBracket(e);
545
+ break;
546
+ }
547
+ case s.CDATA_SECTION_END: {
548
+ this._stateCdataSectionEnd(e);
549
+ break;
550
+ }
551
+ case s.CHARACTER_REFERENCE: {
552
+ this._stateCharacterReference();
553
+ break;
554
+ }
555
+ case s.AMBIGUOUS_AMPERSAND: {
556
+ this._stateAmbiguousAmpersand(e);
557
+ break;
558
+ }
559
+ default:
560
+ throw new Error("Unknown state");
561
+ }
562
+ }
563
+ // State machine
564
+ // Data state
565
+ //------------------------------------------------------------------
566
+ _stateData(e) {
567
+ switch (e) {
568
+ case t.LESS_THAN_SIGN: {
569
+ this.state = s.TAG_OPEN;
570
+ break;
571
+ }
572
+ case t.AMPERSAND: {
573
+ this._startCharacterReference();
574
+ break;
575
+ }
576
+ case t.NULL: {
577
+ this._err(i.unexpectedNullCharacter), this._emitCodePoint(e);
578
+ break;
579
+ }
580
+ case t.EOF: {
581
+ this._emitEOFToken();
582
+ break;
583
+ }
584
+ default:
585
+ this._emitCodePoint(e);
586
+ }
587
+ }
588
+ // RCDATA state
589
+ //------------------------------------------------------------------
590
+ _stateRcdata(e) {
591
+ switch (e) {
592
+ case t.AMPERSAND: {
593
+ this._startCharacterReference();
594
+ break;
595
+ }
596
+ case t.LESS_THAN_SIGN: {
597
+ this.state = s.RCDATA_LESS_THAN_SIGN;
598
+ break;
599
+ }
600
+ case t.NULL: {
601
+ this._err(i.unexpectedNullCharacter), this._emitChars(_);
602
+ break;
603
+ }
604
+ case t.EOF: {
605
+ this._emitEOFToken();
606
+ break;
607
+ }
608
+ default:
609
+ this._emitCodePoint(e);
610
+ }
611
+ }
612
+ // RAWTEXT state
613
+ //------------------------------------------------------------------
614
+ _stateRawtext(e) {
615
+ switch (e) {
616
+ case t.LESS_THAN_SIGN: {
617
+ this.state = s.RAWTEXT_LESS_THAN_SIGN;
618
+ break;
619
+ }
620
+ case t.NULL: {
621
+ this._err(i.unexpectedNullCharacter), this._emitChars(_);
622
+ break;
623
+ }
624
+ case t.EOF: {
625
+ this._emitEOFToken();
626
+ break;
627
+ }
628
+ default:
629
+ this._emitCodePoint(e);
630
+ }
631
+ }
632
+ // Script data state
633
+ //------------------------------------------------------------------
634
+ _stateScriptData(e) {
635
+ switch (e) {
636
+ case t.LESS_THAN_SIGN: {
637
+ this.state = s.SCRIPT_DATA_LESS_THAN_SIGN;
638
+ break;
639
+ }
640
+ case t.NULL: {
641
+ this._err(i.unexpectedNullCharacter), this._emitChars(_);
642
+ break;
643
+ }
644
+ case t.EOF: {
645
+ this._emitEOFToken();
646
+ break;
647
+ }
648
+ default:
649
+ this._emitCodePoint(e);
650
+ }
651
+ }
652
+ // PLAINTEXT state
653
+ //------------------------------------------------------------------
654
+ _statePlaintext(e) {
655
+ switch (e) {
656
+ case t.NULL: {
657
+ this._err(i.unexpectedNullCharacter), this._emitChars(_);
658
+ break;
659
+ }
660
+ case t.EOF: {
661
+ this._emitEOFToken();
662
+ break;
663
+ }
664
+ default:
665
+ this._emitCodePoint(e);
666
+ }
667
+ }
668
+ // Tag open state
669
+ //------------------------------------------------------------------
670
+ _stateTagOpen(e) {
671
+ if (n(e))
672
+ this._createStartTagToken(), this.state = s.TAG_NAME, this._stateTagName(e);
673
+ else
674
+ switch (e) {
675
+ case t.EXCLAMATION_MARK: {
676
+ this.state = s.MARKUP_DECLARATION_OPEN;
677
+ break;
678
+ }
679
+ case t.SOLIDUS: {
680
+ this.state = s.END_TAG_OPEN;
681
+ break;
682
+ }
683
+ case t.QUESTION_MARK: {
684
+ this._err(i.unexpectedQuestionMarkInsteadOfTagName), this._createCommentToken(1), this.state = s.BOGUS_COMMENT, this._stateBogusComment(e);
685
+ break;
686
+ }
687
+ case t.EOF: {
688
+ this._err(i.eofBeforeTagName), this._emitChars("<"), this._emitEOFToken();
689
+ break;
690
+ }
691
+ default:
692
+ this._err(i.invalidFirstCharacterOfTagName), this._emitChars("<"), this.state = s.DATA, this._stateData(e);
693
+ }
694
+ }
695
+ // End tag open state
696
+ //------------------------------------------------------------------
697
+ _stateEndTagOpen(e) {
698
+ if (n(e))
699
+ this._createEndTagToken(), this.state = s.TAG_NAME, this._stateTagName(e);
700
+ else
701
+ switch (e) {
702
+ case t.GREATER_THAN_SIGN: {
703
+ this._err(i.missingEndTagName), this.state = s.DATA;
704
+ break;
705
+ }
706
+ case t.EOF: {
707
+ this._err(i.eofBeforeTagName), this._emitChars("</"), this._emitEOFToken();
708
+ break;
709
+ }
710
+ default:
711
+ this._err(i.invalidFirstCharacterOfTagName), this._createCommentToken(2), this.state = s.BOGUS_COMMENT, this._stateBogusComment(e);
712
+ }
713
+ }
714
+ // Tag name state
715
+ //------------------------------------------------------------------
716
+ _stateTagName(e) {
717
+ const r = this.currentToken;
718
+ switch (e) {
719
+ case t.SPACE:
720
+ case t.LINE_FEED:
721
+ case t.TABULATION:
722
+ case t.FORM_FEED: {
723
+ this.state = s.BEFORE_ATTRIBUTE_NAME;
724
+ break;
725
+ }
726
+ case t.SOLIDUS: {
727
+ this.state = s.SELF_CLOSING_START_TAG;
728
+ break;
729
+ }
730
+ case t.GREATER_THAN_SIGN: {
731
+ this.state = s.DATA, this.emitCurrentTagToken();
732
+ break;
733
+ }
734
+ case t.NULL: {
735
+ this._err(i.unexpectedNullCharacter), r.tagName += _;
736
+ break;
737
+ }
738
+ case t.EOF: {
739
+ this._err(i.eofInTag), this._emitEOFToken();
740
+ break;
741
+ }
742
+ default:
743
+ r.tagName += String.fromCodePoint(o(e) ? c(e) : e);
744
+ }
745
+ }
746
+ // RCDATA less-than sign state
747
+ //------------------------------------------------------------------
748
+ _stateRcdataLessThanSign(e) {
749
+ e === t.SOLIDUS ? this.state = s.RCDATA_END_TAG_OPEN : (this._emitChars("<"), this.state = s.RCDATA, this._stateRcdata(e));
750
+ }
751
+ // RCDATA end tag open state
752
+ //------------------------------------------------------------------
753
+ _stateRcdataEndTagOpen(e) {
754
+ n(e) ? (this.state = s.RCDATA_END_TAG_NAME, this._stateRcdataEndTagName(e)) : (this._emitChars("</"), this.state = s.RCDATA, this._stateRcdata(e));
755
+ }
756
+ handleSpecialEndTag(e) {
757
+ if (!this.preprocessor.startsWith(this.lastStartTagName, !1))
758
+ return !this._ensureHibernation();
759
+ this._createEndTagToken();
760
+ const r = this.currentToken;
761
+ switch (r.tagName = this.lastStartTagName, this.preprocessor.peek(this.lastStartTagName.length)) {
762
+ case t.SPACE:
763
+ case t.LINE_FEED:
764
+ case t.TABULATION:
765
+ case t.FORM_FEED:
766
+ return this._advanceBy(this.lastStartTagName.length), this.state = s.BEFORE_ATTRIBUTE_NAME, !1;
767
+ case t.SOLIDUS:
768
+ return this._advanceBy(this.lastStartTagName.length), this.state = s.SELF_CLOSING_START_TAG, !1;
769
+ case t.GREATER_THAN_SIGN:
770
+ return this._advanceBy(this.lastStartTagName.length), this.emitCurrentTagToken(), this.state = s.DATA, !1;
771
+ default:
772
+ return !this._ensureHibernation();
773
+ }
774
+ }
775
+ // RCDATA end tag name state
776
+ //------------------------------------------------------------------
777
+ _stateRcdataEndTagName(e) {
778
+ this.handleSpecialEndTag(e) && (this._emitChars("</"), this.state = s.RCDATA, this._stateRcdata(e));
779
+ }
780
+ // RAWTEXT less-than sign state
781
+ //------------------------------------------------------------------
782
+ _stateRawtextLessThanSign(e) {
783
+ e === t.SOLIDUS ? this.state = s.RAWTEXT_END_TAG_OPEN : (this._emitChars("<"), this.state = s.RAWTEXT, this._stateRawtext(e));
784
+ }
785
+ // RAWTEXT end tag open state
786
+ //------------------------------------------------------------------
787
+ _stateRawtextEndTagOpen(e) {
788
+ n(e) ? (this.state = s.RAWTEXT_END_TAG_NAME, this._stateRawtextEndTagName(e)) : (this._emitChars("</"), this.state = s.RAWTEXT, this._stateRawtext(e));
789
+ }
790
+ // RAWTEXT end tag name state
791
+ //------------------------------------------------------------------
792
+ _stateRawtextEndTagName(e) {
793
+ this.handleSpecialEndTag(e) && (this._emitChars("</"), this.state = s.RAWTEXT, this._stateRawtext(e));
794
+ }
795
+ // Script data less-than sign state
796
+ //------------------------------------------------------------------
797
+ _stateScriptDataLessThanSign(e) {
798
+ switch (e) {
799
+ case t.SOLIDUS: {
800
+ this.state = s.SCRIPT_DATA_END_TAG_OPEN;
801
+ break;
802
+ }
803
+ case t.EXCLAMATION_MARK: {
804
+ this.state = s.SCRIPT_DATA_ESCAPE_START, this._emitChars("<!");
805
+ break;
806
+ }
807
+ default:
808
+ this._emitChars("<"), this.state = s.SCRIPT_DATA, this._stateScriptData(e);
809
+ }
810
+ }
811
+ // Script data end tag open state
812
+ //------------------------------------------------------------------
813
+ _stateScriptDataEndTagOpen(e) {
814
+ n(e) ? (this.state = s.SCRIPT_DATA_END_TAG_NAME, this._stateScriptDataEndTagName(e)) : (this._emitChars("</"), this.state = s.SCRIPT_DATA, this._stateScriptData(e));
815
+ }
816
+ // Script data end tag name state
817
+ //------------------------------------------------------------------
818
+ _stateScriptDataEndTagName(e) {
819
+ this.handleSpecialEndTag(e) && (this._emitChars("</"), this.state = s.SCRIPT_DATA, this._stateScriptData(e));
820
+ }
821
+ // Script data escape start state
822
+ //------------------------------------------------------------------
823
+ _stateScriptDataEscapeStart(e) {
824
+ e === t.HYPHEN_MINUS ? (this.state = s.SCRIPT_DATA_ESCAPE_START_DASH, this._emitChars("-")) : (this.state = s.SCRIPT_DATA, this._stateScriptData(e));
825
+ }
826
+ // Script data escape start dash state
827
+ //------------------------------------------------------------------
828
+ _stateScriptDataEscapeStartDash(e) {
829
+ e === t.HYPHEN_MINUS ? (this.state = s.SCRIPT_DATA_ESCAPED_DASH_DASH, this._emitChars("-")) : (this.state = s.SCRIPT_DATA, this._stateScriptData(e));
830
+ }
831
+ // Script data escaped state
832
+ //------------------------------------------------------------------
833
+ _stateScriptDataEscaped(e) {
834
+ switch (e) {
835
+ case t.HYPHEN_MINUS: {
836
+ this.state = s.SCRIPT_DATA_ESCAPED_DASH, this._emitChars("-");
837
+ break;
838
+ }
839
+ case t.LESS_THAN_SIGN: {
840
+ this.state = s.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;
841
+ break;
842
+ }
843
+ case t.NULL: {
844
+ this._err(i.unexpectedNullCharacter), this._emitChars(_);
845
+ break;
846
+ }
847
+ case t.EOF: {
848
+ this._err(i.eofInScriptHtmlCommentLikeText), this._emitEOFToken();
849
+ break;
850
+ }
851
+ default:
852
+ this._emitCodePoint(e);
853
+ }
854
+ }
855
+ // Script data escaped dash state
856
+ //------------------------------------------------------------------
857
+ _stateScriptDataEscapedDash(e) {
858
+ switch (e) {
859
+ case t.HYPHEN_MINUS: {
860
+ this.state = s.SCRIPT_DATA_ESCAPED_DASH_DASH, this._emitChars("-");
861
+ break;
862
+ }
863
+ case t.LESS_THAN_SIGN: {
864
+ this.state = s.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;
865
+ break;
866
+ }
867
+ case t.NULL: {
868
+ this._err(i.unexpectedNullCharacter), this.state = s.SCRIPT_DATA_ESCAPED, this._emitChars(_);
869
+ break;
870
+ }
871
+ case t.EOF: {
872
+ this._err(i.eofInScriptHtmlCommentLikeText), this._emitEOFToken();
873
+ break;
874
+ }
875
+ default:
876
+ this.state = s.SCRIPT_DATA_ESCAPED, this._emitCodePoint(e);
877
+ }
878
+ }
879
+ // Script data escaped dash dash state
880
+ //------------------------------------------------------------------
881
+ _stateScriptDataEscapedDashDash(e) {
882
+ switch (e) {
883
+ case t.HYPHEN_MINUS: {
884
+ this._emitChars("-");
885
+ break;
886
+ }
887
+ case t.LESS_THAN_SIGN: {
888
+ this.state = s.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;
889
+ break;
890
+ }
891
+ case t.GREATER_THAN_SIGN: {
892
+ this.state = s.SCRIPT_DATA, this._emitChars(">");
893
+ break;
894
+ }
895
+ case t.NULL: {
896
+ this._err(i.unexpectedNullCharacter), this.state = s.SCRIPT_DATA_ESCAPED, this._emitChars(_);
897
+ break;
898
+ }
899
+ case t.EOF: {
900
+ this._err(i.eofInScriptHtmlCommentLikeText), this._emitEOFToken();
901
+ break;
902
+ }
903
+ default:
904
+ this.state = s.SCRIPT_DATA_ESCAPED, this._emitCodePoint(e);
905
+ }
906
+ }
907
+ // Script data escaped less-than sign state
908
+ //------------------------------------------------------------------
909
+ _stateScriptDataEscapedLessThanSign(e) {
910
+ e === t.SOLIDUS ? this.state = s.SCRIPT_DATA_ESCAPED_END_TAG_OPEN : n(e) ? (this._emitChars("<"), this.state = s.SCRIPT_DATA_DOUBLE_ESCAPE_START, this._stateScriptDataDoubleEscapeStart(e)) : (this._emitChars("<"), this.state = s.SCRIPT_DATA_ESCAPED, this._stateScriptDataEscaped(e));
911
+ }
912
+ // Script data escaped end tag open state
913
+ //------------------------------------------------------------------
914
+ _stateScriptDataEscapedEndTagOpen(e) {
915
+ n(e) ? (this.state = s.SCRIPT_DATA_ESCAPED_END_TAG_NAME, this._stateScriptDataEscapedEndTagName(e)) : (this._emitChars("</"), this.state = s.SCRIPT_DATA_ESCAPED, this._stateScriptDataEscaped(e));
916
+ }
917
+ // Script data escaped end tag name state
918
+ //------------------------------------------------------------------
919
+ _stateScriptDataEscapedEndTagName(e) {
920
+ this.handleSpecialEndTag(e) && (this._emitChars("</"), this.state = s.SCRIPT_DATA_ESCAPED, this._stateScriptDataEscaped(e));
921
+ }
922
+ // Script data double escape start state
923
+ //------------------------------------------------------------------
924
+ _stateScriptDataDoubleEscapeStart(e) {
925
+ if (this.preprocessor.startsWith(T.SCRIPT, !1) && N(this.preprocessor.peek(T.SCRIPT.length))) {
926
+ this._emitCodePoint(e);
927
+ for (let r = 0; r < T.SCRIPT.length; r++)
928
+ this._emitCodePoint(this._consume());
929
+ this.state = s.SCRIPT_DATA_DOUBLE_ESCAPED;
930
+ } else this._ensureHibernation() || (this.state = s.SCRIPT_DATA_ESCAPED, this._stateScriptDataEscaped(e));
931
+ }
932
+ // Script data double escaped state
933
+ //------------------------------------------------------------------
934
+ _stateScriptDataDoubleEscaped(e) {
935
+ switch (e) {
936
+ case t.HYPHEN_MINUS: {
937
+ this.state = s.SCRIPT_DATA_DOUBLE_ESCAPED_DASH, this._emitChars("-");
938
+ break;
939
+ }
940
+ case t.LESS_THAN_SIGN: {
941
+ this.state = s.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN, this._emitChars("<");
942
+ break;
943
+ }
944
+ case t.NULL: {
945
+ this._err(i.unexpectedNullCharacter), this._emitChars(_);
946
+ break;
947
+ }
948
+ case t.EOF: {
949
+ this._err(i.eofInScriptHtmlCommentLikeText), this._emitEOFToken();
950
+ break;
951
+ }
952
+ default:
953
+ this._emitCodePoint(e);
954
+ }
955
+ }
956
+ // Script data double escaped dash state
957
+ //------------------------------------------------------------------
958
+ _stateScriptDataDoubleEscapedDash(e) {
959
+ switch (e) {
960
+ case t.HYPHEN_MINUS: {
961
+ this.state = s.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH, this._emitChars("-");
962
+ break;
963
+ }
964
+ case t.LESS_THAN_SIGN: {
965
+ this.state = s.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN, this._emitChars("<");
966
+ break;
967
+ }
968
+ case t.NULL: {
969
+ this._err(i.unexpectedNullCharacter), this.state = s.SCRIPT_DATA_DOUBLE_ESCAPED, this._emitChars(_);
970
+ break;
971
+ }
972
+ case t.EOF: {
973
+ this._err(i.eofInScriptHtmlCommentLikeText), this._emitEOFToken();
974
+ break;
975
+ }
976
+ default:
977
+ this.state = s.SCRIPT_DATA_DOUBLE_ESCAPED, this._emitCodePoint(e);
978
+ }
979
+ }
980
+ // Script data double escaped dash dash state
981
+ //------------------------------------------------------------------
982
+ _stateScriptDataDoubleEscapedDashDash(e) {
983
+ switch (e) {
984
+ case t.HYPHEN_MINUS: {
985
+ this._emitChars("-");
986
+ break;
987
+ }
988
+ case t.LESS_THAN_SIGN: {
989
+ this.state = s.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN, this._emitChars("<");
990
+ break;
991
+ }
992
+ case t.GREATER_THAN_SIGN: {
993
+ this.state = s.SCRIPT_DATA, this._emitChars(">");
994
+ break;
995
+ }
996
+ case t.NULL: {
997
+ this._err(i.unexpectedNullCharacter), this.state = s.SCRIPT_DATA_DOUBLE_ESCAPED, this._emitChars(_);
998
+ break;
999
+ }
1000
+ case t.EOF: {
1001
+ this._err(i.eofInScriptHtmlCommentLikeText), this._emitEOFToken();
1002
+ break;
1003
+ }
1004
+ default:
1005
+ this.state = s.SCRIPT_DATA_DOUBLE_ESCAPED, this._emitCodePoint(e);
1006
+ }
1007
+ }
1008
+ // Script data double escaped less-than sign state
1009
+ //------------------------------------------------------------------
1010
+ _stateScriptDataDoubleEscapedLessThanSign(e) {
1011
+ e === t.SOLIDUS ? (this.state = s.SCRIPT_DATA_DOUBLE_ESCAPE_END, this._emitChars("/")) : (this.state = s.SCRIPT_DATA_DOUBLE_ESCAPED, this._stateScriptDataDoubleEscaped(e));
1012
+ }
1013
+ // Script data double escape end state
1014
+ //------------------------------------------------------------------
1015
+ _stateScriptDataDoubleEscapeEnd(e) {
1016
+ if (this.preprocessor.startsWith(T.SCRIPT, !1) && N(this.preprocessor.peek(T.SCRIPT.length))) {
1017
+ this._emitCodePoint(e);
1018
+ for (let r = 0; r < T.SCRIPT.length; r++)
1019
+ this._emitCodePoint(this._consume());
1020
+ this.state = s.SCRIPT_DATA_ESCAPED;
1021
+ } else this._ensureHibernation() || (this.state = s.SCRIPT_DATA_DOUBLE_ESCAPED, this._stateScriptDataDoubleEscaped(e));
1022
+ }
1023
+ // Before attribute name state
1024
+ //------------------------------------------------------------------
1025
+ _stateBeforeAttributeName(e) {
1026
+ switch (e) {
1027
+ case t.SPACE:
1028
+ case t.LINE_FEED:
1029
+ case t.TABULATION:
1030
+ case t.FORM_FEED:
1031
+ break;
1032
+ case t.SOLIDUS:
1033
+ case t.GREATER_THAN_SIGN:
1034
+ case t.EOF: {
1035
+ this.state = s.AFTER_ATTRIBUTE_NAME, this._stateAfterAttributeName(e);
1036
+ break;
1037
+ }
1038
+ case t.EQUALS_SIGN: {
1039
+ this._err(i.unexpectedEqualsSignBeforeAttributeName), this._createAttr("="), this.state = s.ATTRIBUTE_NAME;
1040
+ break;
1041
+ }
1042
+ default:
1043
+ this._createAttr(""), this.state = s.ATTRIBUTE_NAME, this._stateAttributeName(e);
1044
+ }
1045
+ }
1046
+ // Attribute name state
1047
+ //------------------------------------------------------------------
1048
+ _stateAttributeName(e) {
1049
+ switch (e) {
1050
+ case t.SPACE:
1051
+ case t.LINE_FEED:
1052
+ case t.TABULATION:
1053
+ case t.FORM_FEED:
1054
+ case t.SOLIDUS:
1055
+ case t.GREATER_THAN_SIGN:
1056
+ case t.EOF: {
1057
+ this._leaveAttrName(), this.state = s.AFTER_ATTRIBUTE_NAME, this._stateAfterAttributeName(e);
1058
+ break;
1059
+ }
1060
+ case t.EQUALS_SIGN: {
1061
+ this._leaveAttrName(), this.state = s.BEFORE_ATTRIBUTE_VALUE;
1062
+ break;
1063
+ }
1064
+ case t.QUOTATION_MARK:
1065
+ case t.APOSTROPHE:
1066
+ case t.LESS_THAN_SIGN: {
1067
+ this._err(i.unexpectedCharacterInAttributeName), this.currentAttr.name += String.fromCodePoint(e);
1068
+ break;
1069
+ }
1070
+ case t.NULL: {
1071
+ this._err(i.unexpectedNullCharacter), this.currentAttr.name += _;
1072
+ break;
1073
+ }
1074
+ default:
1075
+ this.currentAttr.name += String.fromCodePoint(o(e) ? c(e) : e);
1076
+ }
1077
+ }
1078
+ // After attribute name state
1079
+ //------------------------------------------------------------------
1080
+ _stateAfterAttributeName(e) {
1081
+ switch (e) {
1082
+ case t.SPACE:
1083
+ case t.LINE_FEED:
1084
+ case t.TABULATION:
1085
+ case t.FORM_FEED:
1086
+ break;
1087
+ case t.SOLIDUS: {
1088
+ this.state = s.SELF_CLOSING_START_TAG;
1089
+ break;
1090
+ }
1091
+ case t.EQUALS_SIGN: {
1092
+ this.state = s.BEFORE_ATTRIBUTE_VALUE;
1093
+ break;
1094
+ }
1095
+ case t.GREATER_THAN_SIGN: {
1096
+ this.state = s.DATA, this.emitCurrentTagToken();
1097
+ break;
1098
+ }
1099
+ case t.EOF: {
1100
+ this._err(i.eofInTag), this._emitEOFToken();
1101
+ break;
1102
+ }
1103
+ default:
1104
+ this._createAttr(""), this.state = s.ATTRIBUTE_NAME, this._stateAttributeName(e);
1105
+ }
1106
+ }
1107
+ // Before attribute value state
1108
+ //------------------------------------------------------------------
1109
+ _stateBeforeAttributeValue(e) {
1110
+ switch (e) {
1111
+ case t.SPACE:
1112
+ case t.LINE_FEED:
1113
+ case t.TABULATION:
1114
+ case t.FORM_FEED:
1115
+ break;
1116
+ case t.QUOTATION_MARK: {
1117
+ this.state = s.ATTRIBUTE_VALUE_DOUBLE_QUOTED;
1118
+ break;
1119
+ }
1120
+ case t.APOSTROPHE: {
1121
+ this.state = s.ATTRIBUTE_VALUE_SINGLE_QUOTED;
1122
+ break;
1123
+ }
1124
+ case t.GREATER_THAN_SIGN: {
1125
+ this._err(i.missingAttributeValue), this.state = s.DATA, this.emitCurrentTagToken();
1126
+ break;
1127
+ }
1128
+ default:
1129
+ this.state = s.ATTRIBUTE_VALUE_UNQUOTED, this._stateAttributeValueUnquoted(e);
1130
+ }
1131
+ }
1132
+ // Attribute value (double-quoted) state
1133
+ //------------------------------------------------------------------
1134
+ _stateAttributeValueDoubleQuoted(e) {
1135
+ switch (e) {
1136
+ case t.QUOTATION_MARK: {
1137
+ this.state = s.AFTER_ATTRIBUTE_VALUE_QUOTED;
1138
+ break;
1139
+ }
1140
+ case t.AMPERSAND: {
1141
+ this._startCharacterReference();
1142
+ break;
1143
+ }
1144
+ case t.NULL: {
1145
+ this._err(i.unexpectedNullCharacter), this.currentAttr.value += _;
1146
+ break;
1147
+ }
1148
+ case t.EOF: {
1149
+ this._err(i.eofInTag), this._emitEOFToken();
1150
+ break;
1151
+ }
1152
+ default:
1153
+ this.currentAttr.value += String.fromCodePoint(e);
1154
+ }
1155
+ }
1156
+ // Attribute value (single-quoted) state
1157
+ //------------------------------------------------------------------
1158
+ _stateAttributeValueSingleQuoted(e) {
1159
+ switch (e) {
1160
+ case t.APOSTROPHE: {
1161
+ this.state = s.AFTER_ATTRIBUTE_VALUE_QUOTED;
1162
+ break;
1163
+ }
1164
+ case t.AMPERSAND: {
1165
+ this._startCharacterReference();
1166
+ break;
1167
+ }
1168
+ case t.NULL: {
1169
+ this._err(i.unexpectedNullCharacter), this.currentAttr.value += _;
1170
+ break;
1171
+ }
1172
+ case t.EOF: {
1173
+ this._err(i.eofInTag), this._emitEOFToken();
1174
+ break;
1175
+ }
1176
+ default:
1177
+ this.currentAttr.value += String.fromCodePoint(e);
1178
+ }
1179
+ }
1180
+ // Attribute value (unquoted) state
1181
+ //------------------------------------------------------------------
1182
+ _stateAttributeValueUnquoted(e) {
1183
+ switch (e) {
1184
+ case t.SPACE:
1185
+ case t.LINE_FEED:
1186
+ case t.TABULATION:
1187
+ case t.FORM_FEED: {
1188
+ this._leaveAttrValue(), this.state = s.BEFORE_ATTRIBUTE_NAME;
1189
+ break;
1190
+ }
1191
+ case t.AMPERSAND: {
1192
+ this._startCharacterReference();
1193
+ break;
1194
+ }
1195
+ case t.GREATER_THAN_SIGN: {
1196
+ this._leaveAttrValue(), this.state = s.DATA, this.emitCurrentTagToken();
1197
+ break;
1198
+ }
1199
+ case t.NULL: {
1200
+ this._err(i.unexpectedNullCharacter), this.currentAttr.value += _;
1201
+ break;
1202
+ }
1203
+ case t.QUOTATION_MARK:
1204
+ case t.APOSTROPHE:
1205
+ case t.LESS_THAN_SIGN:
1206
+ case t.EQUALS_SIGN:
1207
+ case t.GRAVE_ACCENT: {
1208
+ this._err(i.unexpectedCharacterInUnquotedAttributeValue), this.currentAttr.value += String.fromCodePoint(e);
1209
+ break;
1210
+ }
1211
+ case t.EOF: {
1212
+ this._err(i.eofInTag), this._emitEOFToken();
1213
+ break;
1214
+ }
1215
+ default:
1216
+ this.currentAttr.value += String.fromCodePoint(e);
1217
+ }
1218
+ }
1219
+ // After attribute value (quoted) state
1220
+ //------------------------------------------------------------------
1221
+ _stateAfterAttributeValueQuoted(e) {
1222
+ switch (e) {
1223
+ case t.SPACE:
1224
+ case t.LINE_FEED:
1225
+ case t.TABULATION:
1226
+ case t.FORM_FEED: {
1227
+ this._leaveAttrValue(), this.state = s.BEFORE_ATTRIBUTE_NAME;
1228
+ break;
1229
+ }
1230
+ case t.SOLIDUS: {
1231
+ this._leaveAttrValue(), this.state = s.SELF_CLOSING_START_TAG;
1232
+ break;
1233
+ }
1234
+ case t.GREATER_THAN_SIGN: {
1235
+ this._leaveAttrValue(), this.state = s.DATA, this.emitCurrentTagToken();
1236
+ break;
1237
+ }
1238
+ case t.EOF: {
1239
+ this._err(i.eofInTag), this._emitEOFToken();
1240
+ break;
1241
+ }
1242
+ default:
1243
+ this._err(i.missingWhitespaceBetweenAttributes), this.state = s.BEFORE_ATTRIBUTE_NAME, this._stateBeforeAttributeName(e);
1244
+ }
1245
+ }
1246
+ // Self-closing start tag state
1247
+ //------------------------------------------------------------------
1248
+ _stateSelfClosingStartTag(e) {
1249
+ switch (e) {
1250
+ case t.GREATER_THAN_SIGN: {
1251
+ const r = this.currentToken;
1252
+ r.selfClosing = !0, this.state = s.DATA, this.emitCurrentTagToken();
1253
+ break;
1254
+ }
1255
+ case t.EOF: {
1256
+ this._err(i.eofInTag), this._emitEOFToken();
1257
+ break;
1258
+ }
1259
+ default:
1260
+ this._err(i.unexpectedSolidusInTag), this.state = s.BEFORE_ATTRIBUTE_NAME, this._stateBeforeAttributeName(e);
1261
+ }
1262
+ }
1263
+ // Bogus comment state
1264
+ //------------------------------------------------------------------
1265
+ _stateBogusComment(e) {
1266
+ const r = this.currentToken;
1267
+ switch (e) {
1268
+ case t.GREATER_THAN_SIGN: {
1269
+ this.state = s.DATA, this.emitCurrentComment(r);
1270
+ break;
1271
+ }
1272
+ case t.EOF: {
1273
+ this.emitCurrentComment(r), this._emitEOFToken();
1274
+ break;
1275
+ }
1276
+ case t.NULL: {
1277
+ this._err(i.unexpectedNullCharacter), r.data += _;
1278
+ break;
1279
+ }
1280
+ default:
1281
+ r.data += String.fromCodePoint(e);
1282
+ }
1283
+ }
1284
+ // Markup declaration open state
1285
+ //------------------------------------------------------------------
1286
+ _stateMarkupDeclarationOpen(e) {
1287
+ this._consumeSequenceIfMatch(T.DASH_DASH, !0) ? (this._createCommentToken(T.DASH_DASH.length + 1), this.state = s.COMMENT_START) : this._consumeSequenceIfMatch(T.DOCTYPE, !1) ? (this.currentLocation = this.getCurrentLocation(T.DOCTYPE.length + 1), this.state = s.DOCTYPE) : this._consumeSequenceIfMatch(T.CDATA_START, !0) ? this.inForeignNode ? this.state = s.CDATA_SECTION : (this._err(i.cdataInHtmlContent), this._createCommentToken(T.CDATA_START.length + 1), this.currentToken.data = "[CDATA[", this.state = s.BOGUS_COMMENT) : this._ensureHibernation() || (this._err(i.incorrectlyOpenedComment), this._createCommentToken(2), this.state = s.BOGUS_COMMENT, this._stateBogusComment(e));
1288
+ }
1289
+ // Comment start state
1290
+ //------------------------------------------------------------------
1291
+ _stateCommentStart(e) {
1292
+ switch (e) {
1293
+ case t.HYPHEN_MINUS: {
1294
+ this.state = s.COMMENT_START_DASH;
1295
+ break;
1296
+ }
1297
+ case t.GREATER_THAN_SIGN: {
1298
+ this._err(i.abruptClosingOfEmptyComment), this.state = s.DATA;
1299
+ const r = this.currentToken;
1300
+ this.emitCurrentComment(r);
1301
+ break;
1302
+ }
1303
+ default:
1304
+ this.state = s.COMMENT, this._stateComment(e);
1305
+ }
1306
+ }
1307
+ // Comment start dash state
1308
+ //------------------------------------------------------------------
1309
+ _stateCommentStartDash(e) {
1310
+ const r = this.currentToken;
1311
+ switch (e) {
1312
+ case t.HYPHEN_MINUS: {
1313
+ this.state = s.COMMENT_END;
1314
+ break;
1315
+ }
1316
+ case t.GREATER_THAN_SIGN: {
1317
+ this._err(i.abruptClosingOfEmptyComment), this.state = s.DATA, this.emitCurrentComment(r);
1318
+ break;
1319
+ }
1320
+ case t.EOF: {
1321
+ this._err(i.eofInComment), this.emitCurrentComment(r), this._emitEOFToken();
1322
+ break;
1323
+ }
1324
+ default:
1325
+ r.data += "-", this.state = s.COMMENT, this._stateComment(e);
1326
+ }
1327
+ }
1328
+ // Comment state
1329
+ //------------------------------------------------------------------
1330
+ _stateComment(e) {
1331
+ const r = this.currentToken;
1332
+ switch (e) {
1333
+ case t.HYPHEN_MINUS: {
1334
+ this.state = s.COMMENT_END_DASH;
1335
+ break;
1336
+ }
1337
+ case t.LESS_THAN_SIGN: {
1338
+ r.data += "<", this.state = s.COMMENT_LESS_THAN_SIGN;
1339
+ break;
1340
+ }
1341
+ case t.NULL: {
1342
+ this._err(i.unexpectedNullCharacter), r.data += _;
1343
+ break;
1344
+ }
1345
+ case t.EOF: {
1346
+ this._err(i.eofInComment), this.emitCurrentComment(r), this._emitEOFToken();
1347
+ break;
1348
+ }
1349
+ default:
1350
+ r.data += String.fromCodePoint(e);
1351
+ }
1352
+ }
1353
+ // Comment less-than sign state
1354
+ //------------------------------------------------------------------
1355
+ _stateCommentLessThanSign(e) {
1356
+ const r = this.currentToken;
1357
+ switch (e) {
1358
+ case t.EXCLAMATION_MARK: {
1359
+ r.data += "!", this.state = s.COMMENT_LESS_THAN_SIGN_BANG;
1360
+ break;
1361
+ }
1362
+ case t.LESS_THAN_SIGN: {
1363
+ r.data += "<";
1364
+ break;
1365
+ }
1366
+ default:
1367
+ this.state = s.COMMENT, this._stateComment(e);
1368
+ }
1369
+ }
1370
+ // Comment less-than sign bang state
1371
+ //------------------------------------------------------------------
1372
+ _stateCommentLessThanSignBang(e) {
1373
+ e === t.HYPHEN_MINUS ? this.state = s.COMMENT_LESS_THAN_SIGN_BANG_DASH : (this.state = s.COMMENT, this._stateComment(e));
1374
+ }
1375
+ // Comment less-than sign bang dash state
1376
+ //------------------------------------------------------------------
1377
+ _stateCommentLessThanSignBangDash(e) {
1378
+ e === t.HYPHEN_MINUS ? this.state = s.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH : (this.state = s.COMMENT_END_DASH, this._stateCommentEndDash(e));
1379
+ }
1380
+ // Comment less-than sign bang dash dash state
1381
+ //------------------------------------------------------------------
1382
+ _stateCommentLessThanSignBangDashDash(e) {
1383
+ e !== t.GREATER_THAN_SIGN && e !== t.EOF && this._err(i.nestedComment), this.state = s.COMMENT_END, this._stateCommentEnd(e);
1384
+ }
1385
+ // Comment end dash state
1386
+ //------------------------------------------------------------------
1387
+ _stateCommentEndDash(e) {
1388
+ const r = this.currentToken;
1389
+ switch (e) {
1390
+ case t.HYPHEN_MINUS: {
1391
+ this.state = s.COMMENT_END;
1392
+ break;
1393
+ }
1394
+ case t.EOF: {
1395
+ this._err(i.eofInComment), this.emitCurrentComment(r), this._emitEOFToken();
1396
+ break;
1397
+ }
1398
+ default:
1399
+ r.data += "-", this.state = s.COMMENT, this._stateComment(e);
1400
+ }
1401
+ }
1402
+ // Comment end state
1403
+ //------------------------------------------------------------------
1404
+ _stateCommentEnd(e) {
1405
+ const r = this.currentToken;
1406
+ switch (e) {
1407
+ case t.GREATER_THAN_SIGN: {
1408
+ this.state = s.DATA, this.emitCurrentComment(r);
1409
+ break;
1410
+ }
1411
+ case t.EXCLAMATION_MARK: {
1412
+ this.state = s.COMMENT_END_BANG;
1413
+ break;
1414
+ }
1415
+ case t.HYPHEN_MINUS: {
1416
+ r.data += "-";
1417
+ break;
1418
+ }
1419
+ case t.EOF: {
1420
+ this._err(i.eofInComment), this.emitCurrentComment(r), this._emitEOFToken();
1421
+ break;
1422
+ }
1423
+ default:
1424
+ r.data += "--", this.state = s.COMMENT, this._stateComment(e);
1425
+ }
1426
+ }
1427
+ // Comment end bang state
1428
+ //------------------------------------------------------------------
1429
+ _stateCommentEndBang(e) {
1430
+ const r = this.currentToken;
1431
+ switch (e) {
1432
+ case t.HYPHEN_MINUS: {
1433
+ r.data += "--!", this.state = s.COMMENT_END_DASH;
1434
+ break;
1435
+ }
1436
+ case t.GREATER_THAN_SIGN: {
1437
+ this._err(i.incorrectlyClosedComment), this.state = s.DATA, this.emitCurrentComment(r);
1438
+ break;
1439
+ }
1440
+ case t.EOF: {
1441
+ this._err(i.eofInComment), this.emitCurrentComment(r), this._emitEOFToken();
1442
+ break;
1443
+ }
1444
+ default:
1445
+ r.data += "--!", this.state = s.COMMENT, this._stateComment(e);
1446
+ }
1447
+ }
1448
+ // DOCTYPE state
1449
+ //------------------------------------------------------------------
1450
+ _stateDoctype(e) {
1451
+ switch (e) {
1452
+ case t.SPACE:
1453
+ case t.LINE_FEED:
1454
+ case t.TABULATION:
1455
+ case t.FORM_FEED: {
1456
+ this.state = s.BEFORE_DOCTYPE_NAME;
1457
+ break;
1458
+ }
1459
+ case t.GREATER_THAN_SIGN: {
1460
+ this.state = s.BEFORE_DOCTYPE_NAME, this._stateBeforeDoctypeName(e);
1461
+ break;
1462
+ }
1463
+ case t.EOF: {
1464
+ this._err(i.eofInDoctype), this._createDoctypeToken(null);
1465
+ const r = this.currentToken;
1466
+ r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
1467
+ break;
1468
+ }
1469
+ default:
1470
+ this._err(i.missingWhitespaceBeforeDoctypeName), this.state = s.BEFORE_DOCTYPE_NAME, this._stateBeforeDoctypeName(e);
1471
+ }
1472
+ }
1473
+ // Before DOCTYPE name state
1474
+ //------------------------------------------------------------------
1475
+ _stateBeforeDoctypeName(e) {
1476
+ if (o(e))
1477
+ this._createDoctypeToken(String.fromCharCode(c(e))), this.state = s.DOCTYPE_NAME;
1478
+ else
1479
+ switch (e) {
1480
+ case t.SPACE:
1481
+ case t.LINE_FEED:
1482
+ case t.TABULATION:
1483
+ case t.FORM_FEED:
1484
+ break;
1485
+ case t.NULL: {
1486
+ this._err(i.unexpectedNullCharacter), this._createDoctypeToken(_), this.state = s.DOCTYPE_NAME;
1487
+ break;
1488
+ }
1489
+ case t.GREATER_THAN_SIGN: {
1490
+ this._err(i.missingDoctypeName), this._createDoctypeToken(null);
1491
+ const r = this.currentToken;
1492
+ r.forceQuirks = !0, this.emitCurrentDoctype(r), this.state = s.DATA;
1493
+ break;
1494
+ }
1495
+ case t.EOF: {
1496
+ this._err(i.eofInDoctype), this._createDoctypeToken(null);
1497
+ const r = this.currentToken;
1498
+ r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
1499
+ break;
1500
+ }
1501
+ default:
1502
+ this._createDoctypeToken(String.fromCodePoint(e)), this.state = s.DOCTYPE_NAME;
1503
+ }
1504
+ }
1505
+ // DOCTYPE name state
1506
+ //------------------------------------------------------------------
1507
+ _stateDoctypeName(e) {
1508
+ const r = this.currentToken;
1509
+ switch (e) {
1510
+ case t.SPACE:
1511
+ case t.LINE_FEED:
1512
+ case t.TABULATION:
1513
+ case t.FORM_FEED: {
1514
+ this.state = s.AFTER_DOCTYPE_NAME;
1515
+ break;
1516
+ }
1517
+ case t.GREATER_THAN_SIGN: {
1518
+ this.state = s.DATA, this.emitCurrentDoctype(r);
1519
+ break;
1520
+ }
1521
+ case t.NULL: {
1522
+ this._err(i.unexpectedNullCharacter), r.name += _;
1523
+ break;
1524
+ }
1525
+ case t.EOF: {
1526
+ this._err(i.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
1527
+ break;
1528
+ }
1529
+ default:
1530
+ r.name += String.fromCodePoint(o(e) ? c(e) : e);
1531
+ }
1532
+ }
1533
+ // After DOCTYPE name state
1534
+ //------------------------------------------------------------------
1535
+ _stateAfterDoctypeName(e) {
1536
+ const r = this.currentToken;
1537
+ switch (e) {
1538
+ case t.SPACE:
1539
+ case t.LINE_FEED:
1540
+ case t.TABULATION:
1541
+ case t.FORM_FEED:
1542
+ break;
1543
+ case t.GREATER_THAN_SIGN: {
1544
+ this.state = s.DATA, this.emitCurrentDoctype(r);
1545
+ break;
1546
+ }
1547
+ case t.EOF: {
1548
+ this._err(i.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
1549
+ break;
1550
+ }
1551
+ default:
1552
+ this._consumeSequenceIfMatch(T.PUBLIC, !1) ? this.state = s.AFTER_DOCTYPE_PUBLIC_KEYWORD : this._consumeSequenceIfMatch(T.SYSTEM, !1) ? this.state = s.AFTER_DOCTYPE_SYSTEM_KEYWORD : this._ensureHibernation() || (this._err(i.invalidCharacterSequenceAfterDoctypeName), r.forceQuirks = !0, this.state = s.BOGUS_DOCTYPE, this._stateBogusDoctype(e));
1553
+ }
1554
+ }
1555
+ // After DOCTYPE public keyword state
1556
+ //------------------------------------------------------------------
1557
+ _stateAfterDoctypePublicKeyword(e) {
1558
+ const r = this.currentToken;
1559
+ switch (e) {
1560
+ case t.SPACE:
1561
+ case t.LINE_FEED:
1562
+ case t.TABULATION:
1563
+ case t.FORM_FEED: {
1564
+ this.state = s.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER;
1565
+ break;
1566
+ }
1567
+ case t.QUOTATION_MARK: {
1568
+ this._err(i.missingWhitespaceAfterDoctypePublicKeyword), r.publicId = "", this.state = s.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;
1569
+ break;
1570
+ }
1571
+ case t.APOSTROPHE: {
1572
+ this._err(i.missingWhitespaceAfterDoctypePublicKeyword), r.publicId = "", this.state = s.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;
1573
+ break;
1574
+ }
1575
+ case t.GREATER_THAN_SIGN: {
1576
+ this._err(i.missingDoctypePublicIdentifier), r.forceQuirks = !0, this.state = s.DATA, this.emitCurrentDoctype(r);
1577
+ break;
1578
+ }
1579
+ case t.EOF: {
1580
+ this._err(i.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
1581
+ break;
1582
+ }
1583
+ default:
1584
+ this._err(i.missingQuoteBeforeDoctypePublicIdentifier), r.forceQuirks = !0, this.state = s.BOGUS_DOCTYPE, this._stateBogusDoctype(e);
1585
+ }
1586
+ }
1587
+ // Before DOCTYPE public identifier state
1588
+ //------------------------------------------------------------------
1589
+ _stateBeforeDoctypePublicIdentifier(e) {
1590
+ const r = this.currentToken;
1591
+ switch (e) {
1592
+ case t.SPACE:
1593
+ case t.LINE_FEED:
1594
+ case t.TABULATION:
1595
+ case t.FORM_FEED:
1596
+ break;
1597
+ case t.QUOTATION_MARK: {
1598
+ r.publicId = "", this.state = s.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;
1599
+ break;
1600
+ }
1601
+ case t.APOSTROPHE: {
1602
+ r.publicId = "", this.state = s.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;
1603
+ break;
1604
+ }
1605
+ case t.GREATER_THAN_SIGN: {
1606
+ this._err(i.missingDoctypePublicIdentifier), r.forceQuirks = !0, this.state = s.DATA, this.emitCurrentDoctype(r);
1607
+ break;
1608
+ }
1609
+ case t.EOF: {
1610
+ this._err(i.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
1611
+ break;
1612
+ }
1613
+ default:
1614
+ this._err(i.missingQuoteBeforeDoctypePublicIdentifier), r.forceQuirks = !0, this.state = s.BOGUS_DOCTYPE, this._stateBogusDoctype(e);
1615
+ }
1616
+ }
1617
+ // DOCTYPE public identifier (double-quoted) state
1618
+ //------------------------------------------------------------------
1619
+ _stateDoctypePublicIdentifierDoubleQuoted(e) {
1620
+ const r = this.currentToken;
1621
+ switch (e) {
1622
+ case t.QUOTATION_MARK: {
1623
+ this.state = s.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;
1624
+ break;
1625
+ }
1626
+ case t.NULL: {
1627
+ this._err(i.unexpectedNullCharacter), r.publicId += _;
1628
+ break;
1629
+ }
1630
+ case t.GREATER_THAN_SIGN: {
1631
+ this._err(i.abruptDoctypePublicIdentifier), r.forceQuirks = !0, this.emitCurrentDoctype(r), this.state = s.DATA;
1632
+ break;
1633
+ }
1634
+ case t.EOF: {
1635
+ this._err(i.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
1636
+ break;
1637
+ }
1638
+ default:
1639
+ r.publicId += String.fromCodePoint(e);
1640
+ }
1641
+ }
1642
+ // DOCTYPE public identifier (single-quoted) state
1643
+ //------------------------------------------------------------------
1644
+ _stateDoctypePublicIdentifierSingleQuoted(e) {
1645
+ const r = this.currentToken;
1646
+ switch (e) {
1647
+ case t.APOSTROPHE: {
1648
+ this.state = s.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;
1649
+ break;
1650
+ }
1651
+ case t.NULL: {
1652
+ this._err(i.unexpectedNullCharacter), r.publicId += _;
1653
+ break;
1654
+ }
1655
+ case t.GREATER_THAN_SIGN: {
1656
+ this._err(i.abruptDoctypePublicIdentifier), r.forceQuirks = !0, this.emitCurrentDoctype(r), this.state = s.DATA;
1657
+ break;
1658
+ }
1659
+ case t.EOF: {
1660
+ this._err(i.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
1661
+ break;
1662
+ }
1663
+ default:
1664
+ r.publicId += String.fromCodePoint(e);
1665
+ }
1666
+ }
1667
+ // After DOCTYPE public identifier state
1668
+ //------------------------------------------------------------------
1669
+ _stateAfterDoctypePublicIdentifier(e) {
1670
+ const r = this.currentToken;
1671
+ switch (e) {
1672
+ case t.SPACE:
1673
+ case t.LINE_FEED:
1674
+ case t.TABULATION:
1675
+ case t.FORM_FEED: {
1676
+ this.state = s.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS;
1677
+ break;
1678
+ }
1679
+ case t.GREATER_THAN_SIGN: {
1680
+ this.state = s.DATA, this.emitCurrentDoctype(r);
1681
+ break;
1682
+ }
1683
+ case t.QUOTATION_MARK: {
1684
+ this._err(i.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers), r.systemId = "", this.state = s.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;
1685
+ break;
1686
+ }
1687
+ case t.APOSTROPHE: {
1688
+ this._err(i.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers), r.systemId = "", this.state = s.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;
1689
+ break;
1690
+ }
1691
+ case t.EOF: {
1692
+ this._err(i.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
1693
+ break;
1694
+ }
1695
+ default:
1696
+ this._err(i.missingQuoteBeforeDoctypeSystemIdentifier), r.forceQuirks = !0, this.state = s.BOGUS_DOCTYPE, this._stateBogusDoctype(e);
1697
+ }
1698
+ }
1699
+ // Between DOCTYPE public and system identifiers state
1700
+ //------------------------------------------------------------------
1701
+ _stateBetweenDoctypePublicAndSystemIdentifiers(e) {
1702
+ const r = this.currentToken;
1703
+ switch (e) {
1704
+ case t.SPACE:
1705
+ case t.LINE_FEED:
1706
+ case t.TABULATION:
1707
+ case t.FORM_FEED:
1708
+ break;
1709
+ case t.GREATER_THAN_SIGN: {
1710
+ this.emitCurrentDoctype(r), this.state = s.DATA;
1711
+ break;
1712
+ }
1713
+ case t.QUOTATION_MARK: {
1714
+ r.systemId = "", this.state = s.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;
1715
+ break;
1716
+ }
1717
+ case t.APOSTROPHE: {
1718
+ r.systemId = "", this.state = s.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;
1719
+ break;
1720
+ }
1721
+ case t.EOF: {
1722
+ this._err(i.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
1723
+ break;
1724
+ }
1725
+ default:
1726
+ this._err(i.missingQuoteBeforeDoctypeSystemIdentifier), r.forceQuirks = !0, this.state = s.BOGUS_DOCTYPE, this._stateBogusDoctype(e);
1727
+ }
1728
+ }
1729
+ // After DOCTYPE system keyword state
1730
+ //------------------------------------------------------------------
1731
+ _stateAfterDoctypeSystemKeyword(e) {
1732
+ const r = this.currentToken;
1733
+ switch (e) {
1734
+ case t.SPACE:
1735
+ case t.LINE_FEED:
1736
+ case t.TABULATION:
1737
+ case t.FORM_FEED: {
1738
+ this.state = s.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER;
1739
+ break;
1740
+ }
1741
+ case t.QUOTATION_MARK: {
1742
+ this._err(i.missingWhitespaceAfterDoctypeSystemKeyword), r.systemId = "", this.state = s.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;
1743
+ break;
1744
+ }
1745
+ case t.APOSTROPHE: {
1746
+ this._err(i.missingWhitespaceAfterDoctypeSystemKeyword), r.systemId = "", this.state = s.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;
1747
+ break;
1748
+ }
1749
+ case t.GREATER_THAN_SIGN: {
1750
+ this._err(i.missingDoctypeSystemIdentifier), r.forceQuirks = !0, this.state = s.DATA, this.emitCurrentDoctype(r);
1751
+ break;
1752
+ }
1753
+ case t.EOF: {
1754
+ this._err(i.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
1755
+ break;
1756
+ }
1757
+ default:
1758
+ this._err(i.missingQuoteBeforeDoctypeSystemIdentifier), r.forceQuirks = !0, this.state = s.BOGUS_DOCTYPE, this._stateBogusDoctype(e);
1759
+ }
1760
+ }
1761
+ // Before DOCTYPE system identifier state
1762
+ //------------------------------------------------------------------
1763
+ _stateBeforeDoctypeSystemIdentifier(e) {
1764
+ const r = this.currentToken;
1765
+ switch (e) {
1766
+ case t.SPACE:
1767
+ case t.LINE_FEED:
1768
+ case t.TABULATION:
1769
+ case t.FORM_FEED:
1770
+ break;
1771
+ case t.QUOTATION_MARK: {
1772
+ r.systemId = "", this.state = s.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;
1773
+ break;
1774
+ }
1775
+ case t.APOSTROPHE: {
1776
+ r.systemId = "", this.state = s.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;
1777
+ break;
1778
+ }
1779
+ case t.GREATER_THAN_SIGN: {
1780
+ this._err(i.missingDoctypeSystemIdentifier), r.forceQuirks = !0, this.state = s.DATA, this.emitCurrentDoctype(r);
1781
+ break;
1782
+ }
1783
+ case t.EOF: {
1784
+ this._err(i.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
1785
+ break;
1786
+ }
1787
+ default:
1788
+ this._err(i.missingQuoteBeforeDoctypeSystemIdentifier), r.forceQuirks = !0, this.state = s.BOGUS_DOCTYPE, this._stateBogusDoctype(e);
1789
+ }
1790
+ }
1791
+ // DOCTYPE system identifier (double-quoted) state
1792
+ //------------------------------------------------------------------
1793
+ _stateDoctypeSystemIdentifierDoubleQuoted(e) {
1794
+ const r = this.currentToken;
1795
+ switch (e) {
1796
+ case t.QUOTATION_MARK: {
1797
+ this.state = s.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;
1798
+ break;
1799
+ }
1800
+ case t.NULL: {
1801
+ this._err(i.unexpectedNullCharacter), r.systemId += _;
1802
+ break;
1803
+ }
1804
+ case t.GREATER_THAN_SIGN: {
1805
+ this._err(i.abruptDoctypeSystemIdentifier), r.forceQuirks = !0, this.emitCurrentDoctype(r), this.state = s.DATA;
1806
+ break;
1807
+ }
1808
+ case t.EOF: {
1809
+ this._err(i.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
1810
+ break;
1811
+ }
1812
+ default:
1813
+ r.systemId += String.fromCodePoint(e);
1814
+ }
1815
+ }
1816
+ // DOCTYPE system identifier (single-quoted) state
1817
+ //------------------------------------------------------------------
1818
+ _stateDoctypeSystemIdentifierSingleQuoted(e) {
1819
+ const r = this.currentToken;
1820
+ switch (e) {
1821
+ case t.APOSTROPHE: {
1822
+ this.state = s.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;
1823
+ break;
1824
+ }
1825
+ case t.NULL: {
1826
+ this._err(i.unexpectedNullCharacter), r.systemId += _;
1827
+ break;
1828
+ }
1829
+ case t.GREATER_THAN_SIGN: {
1830
+ this._err(i.abruptDoctypeSystemIdentifier), r.forceQuirks = !0, this.emitCurrentDoctype(r), this.state = s.DATA;
1831
+ break;
1832
+ }
1833
+ case t.EOF: {
1834
+ this._err(i.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
1835
+ break;
1836
+ }
1837
+ default:
1838
+ r.systemId += String.fromCodePoint(e);
1839
+ }
1840
+ }
1841
+ // After DOCTYPE system identifier state
1842
+ //------------------------------------------------------------------
1843
+ _stateAfterDoctypeSystemIdentifier(e) {
1844
+ const r = this.currentToken;
1845
+ switch (e) {
1846
+ case t.SPACE:
1847
+ case t.LINE_FEED:
1848
+ case t.TABULATION:
1849
+ case t.FORM_FEED:
1850
+ break;
1851
+ case t.GREATER_THAN_SIGN: {
1852
+ this.emitCurrentDoctype(r), this.state = s.DATA;
1853
+ break;
1854
+ }
1855
+ case t.EOF: {
1856
+ this._err(i.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
1857
+ break;
1858
+ }
1859
+ default:
1860
+ this._err(i.unexpectedCharacterAfterDoctypeSystemIdentifier), this.state = s.BOGUS_DOCTYPE, this._stateBogusDoctype(e);
1861
+ }
1862
+ }
1863
+ // Bogus DOCTYPE state
1864
+ //------------------------------------------------------------------
1865
+ _stateBogusDoctype(e) {
1866
+ const r = this.currentToken;
1867
+ switch (e) {
1868
+ case t.GREATER_THAN_SIGN: {
1869
+ this.emitCurrentDoctype(r), this.state = s.DATA;
1870
+ break;
1871
+ }
1872
+ case t.NULL: {
1873
+ this._err(i.unexpectedNullCharacter);
1874
+ break;
1875
+ }
1876
+ case t.EOF: {
1877
+ this.emitCurrentDoctype(r), this._emitEOFToken();
1878
+ break;
1879
+ }
1880
+ }
1881
+ }
1882
+ // CDATA section state
1883
+ //------------------------------------------------------------------
1884
+ _stateCdataSection(e) {
1885
+ switch (e) {
1886
+ case t.RIGHT_SQUARE_BRACKET: {
1887
+ this.state = s.CDATA_SECTION_BRACKET;
1888
+ break;
1889
+ }
1890
+ case t.EOF: {
1891
+ this._err(i.eofInCdata), this._emitEOFToken();
1892
+ break;
1893
+ }
1894
+ default:
1895
+ this._emitCodePoint(e);
1896
+ }
1897
+ }
1898
+ // CDATA section bracket state
1899
+ //------------------------------------------------------------------
1900
+ _stateCdataSectionBracket(e) {
1901
+ e === t.RIGHT_SQUARE_BRACKET ? this.state = s.CDATA_SECTION_END : (this._emitChars("]"), this.state = s.CDATA_SECTION, this._stateCdataSection(e));
1902
+ }
1903
+ // CDATA section end state
1904
+ //------------------------------------------------------------------
1905
+ _stateCdataSectionEnd(e) {
1906
+ switch (e) {
1907
+ case t.GREATER_THAN_SIGN: {
1908
+ this.state = s.DATA;
1909
+ break;
1910
+ }
1911
+ case t.RIGHT_SQUARE_BRACKET: {
1912
+ this._emitChars("]");
1913
+ break;
1914
+ }
1915
+ default:
1916
+ this._emitChars("]]"), this.state = s.CDATA_SECTION, this._stateCdataSection(e);
1917
+ }
1918
+ }
1919
+ // Character reference state
1920
+ //------------------------------------------------------------------
1921
+ _stateCharacterReference() {
1922
+ let e = this.entityDecoder.write(this.preprocessor.html, this.preprocessor.pos);
1923
+ if (e < 0)
1924
+ if (this.preprocessor.lastChunkWritten)
1925
+ e = this.entityDecoder.end();
1926
+ else {
1927
+ this.active = !1, this.preprocessor.pos = this.preprocessor.html.length - 1, this.consumedAfterSnapshot = 0, this.preprocessor.endOfChunkHit = !0;
1928
+ return;
1929
+ }
1930
+ e === 0 ? (this.preprocessor.pos = this.entityStartPos, this._flushCodePointConsumedAsCharacterReference(t.AMPERSAND), this.state = !this._isCharacterReferenceInAttribute() && S(this.preprocessor.peek(1)) ? s.AMBIGUOUS_AMPERSAND : this.returnState) : this.state = this.returnState;
1931
+ }
1932
+ // Ambiguos ampersand state
1933
+ //------------------------------------------------------------------
1934
+ _stateAmbiguousAmpersand(e) {
1935
+ S(e) ? this._flushCodePointConsumedAsCharacterReference(e) : (e === t.SEMICOLON && this._err(i.unknownNamedCharacterReference), this.state = this.returnState, this._callState(e));
1936
+ }
1937
+ }
1938
+ export {
1939
+ y as Tokenizer,
1940
+ H as TokenizerMode
1941
+ };