@@ -26,22 +26,22 @@ var parseOptions = {
26
26
27
27
function wrap ( tree , file ) {
28
28
var parser = new Parser ( parseOptions )
29
- var one = zwitch ( 'type' )
29
+ var one = zwitch ( 'type' , {
30
+ handlers : {
31
+ root : root ,
32
+ element : element ,
33
+ text : text ,
34
+ comment : comment ,
35
+ doctype : doctype ,
36
+ raw : raw
37
+ } ,
38
+ unknown : unknown
39
+ } )
30
40
var tokenizer
31
41
var preprocessor
32
42
var posTracker
33
43
var locationTracker
34
- var result
35
-
36
- one . handlers . root = root
37
- one . handlers . element = element
38
- one . handlers . text = text
39
- one . handlers . comment = comment
40
- one . handlers . doctype = doctype
41
- one . handlers . raw = raw
42
- one . unknown = unknown
43
-
44
- result = fromParse5 ( documentMode ( tree ) ? document ( ) : fragment ( ) , file )
44
+ var result = fromParse5 ( documentMode ( tree ) ? document ( ) : fragment ( ) , file )
45
45
46
46
// Unpack if possible and when not given a `root`.
47
47
if ( tree . type !== 'root' && result . children . length === 1 ) {
@@ -51,30 +51,21 @@ function wrap(tree, file) {
51
51
return result
52
52
53
53
function fragment ( ) {
54
- var context
55
- var mock
56
- var doc
57
-
58
- context = {
54
+ var context = {
59
55
nodeName : 'template' ,
60
56
tagName : 'template' ,
61
57
attrs : [ ] ,
62
58
namespaceURI : ns . html ,
63
59
childNodes : [ ]
64
60
}
65
-
66
- mock = {
61
+ var mock = {
67
62
nodeName : 'documentmock' ,
68
63
tagName : 'documentmock' ,
69
64
attrs : [ ] ,
70
65
namespaceURI : ns . html ,
71
66
childNodes : [ ]
72
67
}
73
-
74
- doc = {
75
- nodeName : '#document-fragment' ,
76
- childNodes : [ ]
77
- }
68
+ var doc = { nodeName : '#document-fragment' , childNodes : [ ] }
78
69
79
70
parser . _bootstrap ( mock , context )
80
71
parser . _pushTmplInsertionMode ( inTemplateMode )
@@ -110,16 +101,13 @@ function wrap(tree, file) {
110
101
}
111
102
112
103
function all ( nodes ) {
113
- var length = 0
114
104
var index = - 1
115
105
116
106
/* istanbul ignore else - invalid nodes, see rehypejs/rehype-raw#7. */
117
107
if ( nodes ) {
118
- length = nodes . length
119
- }
120
-
121
- while ( ++ index < length ) {
122
- one ( nodes [ index ] )
108
+ while ( ++ index < nodes . length ) {
109
+ one ( nodes [ index ] )
110
+ }
123
111
}
124
112
}
125
113
@@ -128,14 +116,12 @@ function wrap(tree, file) {
128
116
}
129
117
130
118
function element ( node ) {
131
- var empty = voids . indexOf ( node . tagName ) !== - 1
132
-
133
119
resetTokenizer ( )
134
120
parser . _processToken ( startTag ( node ) , ns . html )
135
121
136
122
all ( node . children )
137
123
138
- if ( ! empty ) {
124
+ if ( voids . indexOf ( node . tagName ) < 0 ) {
139
125
resetTokenizer ( )
140
126
parser . _processToken ( endTag ( node ) )
141
127
}
0 commit comments