diff --git a/packages/parse5/lib/parser/formatting-element-list.test.ts b/packages/parse5/lib/parser/formatting-element-list.test.ts index e313a6700..a0a415cc2 100644 --- a/packages/parse5/lib/parser/formatting-element-list.test.ts +++ b/packages/parse5/lib/parser/formatting-element-list.test.ts @@ -1,7 +1,7 @@ import * as assert from 'assert'; import { TAG_NAMES as $, NAMESPACES as NS } from '../common/html.js'; import { TagToken, TokenType } from '../common/token.js'; -import { FormattingElementList } from './formatting-element-list.js'; +import { FormattingElementList, EntryType } from './formatting-element-list.js'; import { generateTestsForEachTreeAdapter } from '../../../../test/utils/common.js'; generateTestsForEachTreeAdapter('FormattingElementList', (treeAdapter) => { @@ -20,11 +20,11 @@ generateTestsForEachTreeAdapter('FormattingElementList', (treeAdapter) => { list.insertMarker(); assert.strictEqual(list.entries.length, 1); - assert.strictEqual(list.entries[0].type, FormattingElementList.MARKER_ENTRY); + assert.strictEqual(list.entries[0].type, EntryType.Marker); list.insertMarker(); assert.strictEqual(list.entries.length, 2); - assert.strictEqual(list.entries[0].type, FormattingElementList.MARKER_ENTRY); + assert.strictEqual(list.entries[0].type, EntryType.Marker); }); test('Push element', () => { @@ -36,13 +36,13 @@ generateTestsForEachTreeAdapter('FormattingElementList', (treeAdapter) => { list.pushElement(element1, element1Token); assert.strictEqual(list.entries.length, 1); - assert.strictEqual(list.entries[0].type, FormattingElementList.ELEMENT_ENTRY); + assert.strictEqual(list.entries[0].type, EntryType.Element as const); assert.strictEqual(list.entries[0].element, element1); assert.strictEqual(list.entries[0].token, element1Token); list.pushElement(element2, element2Token); assert.strictEqual(list.entries.length, 2); - assert.strictEqual(list.entries[0].type, FormattingElementList.ELEMENT_ENTRY); + assert.strictEqual(list.entries[0].type, EntryType.Element); assert.strictEqual(list.entries[0].element, element2); assert.strictEqual(list.entries[0].token, element2Token); }); @@ -113,7 +113,7 @@ generateTestsForEachTreeAdapter('FormattingElementList', (treeAdapter) => { expect(list.entries[4]).toHaveProperty('token', token3); expect(list.entries[3]).toHaveProperty('token', token4); expect(list.entries[2]).toHaveProperty('token', token5); - expect(list.entries[1]).toHaveProperty('type', FormattingElementList.MARKER_ENTRY); + expect(list.entries[1]).toHaveProperty('type', EntryType.Marker); expect(list.entries[0]).toHaveProperty('token', token6); }); @@ -201,7 +201,7 @@ generateTestsForEachTreeAdapter('FormattingElementList', (treeAdapter) => { const entry = list.getElementEntry(element1)!; - assert.strictEqual(entry.type, FormattingElementList.ELEMENT_ENTRY); + assert.strictEqual(entry.type, EntryType.Element); assert.strictEqual(entry.token, token); assert.strictEqual(entry.element, element1); }); diff --git a/packages/parse5/lib/parser/formatting-element-list.ts b/packages/parse5/lib/parser/formatting-element-list.ts index 465e5f4ed..e6b89991d 100644 --- a/packages/parse5/lib/parser/formatting-element-list.ts +++ b/packages/parse5/lib/parser/formatting-element-list.ts @@ -4,9 +4,9 @@ import type { TreeAdapter, TreeAdapterTypeMap } from '../tree-adapters/interface //Const const NOAH_ARK_CAPACITY = 3; -enum EntryType { - Marker = 'MARKER_ENTRY', - Element = 'ELEMENT_ENTRY', +export enum EntryType { + Marker, + Element, } interface MarkerEntry { @@ -141,8 +141,4 @@ export class FormattingElementList { (entry) => entry.type === EntryType.Element && entry.element === element ) as ElementEntry | null; } - - //Entry types - static MARKER_ENTRY = EntryType.Marker as const; - static ELEMENT_ENTRY = EntryType.Element as const; } diff --git a/packages/parse5/lib/parser/index.ts b/packages/parse5/lib/parser/index.ts index 7913b67ec..9d4c064f4 100644 --- a/packages/parse5/lib/parser/index.ts +++ b/packages/parse5/lib/parser/index.ts @@ -1,6 +1,6 @@ import { Tokenizer, TokenizerMode } from '../tokenizer/index.js'; import { OpenElementStack } from './open-element-stack.js'; -import { FormattingElementList, ElementEntry } from './formatting-element-list.js'; +import { FormattingElementList, ElementEntry, EntryType } from './formatting-element-list.js'; import { LocationInfoParserMixin } from '../extensions/location-info/parser-mixin.js'; import { ErrorReportingParserMixin } from '../extensions/error-reporting/parser-mixin.js'; import { Mixin } from '../utils/mixin.js'; @@ -582,8 +582,7 @@ export class Parser { if (listLength) { const endIndex = this.activeFormattingElements.entries.findIndex( - (entry) => - entry.type === FormattingElementList.MARKER_ENTRY || this.openElements.contains(entry.element) + (entry) => entry.type === EntryType.Marker || this.openElements.contains(entry.element) ); const unopenIdx = endIndex < 0 ? listLength - 1 : endIndex - 1;