Skip to content

Commit 5f650f7

Browse files
committed
Fix performance regression
1 parent 9d0289d commit 5f650f7

File tree

1 file changed

+8
-11
lines changed

1 file changed

+8
-11
lines changed

src/build.mjs

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export const treeify = (built, fields) => {
3737
for (let i = 1; i < built.length; i++) {
3838
const field = built[i++];
3939
const value = typeof field === 'number' ? fields[field - 1] : field;
40-
40+
4141
if (built[i] === TAG_SET) {
4242
tag = value;
4343
}
@@ -78,14 +78,14 @@ export const evaluate = (h, built, fields, args) => {
7878
if (built[i] === TAG_SET) {
7979
args[0] = value;
8080
}
81-
else if (built[i] === PROP_APPEND) {
82-
args[1][built[++i]] += (value + '');
81+
else if (built[i] === PROPS_ASSIGN) {
82+
args[1] = Object.assign(args[1] || {}, value);
8383
}
8484
else if (built[i] === PROP_SET) {
8585
(args[1] = args[1] || {})[built[++i]] = value;
8686
}
87-
else if (built[i] === PROPS_ASSIGN) {
88-
args[1] = Object.assign(args[1] || {}, value);
87+
else if (built[i] === PROP_APPEND) {
88+
args[1][built[++i]] += (value + '');
8989
}
9090
else if (built[i]) {
9191
// code === CHILD_RECURSE
@@ -148,20 +148,20 @@ export const build = function(statics) {
148148
(current[2] = current[2] || {})[propName] = field ? buffer ? (buffer + fields[field]) : fields[field] : buffer;
149149
mode = MODE_PROP_APPEND;
150150
}
151-
else if (MINI && mode == MODE_PROP_APPEND) {
151+
else if (MINI && mode === MODE_PROP_APPEND) {
152152
if (buffer || field) {
153153
current[2][propName] += field ? buffer + fields[field] : buffer;
154154
}
155155
}
156156
else if (!MINI && mode >= MODE_PROP_SET) {
157-
if (buffer) {
157+
if (buffer || (!field && mode === MODE_PROP_SET)) {
158158
current.push(buffer, mode, propName);
159159
mode = MODE_PROP_APPEND;
160160
}
161161
if (field) {
162162
current.push(field, mode, propName);
163+
mode = MODE_PROP_APPEND;
163164
}
164-
mode = MODE_PROP_APPEND;
165165
}
166166
buffer = '';
167167
};
@@ -215,9 +215,6 @@ export const build = function(statics) {
215215
mode = MODE_PROP_SET;
216216
propName = buffer;
217217
buffer = '';
218-
if (!MINI) {
219-
current.push(buffer, mode, propName);
220-
}
221218
}
222219
else if (char === '/') {
223220
commit();

0 commit comments

Comments
 (0)