saner for loop and saner stateful order

This commit is contained in:
CoolElectronics 2024-02-13 19:24:22 -05:00
parent 98251de066
commit 444d7d7f58
No known key found for this signature in database
GPG key ID: F63593D168636C50

13
js.js
View file

@ -45,10 +45,11 @@ export function stateful(target) {
return Reflect.get(target, property, proxy); return Reflect.get(target, property, proxy);
}, },
set(target, property, val) { set(target, property, val) {
let trap = Reflect.set(target, property, val);
for (const listener of target[ALICEJS_STATEFUL_LISTENERS]) { for (const listener of target[ALICEJS_STATEFUL_LISTENERS]) {
listener(target, property, val); listener(target, property, val);
} }
return Reflect.set(target, property, val); return trap;
}, },
}); });
@ -257,8 +258,8 @@ export function h(type, props, ...children) {
let lastpredicate = []; let lastpredicate = [];
handle(predicate, val => { handle(predicate, val => {
if ( if (
Object.keys(val).length && val.length &&
Object.keys(val).length == lastpredicate.length val.length == lastpredicate.length
) { ) {
let i = 0; let i = 0;
for (const index in val) { for (const index in val) {
@ -273,9 +274,7 @@ export function h(type, props, ...children) {
i += 1; i += 1;
} }
lastpredicate = Object.keys( lastpredicate = JSON.parse(JSON.stringify(val));
JSON.parse(JSON.stringify(val)),
);
} else { } else {
for (const part of __elms) { for (const part of __elms) {
part.remove(); part.remove();
@ -290,7 +289,7 @@ export function h(type, props, ...children) {
} }
} }
lastpredicate = []; lastpredicate = JSON.parse(JSON.stringify(val));
} }
}); });
} else { } else {