|
1 | | -const TAG_SET = 0; |
2 | | -const PROPS_SET = 1; |
3 | | -const PROPS_ASSIGN = 2; |
4 | | -const CHILD_RECURSE = 3; |
5 | | -const CHILD_APPEND = 4; |
| 1 | +const TAG_SET = 1; |
| 2 | +const PROPS_SET = 2; |
| 3 | +const PROPS_ASSIGN = 3; |
| 4 | +const CHILD_RECURSE = 4; |
| 5 | +const CHILD_APPEND = 0; |
6 | 6 |
|
7 | 7 | const MODE_SLASH = 0; |
8 | 8 | const MODE_TEXT = 1; |
9 | | -const MODE_WHITESPACE = 3; |
10 | | -const MODE_TAGNAME = 4; |
11 | | -const MODE_ATTRIBUTE = 5; |
| 9 | +const MODE_WHITESPACE = 2; |
| 10 | +const MODE_TAGNAME = 3; |
| 11 | +const MODE_ATTRIBUTE = 4; |
12 | 12 |
|
13 | 13 | export const evaluate = (h, current, fields, args) => { |
14 | 14 | for (let i = 1; i < current.length; i++) { |
15 | 15 | const field = current[i++]; |
16 | 16 | const value = field ? fields[field] : current[i]; |
17 | 17 |
|
18 | | - const code = current[++i]; |
19 | | - if (code === TAG_SET) { |
| 18 | + if (current[++i] === TAG_SET) { |
20 | 19 | args[0] = value; |
21 | 20 | } |
22 | | - else if (code === PROPS_SET) { |
| 21 | + else if (current[i] === PROPS_SET) { |
23 | 22 | (args[1] = args[1] || {})[current[++i]] = value; |
24 | 23 | } |
25 | | - else if (code === PROPS_ASSIGN) { |
| 24 | + else if (current[i] === PROPS_ASSIGN) { |
26 | 25 | args[1] = Object.assign(args[1] || {}, value); |
27 | 26 | } |
28 | | - else if (code === CHILD_RECURSE) { |
29 | | - // eslint-disable-next-line prefer-spread |
| 27 | + else if (current[i]) { |
| 28 | + // code === CHILD_RECURSE |
30 | 29 | args.push(h.apply(null, evaluate(h, value, fields, ['', null]))); |
31 | 30 | } |
32 | | - else { // code === CHILD_APPEND |
| 31 | + else { |
| 32 | + // code === CHILD_APPEND |
33 | 33 | args.push(value); |
34 | 34 | } |
35 | 35 | } |
|
0 commit comments