@b9g/crank 0.5.2 → 0.5.3
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/crank.cjs +44 -8
- package/crank.cjs.map +1 -1
- package/crank.js +44 -8
- package/crank.js.map +1 -1
- package/package.json +1 -1
- package/umd.js +44 -8
- package/umd.js.map +1 -1
package/package.json
CHANGED
package/umd.js
CHANGED
|
@@ -1022,6 +1022,11 @@
|
|
|
1022
1022
|
*/
|
|
1023
1023
|
cleanup(callback) {
|
|
1024
1024
|
const ctx = this[_ContextImpl];
|
|
1025
|
+
if (ctx.f & IsUnmounted) {
|
|
1026
|
+
const value = ctx.renderer.read(getValue(ctx.ret));
|
|
1027
|
+
callback(value);
|
|
1028
|
+
return;
|
|
1029
|
+
}
|
|
1025
1030
|
let callbacks = cleanupMap.get(ctx);
|
|
1026
1031
|
if (!callbacks) {
|
|
1027
1032
|
callbacks = new Set();
|
|
@@ -1432,6 +1437,9 @@
|
|
|
1432
1437
|
}
|
|
1433
1438
|
catch (err) {
|
|
1434
1439
|
if (!(ctx.f & IsUpdating)) {
|
|
1440
|
+
if (!ctx.parent) {
|
|
1441
|
+
throw err;
|
|
1442
|
+
}
|
|
1435
1443
|
return propagateError(ctx.parent, err);
|
|
1436
1444
|
}
|
|
1437
1445
|
throw err;
|
|
@@ -1455,6 +1463,9 @@
|
|
|
1455
1463
|
}
|
|
1456
1464
|
catch (err) {
|
|
1457
1465
|
if (!(ctx.f & IsUpdating)) {
|
|
1466
|
+
if (!ctx.parent) {
|
|
1467
|
+
throw err;
|
|
1468
|
+
}
|
|
1458
1469
|
return propagateError(ctx.parent, err);
|
|
1459
1470
|
}
|
|
1460
1471
|
throw err;
|
|
@@ -1697,7 +1708,16 @@
|
|
|
1697
1708
|
// children. Sync generator components only resume when their children
|
|
1698
1709
|
// have fulfilled so the element’s inflight child values will never be
|
|
1699
1710
|
// defined.
|
|
1700
|
-
oldValue = ctx.ret.inflightValue.then((value) => ctx.renderer.read(value)
|
|
1711
|
+
oldValue = ctx.ret.inflightValue.then((value) => ctx.renderer.read(value));
|
|
1712
|
+
oldValue.catch((err) => {
|
|
1713
|
+
if (ctx.f & IsUpdating) {
|
|
1714
|
+
return;
|
|
1715
|
+
}
|
|
1716
|
+
if (!ctx.parent) {
|
|
1717
|
+
throw err;
|
|
1718
|
+
}
|
|
1719
|
+
return propagateError(ctx.parent, err);
|
|
1720
|
+
});
|
|
1701
1721
|
}
|
|
1702
1722
|
else {
|
|
1703
1723
|
oldValue = ctx.renderer.read(getValue(ctx.ret));
|
|
@@ -1775,7 +1795,10 @@
|
|
|
1775
1795
|
returnComponent(ctx);
|
|
1776
1796
|
}
|
|
1777
1797
|
}, (err) => {
|
|
1778
|
-
|
|
1798
|
+
if (!ctx.parent) {
|
|
1799
|
+
throw err;
|
|
1800
|
+
}
|
|
1801
|
+
return propagateError(ctx.parent, err);
|
|
1779
1802
|
});
|
|
1780
1803
|
}
|
|
1781
1804
|
else {
|
|
@@ -1798,7 +1821,10 @@
|
|
|
1798
1821
|
returnComponent(ctx);
|
|
1799
1822
|
}
|
|
1800
1823
|
}, (err) => {
|
|
1801
|
-
|
|
1824
|
+
if (!ctx.parent) {
|
|
1825
|
+
throw err;
|
|
1826
|
+
}
|
|
1827
|
+
return propagateError(ctx.parent, err);
|
|
1802
1828
|
});
|
|
1803
1829
|
}
|
|
1804
1830
|
else {
|
|
@@ -1816,7 +1842,12 @@
|
|
|
1816
1842
|
ctx.f |= IsSyncExecuting;
|
|
1817
1843
|
const iteration = ctx.iterator.return();
|
|
1818
1844
|
if (isPromiseLike(iteration)) {
|
|
1819
|
-
iteration.catch((err) =>
|
|
1845
|
+
iteration.catch((err) => {
|
|
1846
|
+
if (!ctx.parent) {
|
|
1847
|
+
throw err;
|
|
1848
|
+
}
|
|
1849
|
+
return propagateError(ctx.parent, err);
|
|
1850
|
+
});
|
|
1820
1851
|
}
|
|
1821
1852
|
}
|
|
1822
1853
|
finally {
|
|
@@ -1929,18 +1960,23 @@
|
|
|
1929
1960
|
return updateComponentChildren(ctx, iteration.value);
|
|
1930
1961
|
}
|
|
1931
1962
|
function propagateError(ctx, err) {
|
|
1932
|
-
if (ctx === undefined) {
|
|
1933
|
-
throw err;
|
|
1934
|
-
}
|
|
1935
1963
|
let result;
|
|
1936
1964
|
try {
|
|
1937
1965
|
result = handleChildError(ctx, err);
|
|
1938
1966
|
}
|
|
1939
1967
|
catch (err) {
|
|
1968
|
+
if (!ctx.parent) {
|
|
1969
|
+
throw err;
|
|
1970
|
+
}
|
|
1940
1971
|
return propagateError(ctx.parent, err);
|
|
1941
1972
|
}
|
|
1942
1973
|
if (isPromiseLike(result)) {
|
|
1943
|
-
return result.catch((err) =>
|
|
1974
|
+
return result.catch((err) => {
|
|
1975
|
+
if (!ctx.parent) {
|
|
1976
|
+
throw err;
|
|
1977
|
+
}
|
|
1978
|
+
return propagateError(ctx.parent, err);
|
|
1979
|
+
});
|
|
1944
1980
|
}
|
|
1945
1981
|
return result;
|
|
1946
1982
|
}
|