• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2
3var NS = exports.NAMESPACES = {
4    HTML: 'http://www.w3.org/1999/xhtml',
5    MATHML: 'http://www.w3.org/1998/Math/MathML',
6    SVG: 'http://www.w3.org/2000/svg',
7    XLINK: 'http://www.w3.org/1999/xlink',
8    XML: 'http://www.w3.org/XML/1998/namespace',
9    XMLNS: 'http://www.w3.org/2000/xmlns/'
10};
11
12exports.ATTRS = {
13    TYPE: 'type',
14    ACTION: 'action',
15    ENCODING: 'encoding',
16    PROMPT: 'prompt',
17    NAME: 'name',
18    COLOR: 'color',
19    FACE: 'face',
20    SIZE: 'size'
21};
22
23var $ = exports.TAG_NAMES = {
24    A: 'a',
25    ADDRESS: 'address',
26    ANNOTATION_XML: 'annotation-xml',
27    APPLET: 'applet',
28    AREA: 'area',
29    ARTICLE: 'article',
30    ASIDE: 'aside',
31
32    B: 'b',
33    BASE: 'base',
34    BASEFONT: 'basefont',
35    BGSOUND: 'bgsound',
36    BIG: 'big',
37    BLOCKQUOTE: 'blockquote',
38    BODY: 'body',
39    BR: 'br',
40    BUTTON: 'button',
41
42    CAPTION: 'caption',
43    CENTER: 'center',
44    CODE: 'code',
45    COL: 'col',
46    COLGROUP: 'colgroup',
47    COMMAND: 'command',
48
49    DD: 'dd',
50    DESC: 'desc',
51    DETAILS: 'details',
52    DIALOG: 'dialog',
53    DIR: 'dir',
54    DIV: 'div',
55    DL: 'dl',
56    DT: 'dt',
57
58    EM: 'em',
59    EMBED: 'embed',
60
61    FIELDSET: 'fieldset',
62    FIGCAPTION: 'figcaption',
63    FIGURE: 'figure',
64    FONT: 'font',
65    FOOTER: 'footer',
66    FOREIGN_OBJECT: 'foreignObject',
67    FORM: 'form',
68    FRAME: 'frame',
69    FRAMESET: 'frameset',
70
71    H1: 'h1',
72    H2: 'h2',
73    H3: 'h3',
74    H4: 'h4',
75    H5: 'h5',
76    H6: 'h6',
77    HEAD: 'head',
78    HEADER: 'header',
79    HGROUP: 'hgroup',
80    HR: 'hr',
81    HTML: 'html',
82
83    I: 'i',
84    IMG: 'img',
85    IMAGE: 'image',
86    INPUT: 'input',
87    IFRAME: 'iframe',
88    ISINDEX: 'isindex',
89
90    KEYGEN: 'keygen',
91
92    LABEL: 'label',
93    LI: 'li',
94    LINK: 'link',
95    LISTING: 'listing',
96
97    MAIN: 'main',
98    MALIGNMARK: 'malignmark',
99    MARQUEE: 'marquee',
100    MATH: 'math',
101    MENU: 'menu',
102    MENUITEM: 'menuitem',
103    META: 'meta',
104    MGLYPH: 'mglyph',
105    MI: 'mi',
106    MO: 'mo',
107    MN: 'mn',
108    MS: 'ms',
109    MTEXT: 'mtext',
110
111    NAV: 'nav',
112    NOBR: 'nobr',
113    NOFRAMES: 'noframes',
114    NOEMBED: 'noembed',
115    NOSCRIPT: 'noscript',
116
117    OBJECT: 'object',
118    OL: 'ol',
119    OPTGROUP: 'optgroup',
120    OPTION: 'option',
121
122    P: 'p',
123    PARAM: 'param',
124    PLAINTEXT: 'plaintext',
125    PRE: 'pre',
126
127    RP: 'rp',
128    RT: 'rt',
129    RUBY: 'ruby',
130
131    S: 's',
132    SCRIPT: 'script',
133    SECTION: 'section',
134    SELECT: 'select',
135    SOURCE: 'source',
136    SMALL: 'small',
137    SPAN: 'span',
138    STRIKE: 'strike',
139    STRONG: 'strong',
140    STYLE: 'style',
141    SUB: 'sub',
142    SUMMARY: 'summary',
143    SUP: 'sup',
144
145    TABLE: 'table',
146    TBODY: 'tbody',
147    TEMPLATE: 'template',
148    TEXTAREA: 'textarea',
149    TFOOT: 'tfoot',
150    TD: 'td',
151    TH: 'th',
152    THEAD: 'thead',
153    TITLE: 'title',
154    TR: 'tr',
155    TRACK: 'track',
156    TT: 'tt',
157
158    U: 'u',
159    UL: 'ul',
160
161    SVG: 'svg',
162
163    VAR: 'var',
164
165    WBR: 'wbr',
166
167    XMP: 'xmp'
168};
169
170var SPECIAL_ELEMENTS = exports.SPECIAL_ELEMENTS = {};
171
172SPECIAL_ELEMENTS[NS.HTML] = {};
173SPECIAL_ELEMENTS[NS.HTML][$.ADDRESS] = true;
174SPECIAL_ELEMENTS[NS.HTML][$.APPLET] = true;
175SPECIAL_ELEMENTS[NS.HTML][$.AREA] = true;
176SPECIAL_ELEMENTS[NS.HTML][$.ARTICLE] = true;
177SPECIAL_ELEMENTS[NS.HTML][$.ASIDE] = true;
178SPECIAL_ELEMENTS[NS.HTML][$.BASE] = true;
179SPECIAL_ELEMENTS[NS.HTML][$.BASEFONT] = true;
180SPECIAL_ELEMENTS[NS.HTML][$.BGSOUND] = true;
181SPECIAL_ELEMENTS[NS.HTML][$.BLOCKQUOTE] = true;
182SPECIAL_ELEMENTS[NS.HTML][$.BODY] = true;
183SPECIAL_ELEMENTS[NS.HTML][$.BR] = true;
184SPECIAL_ELEMENTS[NS.HTML][$.BUTTON] = true;
185SPECIAL_ELEMENTS[NS.HTML][$.CAPTION] = true;
186SPECIAL_ELEMENTS[NS.HTML][$.CENTER] = true;
187SPECIAL_ELEMENTS[NS.HTML][$.COL] = true;
188SPECIAL_ELEMENTS[NS.HTML][$.COLGROUP] = true;
189SPECIAL_ELEMENTS[NS.HTML][$.DD] = true;
190SPECIAL_ELEMENTS[NS.HTML][$.DETAILS] = true;
191SPECIAL_ELEMENTS[NS.HTML][$.DIR] = true;
192SPECIAL_ELEMENTS[NS.HTML][$.DIV] = true;
193SPECIAL_ELEMENTS[NS.HTML][$.DL] = true;
194SPECIAL_ELEMENTS[NS.HTML][$.DT] = true;
195SPECIAL_ELEMENTS[NS.HTML][$.EMBED] = true;
196SPECIAL_ELEMENTS[NS.HTML][$.FIELDSET] = true;
197SPECIAL_ELEMENTS[NS.HTML][$.FIGCAPTION] = true;
198SPECIAL_ELEMENTS[NS.HTML][$.FIGURE] = true;
199SPECIAL_ELEMENTS[NS.HTML][$.FOOTER] = true;
200SPECIAL_ELEMENTS[NS.HTML][$.FORM] = true;
201SPECIAL_ELEMENTS[NS.HTML][$.FRAME] = true;
202SPECIAL_ELEMENTS[NS.HTML][$.FRAMESET] = true;
203SPECIAL_ELEMENTS[NS.HTML][$.H1] = true;
204SPECIAL_ELEMENTS[NS.HTML][$.H2] = true;
205SPECIAL_ELEMENTS[NS.HTML][$.H3] = true;
206SPECIAL_ELEMENTS[NS.HTML][$.H4] = true;
207SPECIAL_ELEMENTS[NS.HTML][$.H5] = true;
208SPECIAL_ELEMENTS[NS.HTML][$.H6] = true;
209SPECIAL_ELEMENTS[NS.HTML][$.HEAD] = true;
210SPECIAL_ELEMENTS[NS.HTML][$.HEADER] = true;
211SPECIAL_ELEMENTS[NS.HTML][$.HGROUP] = true;
212SPECIAL_ELEMENTS[NS.HTML][$.HR] = true;
213SPECIAL_ELEMENTS[NS.HTML][$.HTML] = true;
214SPECIAL_ELEMENTS[NS.HTML][$.IFRAME] = true;
215SPECIAL_ELEMENTS[NS.HTML][$.IMG] = true;
216SPECIAL_ELEMENTS[NS.HTML][$.INPUT] = true;
217SPECIAL_ELEMENTS[NS.HTML][$.ISINDEX] = true;
218SPECIAL_ELEMENTS[NS.HTML][$.LI] = true;
219SPECIAL_ELEMENTS[NS.HTML][$.LINK] = true;
220SPECIAL_ELEMENTS[NS.HTML][$.LISTING] = true;
221SPECIAL_ELEMENTS[NS.HTML][$.MAIN] = true;
222SPECIAL_ELEMENTS[NS.HTML][$.MARQUEE] = true;
223SPECIAL_ELEMENTS[NS.HTML][$.MENU] = true;
224SPECIAL_ELEMENTS[NS.HTML][$.MENUITEM] = true;
225SPECIAL_ELEMENTS[NS.HTML][$.META] = true;
226SPECIAL_ELEMENTS[NS.HTML][$.NAV] = true;
227SPECIAL_ELEMENTS[NS.HTML][$.NOEMBED] = true;
228SPECIAL_ELEMENTS[NS.HTML][$.NOFRAMES] = true;
229SPECIAL_ELEMENTS[NS.HTML][$.NOSCRIPT] = true;
230SPECIAL_ELEMENTS[NS.HTML][$.OBJECT] = true;
231SPECIAL_ELEMENTS[NS.HTML][$.OL] = true;
232SPECIAL_ELEMENTS[NS.HTML][$.P] = true;
233SPECIAL_ELEMENTS[NS.HTML][$.PARAM] = true;
234SPECIAL_ELEMENTS[NS.HTML][$.PLAINTEXT] = true;
235SPECIAL_ELEMENTS[NS.HTML][$.PRE] = true;
236SPECIAL_ELEMENTS[NS.HTML][$.SCRIPT] = true;
237SPECIAL_ELEMENTS[NS.HTML][$.SECTION] = true;
238SPECIAL_ELEMENTS[NS.HTML][$.SELECT] = true;
239SPECIAL_ELEMENTS[NS.HTML][$.SOURCE] = true;
240SPECIAL_ELEMENTS[NS.HTML][$.STYLE] = true;
241SPECIAL_ELEMENTS[NS.HTML][$.SUMMARY] = true;
242SPECIAL_ELEMENTS[NS.HTML][$.TABLE] = true;
243SPECIAL_ELEMENTS[NS.HTML][$.TBODY] = true;
244SPECIAL_ELEMENTS[NS.HTML][$.TD] = true;
245SPECIAL_ELEMENTS[NS.HTML][$.TEMPLATE] = true;
246SPECIAL_ELEMENTS[NS.HTML][$.TEXTAREA] = true;
247SPECIAL_ELEMENTS[NS.HTML][$.TFOOT] = true;
248SPECIAL_ELEMENTS[NS.HTML][$.TH] = true;
249SPECIAL_ELEMENTS[NS.HTML][$.THEAD] = true;
250SPECIAL_ELEMENTS[NS.HTML][$.TITLE] = true;
251SPECIAL_ELEMENTS[NS.HTML][$.TR] = true;
252SPECIAL_ELEMENTS[NS.HTML][$.TRACK] = true;
253SPECIAL_ELEMENTS[NS.HTML][$.UL] = true;
254SPECIAL_ELEMENTS[NS.HTML][$.WBR] = true;
255SPECIAL_ELEMENTS[NS.HTML][$.XMP] = true;
256
257SPECIAL_ELEMENTS[NS.MATHML] = {};
258SPECIAL_ELEMENTS[NS.MATHML][$.MI] = true;
259SPECIAL_ELEMENTS[NS.MATHML][$.MO] = true;
260SPECIAL_ELEMENTS[NS.MATHML][$.MN] = true;
261SPECIAL_ELEMENTS[NS.MATHML][$.MS] = true;
262SPECIAL_ELEMENTS[NS.MATHML][$.MTEXT] = true;
263SPECIAL_ELEMENTS[NS.MATHML][$.ANNOTATION_XML] = true;
264
265SPECIAL_ELEMENTS[NS.SVG] = {};
266SPECIAL_ELEMENTS[NS.SVG][$.TITLE] = true;
267SPECIAL_ELEMENTS[NS.SVG][$.FOREIGN_OBJECT] = true;
268SPECIAL_ELEMENTS[NS.SVG][$.DESC] = true;
269