solid-js 1.5.6 → 1.6.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dev.cjs +71 -61
- package/dist/dev.js +71 -61
- package/dist/solid.cjs +71 -61
- package/dist/solid.js +71 -61
- package/html/dist/html.cjs +30 -10
- package/html/dist/html.js +30 -10
- package/package.json +22 -22
- package/store/package.json +7 -7
- package/types/reactive/signal.d.ts +1 -1
- package/universal/dist/dev.cjs +4 -20
- package/universal/dist/dev.js +5 -21
- package/universal/dist/universal.cjs +4 -20
- package/universal/dist/universal.js +5 -21
- package/web/dist/dev.cjs +37 -44
- package/web/dist/dev.js +35 -46
- package/web/dist/server.cjs +34 -20
- package/web/dist/server.js +34 -21
- package/web/dist/web.cjs +37 -44
- package/web/dist/web.js +35 -46
- package/web/package.json +7 -7
- package/web/types/client.d.ts +6 -5
- package/web/types/core.d.ts +1 -3
- package/web/types/index.d.ts +3 -1
- package/web/types/server.d.ts +11 -4
package/dist/dev.cjs
CHANGED
|
@@ -287,10 +287,6 @@ function createResource(pSource, pFetcher, pOptions) {
|
|
|
287
287
|
loadedUnderTransition = false;
|
|
288
288
|
runUpdates(() => {
|
|
289
289
|
Transition.running = true;
|
|
290
|
-
if (!Transition.promises.size) {
|
|
291
|
-
Effects.push.apply(Effects, Transition.effects);
|
|
292
|
-
Transition.effects = [];
|
|
293
|
-
}
|
|
294
290
|
completeLoad(v, error);
|
|
295
291
|
}, false);
|
|
296
292
|
} else completeLoad(v, error);
|
|
@@ -315,7 +311,7 @@ function createResource(pSource, pFetcher, pOptions) {
|
|
|
315
311
|
createComputed(() => {
|
|
316
312
|
track();
|
|
317
313
|
if (pr) {
|
|
318
|
-
if (c.resolved && Transition) Transition.promises.add(pr);else if (!contexts.has(c)) {
|
|
314
|
+
if (c.resolved && Transition && Transition.running) Transition.promises.add(pr);else if (!contexts.has(c)) {
|
|
319
315
|
c.increment();
|
|
320
316
|
contexts.add(c);
|
|
321
317
|
}
|
|
@@ -686,7 +682,9 @@ function updateComputation(node) {
|
|
|
686
682
|
queueMicrotask(() => {
|
|
687
683
|
runUpdates(() => {
|
|
688
684
|
Transition && (Transition.running = true);
|
|
685
|
+
Listener = Owner = node;
|
|
689
686
|
runComputation(node, node.tValue, time);
|
|
687
|
+
Listener = Owner = null;
|
|
690
688
|
}, false);
|
|
691
689
|
});
|
|
692
690
|
}
|
|
@@ -803,36 +801,38 @@ function completeUpdates(wait) {
|
|
|
803
801
|
}
|
|
804
802
|
if (wait) return;
|
|
805
803
|
let res;
|
|
806
|
-
if (Transition
|
|
807
|
-
if (Transition.promises.size
|
|
804
|
+
if (Transition) {
|
|
805
|
+
if (!Transition.promises.size && !Transition.queue.size) {
|
|
806
|
+
const sources = Transition.sources;
|
|
807
|
+
const disposed = Transition.disposed;
|
|
808
|
+
Effects.push.apply(Effects, Transition.effects);
|
|
809
|
+
res = Transition.resolve;
|
|
810
|
+
for (const e of Effects) {
|
|
811
|
+
"tState" in e && (e.state = e.tState);
|
|
812
|
+
delete e.tState;
|
|
813
|
+
}
|
|
814
|
+
Transition = null;
|
|
815
|
+
runUpdates(() => {
|
|
816
|
+
for (const d of disposed) cleanNode(d);
|
|
817
|
+
for (const v of sources) {
|
|
818
|
+
v.value = v.tValue;
|
|
819
|
+
if (v.owned) {
|
|
820
|
+
for (let i = 0, len = v.owned.length; i < len; i++) cleanNode(v.owned[i]);
|
|
821
|
+
}
|
|
822
|
+
if (v.tOwned) v.owned = v.tOwned;
|
|
823
|
+
delete v.tValue;
|
|
824
|
+
delete v.tOwned;
|
|
825
|
+
v.tState = 0;
|
|
826
|
+
}
|
|
827
|
+
setTransPending(false);
|
|
828
|
+
}, false);
|
|
829
|
+
} else if (Transition.running) {
|
|
808
830
|
Transition.running = false;
|
|
809
831
|
Transition.effects.push.apply(Transition.effects, Effects);
|
|
810
832
|
Effects = null;
|
|
811
833
|
setTransPending(true);
|
|
812
834
|
return;
|
|
813
835
|
}
|
|
814
|
-
const sources = Transition.sources;
|
|
815
|
-
const disposed = Transition.disposed;
|
|
816
|
-
res = Transition.resolve;
|
|
817
|
-
for (const e of Effects) {
|
|
818
|
-
"tState" in e && (e.state = e.tState);
|
|
819
|
-
delete e.tState;
|
|
820
|
-
}
|
|
821
|
-
Transition = null;
|
|
822
|
-
runUpdates(() => {
|
|
823
|
-
for (const d of disposed) cleanNode(d);
|
|
824
|
-
for (const v of sources) {
|
|
825
|
-
v.value = v.tValue;
|
|
826
|
-
if (v.owned) {
|
|
827
|
-
for (let i = 0, len = v.owned.length; i < len; i++) cleanNode(v.owned[i]);
|
|
828
|
-
}
|
|
829
|
-
if (v.tOwned) v.owned = v.tOwned;
|
|
830
|
-
delete v.tValue;
|
|
831
|
-
delete v.tOwned;
|
|
832
|
-
v.tState = 0;
|
|
833
|
-
}
|
|
834
|
-
setTransPending(false);
|
|
835
|
-
}, false);
|
|
836
836
|
}
|
|
837
837
|
const e = Effects;
|
|
838
838
|
Effects = null;
|
|
@@ -853,10 +853,6 @@ function scheduleQueue(queue) {
|
|
|
853
853
|
runUpdates(() => {
|
|
854
854
|
Transition.running = true;
|
|
855
855
|
runTop(item);
|
|
856
|
-
if (!tasks.size) {
|
|
857
|
-
Effects.push.apply(Effects, Transition.effects);
|
|
858
|
-
Transition.effects = [];
|
|
859
|
-
}
|
|
860
856
|
}, false);
|
|
861
857
|
Transition && (Transition.running = false);
|
|
862
858
|
});
|
|
@@ -1263,29 +1259,41 @@ function resolveSource(s) {
|
|
|
1263
1259
|
return (s = typeof s === "function" ? s() : s) == null ? {} : s;
|
|
1264
1260
|
}
|
|
1265
1261
|
function mergeProps(...sources) {
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1262
|
+
if (sources.some(s => s && ($PROXY in s || typeof s === "function"))) {
|
|
1263
|
+
return new Proxy({
|
|
1264
|
+
get(property) {
|
|
1265
|
+
for (let i = sources.length - 1; i >= 0; i--) {
|
|
1266
|
+
const v = resolveSource(sources[i])[property];
|
|
1267
|
+
if (v !== undefined) return v;
|
|
1268
|
+
}
|
|
1269
|
+
},
|
|
1270
|
+
has(property) {
|
|
1271
|
+
for (let i = sources.length - 1; i >= 0; i--) {
|
|
1272
|
+
if (property in resolveSource(sources[i])) return true;
|
|
1273
|
+
}
|
|
1274
|
+
return false;
|
|
1275
|
+
},
|
|
1276
|
+
keys() {
|
|
1277
|
+
const keys = [];
|
|
1278
|
+
for (let i = 0; i < sources.length; i++) keys.push(...Object.keys(resolveSource(sources[i])));
|
|
1279
|
+
return [...new Set(keys)];
|
|
1276
1280
|
}
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1281
|
+
}, propTraps);
|
|
1282
|
+
}
|
|
1283
|
+
const target = {};
|
|
1284
|
+
for (let i = 0; i < sources.length; i++) {
|
|
1285
|
+
if (sources[i]) {
|
|
1286
|
+
const descriptors = Object.getOwnPropertyDescriptors(sources[i]);
|
|
1287
|
+
Object.defineProperties(target, descriptors);
|
|
1283
1288
|
}
|
|
1284
|
-
}
|
|
1289
|
+
}
|
|
1290
|
+
return target;
|
|
1285
1291
|
}
|
|
1286
1292
|
function splitProps(props, ...keys) {
|
|
1287
1293
|
const blocked = new Set(keys.flat());
|
|
1288
1294
|
const descriptors = Object.getOwnPropertyDescriptors(props);
|
|
1295
|
+
const isProxy = ($PROXY in props);
|
|
1296
|
+
if (!isProxy) keys.push(Object.keys(descriptors).filter(k => !blocked.has(k)));
|
|
1289
1297
|
const res = keys.map(k => {
|
|
1290
1298
|
const clone = {};
|
|
1291
1299
|
for (let i = 0; i < k.length; i++) {
|
|
@@ -1301,17 +1309,19 @@ function splitProps(props, ...keys) {
|
|
|
1301
1309
|
}
|
|
1302
1310
|
return clone;
|
|
1303
1311
|
});
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1312
|
+
if (isProxy) {
|
|
1313
|
+
res.push(new Proxy({
|
|
1314
|
+
get(property) {
|
|
1315
|
+
return blocked.has(property) ? undefined : props[property];
|
|
1316
|
+
},
|
|
1317
|
+
has(property) {
|
|
1318
|
+
return blocked.has(property) ? false : property in props;
|
|
1319
|
+
},
|
|
1320
|
+
keys() {
|
|
1321
|
+
return Object.keys(props).filter(k => !blocked.has(k));
|
|
1322
|
+
}
|
|
1323
|
+
}, propTraps));
|
|
1324
|
+
}
|
|
1315
1325
|
return res;
|
|
1316
1326
|
}
|
|
1317
1327
|
function lazy(fn) {
|
package/dist/dev.js
CHANGED
|
@@ -283,10 +283,6 @@ function createResource(pSource, pFetcher, pOptions) {
|
|
|
283
283
|
loadedUnderTransition = false;
|
|
284
284
|
runUpdates(() => {
|
|
285
285
|
Transition.running = true;
|
|
286
|
-
if (!Transition.promises.size) {
|
|
287
|
-
Effects.push.apply(Effects, Transition.effects);
|
|
288
|
-
Transition.effects = [];
|
|
289
|
-
}
|
|
290
286
|
completeLoad(v, error);
|
|
291
287
|
}, false);
|
|
292
288
|
} else completeLoad(v, error);
|
|
@@ -311,7 +307,7 @@ function createResource(pSource, pFetcher, pOptions) {
|
|
|
311
307
|
createComputed(() => {
|
|
312
308
|
track();
|
|
313
309
|
if (pr) {
|
|
314
|
-
if (c.resolved && Transition) Transition.promises.add(pr);else if (!contexts.has(c)) {
|
|
310
|
+
if (c.resolved && Transition && Transition.running) Transition.promises.add(pr);else if (!contexts.has(c)) {
|
|
315
311
|
c.increment();
|
|
316
312
|
contexts.add(c);
|
|
317
313
|
}
|
|
@@ -682,7 +678,9 @@ function updateComputation(node) {
|
|
|
682
678
|
queueMicrotask(() => {
|
|
683
679
|
runUpdates(() => {
|
|
684
680
|
Transition && (Transition.running = true);
|
|
681
|
+
Listener = Owner = node;
|
|
685
682
|
runComputation(node, node.tValue, time);
|
|
683
|
+
Listener = Owner = null;
|
|
686
684
|
}, false);
|
|
687
685
|
});
|
|
688
686
|
}
|
|
@@ -799,36 +797,38 @@ function completeUpdates(wait) {
|
|
|
799
797
|
}
|
|
800
798
|
if (wait) return;
|
|
801
799
|
let res;
|
|
802
|
-
if (Transition
|
|
803
|
-
if (Transition.promises.size
|
|
800
|
+
if (Transition) {
|
|
801
|
+
if (!Transition.promises.size && !Transition.queue.size) {
|
|
802
|
+
const sources = Transition.sources;
|
|
803
|
+
const disposed = Transition.disposed;
|
|
804
|
+
Effects.push.apply(Effects, Transition.effects);
|
|
805
|
+
res = Transition.resolve;
|
|
806
|
+
for (const e of Effects) {
|
|
807
|
+
"tState" in e && (e.state = e.tState);
|
|
808
|
+
delete e.tState;
|
|
809
|
+
}
|
|
810
|
+
Transition = null;
|
|
811
|
+
runUpdates(() => {
|
|
812
|
+
for (const d of disposed) cleanNode(d);
|
|
813
|
+
for (const v of sources) {
|
|
814
|
+
v.value = v.tValue;
|
|
815
|
+
if (v.owned) {
|
|
816
|
+
for (let i = 0, len = v.owned.length; i < len; i++) cleanNode(v.owned[i]);
|
|
817
|
+
}
|
|
818
|
+
if (v.tOwned) v.owned = v.tOwned;
|
|
819
|
+
delete v.tValue;
|
|
820
|
+
delete v.tOwned;
|
|
821
|
+
v.tState = 0;
|
|
822
|
+
}
|
|
823
|
+
setTransPending(false);
|
|
824
|
+
}, false);
|
|
825
|
+
} else if (Transition.running) {
|
|
804
826
|
Transition.running = false;
|
|
805
827
|
Transition.effects.push.apply(Transition.effects, Effects);
|
|
806
828
|
Effects = null;
|
|
807
829
|
setTransPending(true);
|
|
808
830
|
return;
|
|
809
831
|
}
|
|
810
|
-
const sources = Transition.sources;
|
|
811
|
-
const disposed = Transition.disposed;
|
|
812
|
-
res = Transition.resolve;
|
|
813
|
-
for (const e of Effects) {
|
|
814
|
-
"tState" in e && (e.state = e.tState);
|
|
815
|
-
delete e.tState;
|
|
816
|
-
}
|
|
817
|
-
Transition = null;
|
|
818
|
-
runUpdates(() => {
|
|
819
|
-
for (const d of disposed) cleanNode(d);
|
|
820
|
-
for (const v of sources) {
|
|
821
|
-
v.value = v.tValue;
|
|
822
|
-
if (v.owned) {
|
|
823
|
-
for (let i = 0, len = v.owned.length; i < len; i++) cleanNode(v.owned[i]);
|
|
824
|
-
}
|
|
825
|
-
if (v.tOwned) v.owned = v.tOwned;
|
|
826
|
-
delete v.tValue;
|
|
827
|
-
delete v.tOwned;
|
|
828
|
-
v.tState = 0;
|
|
829
|
-
}
|
|
830
|
-
setTransPending(false);
|
|
831
|
-
}, false);
|
|
832
832
|
}
|
|
833
833
|
const e = Effects;
|
|
834
834
|
Effects = null;
|
|
@@ -849,10 +849,6 @@ function scheduleQueue(queue) {
|
|
|
849
849
|
runUpdates(() => {
|
|
850
850
|
Transition.running = true;
|
|
851
851
|
runTop(item);
|
|
852
|
-
if (!tasks.size) {
|
|
853
|
-
Effects.push.apply(Effects, Transition.effects);
|
|
854
|
-
Transition.effects = [];
|
|
855
|
-
}
|
|
856
852
|
}, false);
|
|
857
853
|
Transition && (Transition.running = false);
|
|
858
854
|
});
|
|
@@ -1259,29 +1255,41 @@ function resolveSource(s) {
|
|
|
1259
1255
|
return (s = typeof s === "function" ? s() : s) == null ? {} : s;
|
|
1260
1256
|
}
|
|
1261
1257
|
function mergeProps(...sources) {
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1258
|
+
if (sources.some(s => s && ($PROXY in s || typeof s === "function"))) {
|
|
1259
|
+
return new Proxy({
|
|
1260
|
+
get(property) {
|
|
1261
|
+
for (let i = sources.length - 1; i >= 0; i--) {
|
|
1262
|
+
const v = resolveSource(sources[i])[property];
|
|
1263
|
+
if (v !== undefined) return v;
|
|
1264
|
+
}
|
|
1265
|
+
},
|
|
1266
|
+
has(property) {
|
|
1267
|
+
for (let i = sources.length - 1; i >= 0; i--) {
|
|
1268
|
+
if (property in resolveSource(sources[i])) return true;
|
|
1269
|
+
}
|
|
1270
|
+
return false;
|
|
1271
|
+
},
|
|
1272
|
+
keys() {
|
|
1273
|
+
const keys = [];
|
|
1274
|
+
for (let i = 0; i < sources.length; i++) keys.push(...Object.keys(resolveSource(sources[i])));
|
|
1275
|
+
return [...new Set(keys)];
|
|
1272
1276
|
}
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1277
|
+
}, propTraps);
|
|
1278
|
+
}
|
|
1279
|
+
const target = {};
|
|
1280
|
+
for (let i = 0; i < sources.length; i++) {
|
|
1281
|
+
if (sources[i]) {
|
|
1282
|
+
const descriptors = Object.getOwnPropertyDescriptors(sources[i]);
|
|
1283
|
+
Object.defineProperties(target, descriptors);
|
|
1279
1284
|
}
|
|
1280
|
-
}
|
|
1285
|
+
}
|
|
1286
|
+
return target;
|
|
1281
1287
|
}
|
|
1282
1288
|
function splitProps(props, ...keys) {
|
|
1283
1289
|
const blocked = new Set(keys.flat());
|
|
1284
1290
|
const descriptors = Object.getOwnPropertyDescriptors(props);
|
|
1291
|
+
const isProxy = ($PROXY in props);
|
|
1292
|
+
if (!isProxy) keys.push(Object.keys(descriptors).filter(k => !blocked.has(k)));
|
|
1285
1293
|
const res = keys.map(k => {
|
|
1286
1294
|
const clone = {};
|
|
1287
1295
|
for (let i = 0; i < k.length; i++) {
|
|
@@ -1297,17 +1305,19 @@ function splitProps(props, ...keys) {
|
|
|
1297
1305
|
}
|
|
1298
1306
|
return clone;
|
|
1299
1307
|
});
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1308
|
+
if (isProxy) {
|
|
1309
|
+
res.push(new Proxy({
|
|
1310
|
+
get(property) {
|
|
1311
|
+
return blocked.has(property) ? undefined : props[property];
|
|
1312
|
+
},
|
|
1313
|
+
has(property) {
|
|
1314
|
+
return blocked.has(property) ? false : property in props;
|
|
1315
|
+
},
|
|
1316
|
+
keys() {
|
|
1317
|
+
return Object.keys(props).filter(k => !blocked.has(k));
|
|
1318
|
+
}
|
|
1319
|
+
}, propTraps));
|
|
1320
|
+
}
|
|
1311
1321
|
return res;
|
|
1312
1322
|
}
|
|
1313
1323
|
function lazy(fn) {
|
package/dist/solid.cjs
CHANGED
|
@@ -279,10 +279,6 @@ function createResource(pSource, pFetcher, pOptions) {
|
|
|
279
279
|
loadedUnderTransition = false;
|
|
280
280
|
runUpdates(() => {
|
|
281
281
|
Transition.running = true;
|
|
282
|
-
if (!Transition.promises.size) {
|
|
283
|
-
Effects.push.apply(Effects, Transition.effects);
|
|
284
|
-
Transition.effects = [];
|
|
285
|
-
}
|
|
286
282
|
completeLoad(v, error);
|
|
287
283
|
}, false);
|
|
288
284
|
} else completeLoad(v, error);
|
|
@@ -307,7 +303,7 @@ function createResource(pSource, pFetcher, pOptions) {
|
|
|
307
303
|
createComputed(() => {
|
|
308
304
|
track();
|
|
309
305
|
if (pr) {
|
|
310
|
-
if (c.resolved && Transition) Transition.promises.add(pr);else if (!contexts.has(c)) {
|
|
306
|
+
if (c.resolved && Transition && Transition.running) Transition.promises.add(pr);else if (!contexts.has(c)) {
|
|
311
307
|
c.increment();
|
|
312
308
|
contexts.add(c);
|
|
313
309
|
}
|
|
@@ -625,7 +621,9 @@ function updateComputation(node) {
|
|
|
625
621
|
queueMicrotask(() => {
|
|
626
622
|
runUpdates(() => {
|
|
627
623
|
Transition && (Transition.running = true);
|
|
624
|
+
Listener = Owner = node;
|
|
628
625
|
runComputation(node, node.tValue, time);
|
|
626
|
+
Listener = Owner = null;
|
|
629
627
|
}, false);
|
|
630
628
|
});
|
|
631
629
|
}
|
|
@@ -741,36 +739,38 @@ function completeUpdates(wait) {
|
|
|
741
739
|
}
|
|
742
740
|
if (wait) return;
|
|
743
741
|
let res;
|
|
744
|
-
if (Transition
|
|
745
|
-
if (Transition.promises.size
|
|
742
|
+
if (Transition) {
|
|
743
|
+
if (!Transition.promises.size && !Transition.queue.size) {
|
|
744
|
+
const sources = Transition.sources;
|
|
745
|
+
const disposed = Transition.disposed;
|
|
746
|
+
Effects.push.apply(Effects, Transition.effects);
|
|
747
|
+
res = Transition.resolve;
|
|
748
|
+
for (const e of Effects) {
|
|
749
|
+
"tState" in e && (e.state = e.tState);
|
|
750
|
+
delete e.tState;
|
|
751
|
+
}
|
|
752
|
+
Transition = null;
|
|
753
|
+
runUpdates(() => {
|
|
754
|
+
for (const d of disposed) cleanNode(d);
|
|
755
|
+
for (const v of sources) {
|
|
756
|
+
v.value = v.tValue;
|
|
757
|
+
if (v.owned) {
|
|
758
|
+
for (let i = 0, len = v.owned.length; i < len; i++) cleanNode(v.owned[i]);
|
|
759
|
+
}
|
|
760
|
+
if (v.tOwned) v.owned = v.tOwned;
|
|
761
|
+
delete v.tValue;
|
|
762
|
+
delete v.tOwned;
|
|
763
|
+
v.tState = 0;
|
|
764
|
+
}
|
|
765
|
+
setTransPending(false);
|
|
766
|
+
}, false);
|
|
767
|
+
} else if (Transition.running) {
|
|
746
768
|
Transition.running = false;
|
|
747
769
|
Transition.effects.push.apply(Transition.effects, Effects);
|
|
748
770
|
Effects = null;
|
|
749
771
|
setTransPending(true);
|
|
750
772
|
return;
|
|
751
773
|
}
|
|
752
|
-
const sources = Transition.sources;
|
|
753
|
-
const disposed = Transition.disposed;
|
|
754
|
-
res = Transition.resolve;
|
|
755
|
-
for (const e of Effects) {
|
|
756
|
-
"tState" in e && (e.state = e.tState);
|
|
757
|
-
delete e.tState;
|
|
758
|
-
}
|
|
759
|
-
Transition = null;
|
|
760
|
-
runUpdates(() => {
|
|
761
|
-
for (const d of disposed) cleanNode(d);
|
|
762
|
-
for (const v of sources) {
|
|
763
|
-
v.value = v.tValue;
|
|
764
|
-
if (v.owned) {
|
|
765
|
-
for (let i = 0, len = v.owned.length; i < len; i++) cleanNode(v.owned[i]);
|
|
766
|
-
}
|
|
767
|
-
if (v.tOwned) v.owned = v.tOwned;
|
|
768
|
-
delete v.tValue;
|
|
769
|
-
delete v.tOwned;
|
|
770
|
-
v.tState = 0;
|
|
771
|
-
}
|
|
772
|
-
setTransPending(false);
|
|
773
|
-
}, false);
|
|
774
774
|
}
|
|
775
775
|
const e = Effects;
|
|
776
776
|
Effects = null;
|
|
@@ -791,10 +791,6 @@ function scheduleQueue(queue) {
|
|
|
791
791
|
runUpdates(() => {
|
|
792
792
|
Transition.running = true;
|
|
793
793
|
runTop(item);
|
|
794
|
-
if (!tasks.size) {
|
|
795
|
-
Effects.push.apply(Effects, Transition.effects);
|
|
796
|
-
Transition.effects = [];
|
|
797
|
-
}
|
|
798
794
|
}, false);
|
|
799
795
|
Transition && (Transition.running = false);
|
|
800
796
|
});
|
|
@@ -1177,29 +1173,41 @@ function resolveSource(s) {
|
|
|
1177
1173
|
return (s = typeof s === "function" ? s() : s) == null ? {} : s;
|
|
1178
1174
|
}
|
|
1179
1175
|
function mergeProps(...sources) {
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1176
|
+
if (sources.some(s => s && ($PROXY in s || typeof s === "function"))) {
|
|
1177
|
+
return new Proxy({
|
|
1178
|
+
get(property) {
|
|
1179
|
+
for (let i = sources.length - 1; i >= 0; i--) {
|
|
1180
|
+
const v = resolveSource(sources[i])[property];
|
|
1181
|
+
if (v !== undefined) return v;
|
|
1182
|
+
}
|
|
1183
|
+
},
|
|
1184
|
+
has(property) {
|
|
1185
|
+
for (let i = sources.length - 1; i >= 0; i--) {
|
|
1186
|
+
if (property in resolveSource(sources[i])) return true;
|
|
1187
|
+
}
|
|
1188
|
+
return false;
|
|
1189
|
+
},
|
|
1190
|
+
keys() {
|
|
1191
|
+
const keys = [];
|
|
1192
|
+
for (let i = 0; i < sources.length; i++) keys.push(...Object.keys(resolveSource(sources[i])));
|
|
1193
|
+
return [...new Set(keys)];
|
|
1190
1194
|
}
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1195
|
+
}, propTraps);
|
|
1196
|
+
}
|
|
1197
|
+
const target = {};
|
|
1198
|
+
for (let i = 0; i < sources.length; i++) {
|
|
1199
|
+
if (sources[i]) {
|
|
1200
|
+
const descriptors = Object.getOwnPropertyDescriptors(sources[i]);
|
|
1201
|
+
Object.defineProperties(target, descriptors);
|
|
1197
1202
|
}
|
|
1198
|
-
}
|
|
1203
|
+
}
|
|
1204
|
+
return target;
|
|
1199
1205
|
}
|
|
1200
1206
|
function splitProps(props, ...keys) {
|
|
1201
1207
|
const blocked = new Set(keys.flat());
|
|
1202
1208
|
const descriptors = Object.getOwnPropertyDescriptors(props);
|
|
1209
|
+
const isProxy = ($PROXY in props);
|
|
1210
|
+
if (!isProxy) keys.push(Object.keys(descriptors).filter(k => !blocked.has(k)));
|
|
1203
1211
|
const res = keys.map(k => {
|
|
1204
1212
|
const clone = {};
|
|
1205
1213
|
for (let i = 0; i < k.length; i++) {
|
|
@@ -1215,17 +1223,19 @@ function splitProps(props, ...keys) {
|
|
|
1215
1223
|
}
|
|
1216
1224
|
return clone;
|
|
1217
1225
|
});
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1226
|
+
if (isProxy) {
|
|
1227
|
+
res.push(new Proxy({
|
|
1228
|
+
get(property) {
|
|
1229
|
+
return blocked.has(property) ? undefined : props[property];
|
|
1230
|
+
},
|
|
1231
|
+
has(property) {
|
|
1232
|
+
return blocked.has(property) ? false : property in props;
|
|
1233
|
+
},
|
|
1234
|
+
keys() {
|
|
1235
|
+
return Object.keys(props).filter(k => !blocked.has(k));
|
|
1236
|
+
}
|
|
1237
|
+
}, propTraps));
|
|
1238
|
+
}
|
|
1229
1239
|
return res;
|
|
1230
1240
|
}
|
|
1231
1241
|
function lazy(fn) {
|