mol_key 0.0.740 → 0.0.742
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/node.test.js +41 -33
- package/node.test.js.map +1 -1
- package/package.json +1 -1
- package/web.test.js +41 -33
- package/web.test.js.map +1 -1
package/node.test.js
CHANGED
|
@@ -1699,7 +1699,12 @@ var $;
|
|
|
1699
1699
|
var $;
|
|
1700
1700
|
(function ($) {
|
|
1701
1701
|
function $mol_range2(item = index => index, size = () => Number.POSITIVE_INFINITY) {
|
|
1702
|
-
|
|
1702
|
+
const source = typeof item === 'function' ? new $mol_range2_array() : item;
|
|
1703
|
+
if (typeof item !== 'function') {
|
|
1704
|
+
item = index => source[index];
|
|
1705
|
+
size = () => source.length;
|
|
1706
|
+
}
|
|
1707
|
+
return new Proxy(source, {
|
|
1703
1708
|
get(target, field) {
|
|
1704
1709
|
if (typeof field === 'string') {
|
|
1705
1710
|
if (field === 'length')
|
|
@@ -1712,7 +1717,7 @@ var $;
|
|
|
1712
1717
|
if (index === Math.trunc(index))
|
|
1713
1718
|
return item(index);
|
|
1714
1719
|
}
|
|
1715
|
-
return
|
|
1720
|
+
return $mol_range2_array.prototype[field];
|
|
1716
1721
|
},
|
|
1717
1722
|
set(target, field) {
|
|
1718
1723
|
return $mol_fail(new TypeError(`Lazy range is read only (trying to set field ${JSON.stringify(field)})`));
|
|
@@ -1753,13 +1758,16 @@ var $;
|
|
|
1753
1758
|
return $mol_range2(index => index < this.length ? this[index] : tail[0][index - this.length], () => this.length + tail[0].length);
|
|
1754
1759
|
}
|
|
1755
1760
|
filter(check, context) {
|
|
1756
|
-
const filtered =
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1761
|
+
const filtered = [];
|
|
1762
|
+
let cursor = -1;
|
|
1763
|
+
return $mol_range2(index => {
|
|
1764
|
+
while (cursor < this.length && index >= filtered.length - 1) {
|
|
1765
|
+
const val = this[++cursor];
|
|
1766
|
+
if (check(val, cursor, this))
|
|
1767
|
+
filtered.push(val);
|
|
1768
|
+
}
|
|
1769
|
+
return filtered[index];
|
|
1770
|
+
}, () => cursor < this.length ? Number.POSITIVE_INFINITY : filtered.length);
|
|
1763
1771
|
}
|
|
1764
1772
|
forEach(proceed, context) {
|
|
1765
1773
|
for (let [key, value] of this.entries())
|
|
@@ -1819,7 +1827,7 @@ var $;
|
|
|
1819
1827
|
'lazy calls'() {
|
|
1820
1828
|
let calls = 0;
|
|
1821
1829
|
const list = $mol_range2(index => (++calls, index), () => 10);
|
|
1822
|
-
$
|
|
1830
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
1823
1831
|
$mol_assert_equal(list.length, 10);
|
|
1824
1832
|
$mol_assert_equal(list[-1], undefined);
|
|
1825
1833
|
$mol_assert_equal(list[0], 0);
|
|
@@ -1862,11 +1870,17 @@ var $;
|
|
|
1862
1870
|
$mol_range2(i => i, () => 5).forEach(i => log += i);
|
|
1863
1871
|
$mol_assert_equal(log, '01234');
|
|
1864
1872
|
},
|
|
1873
|
+
'reduce'() {
|
|
1874
|
+
let calls = 0;
|
|
1875
|
+
const list = $mol_range2().slice(1, 6);
|
|
1876
|
+
$mol_assert_equal(list.reduce((s, v) => s + v), 15);
|
|
1877
|
+
$mol_assert_equal(list.reduce((s, v) => s + v, 5), 20);
|
|
1878
|
+
},
|
|
1865
1879
|
'lazy concat'() {
|
|
1866
1880
|
let calls1 = 0;
|
|
1867
1881
|
let calls2 = 0;
|
|
1868
1882
|
const list = $mol_range2(index => (++calls1, index), () => 5).concat([0, 1, 2, 3, 4], $mol_range2(index => (++calls2, index), () => 5));
|
|
1869
|
-
$
|
|
1883
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
1870
1884
|
$mol_assert_equal(list.length, 15);
|
|
1871
1885
|
$mol_assert_equal(list[0], 0);
|
|
1872
1886
|
$mol_assert_equal(list[4], 4);
|
|
@@ -1878,32 +1892,26 @@ var $;
|
|
|
1878
1892
|
$mol_assert_equal(calls1, 2);
|
|
1879
1893
|
$mol_assert_equal(calls2, 2);
|
|
1880
1894
|
},
|
|
1881
|
-
'filter'() {
|
|
1895
|
+
'lazy filter'() {
|
|
1882
1896
|
let calls = 0;
|
|
1883
|
-
const list = $mol_range2(index => (++calls, index), () =>
|
|
1884
|
-
$
|
|
1897
|
+
const list = $mol_range2(index => (++calls, index), () => 15).filter(v => v % 2).slice(0, 3);
|
|
1898
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
1885
1899
|
$mol_assert_equal(list.length, 3);
|
|
1886
1900
|
$mol_assert_equal(list[0], 1);
|
|
1887
1901
|
$mol_assert_equal(list[2], 5);
|
|
1888
1902
|
$mol_assert_equal(list[3], undefined);
|
|
1889
|
-
$mol_assert_equal(calls,
|
|
1903
|
+
$mol_assert_equal(calls, 8);
|
|
1890
1904
|
},
|
|
1891
|
-
'reverse'() {
|
|
1905
|
+
'lazy reverse'() {
|
|
1892
1906
|
let calls = 0;
|
|
1893
1907
|
const list = $mol_range2(index => (++calls, index), () => 10).toReversed().slice(0, 3);
|
|
1894
|
-
$
|
|
1908
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
1895
1909
|
$mol_assert_equal(list.length, 3);
|
|
1896
1910
|
$mol_assert_equal(list[0], 9);
|
|
1897
1911
|
$mol_assert_equal(list[2], 7);
|
|
1898
1912
|
$mol_assert_equal(list[3], undefined);
|
|
1899
1913
|
$mol_assert_equal(calls, 2);
|
|
1900
1914
|
},
|
|
1901
|
-
'reduce'() {
|
|
1902
|
-
let calls = 0;
|
|
1903
|
-
const list = $mol_range2().slice(1, 6);
|
|
1904
|
-
$mol_assert_equal(list.reduce((s, v) => s + v), 15);
|
|
1905
|
-
$mol_assert_equal(list.reduce((s, v) => s + v, 5), 20);
|
|
1906
|
-
},
|
|
1907
1915
|
'lazy map'() {
|
|
1908
1916
|
let calls1 = 0;
|
|
1909
1917
|
let calls2 = 0;
|
|
@@ -1913,7 +1921,7 @@ var $;
|
|
|
1913
1921
|
$mol_assert_equal(source, self);
|
|
1914
1922
|
return index + 10;
|
|
1915
1923
|
}, () => 5);
|
|
1916
|
-
$
|
|
1924
|
+
$mol_assert_equal(true, target instanceof Array);
|
|
1917
1925
|
$mol_assert_equal(target.length, 5);
|
|
1918
1926
|
$mol_assert_equal(target[0], 10);
|
|
1919
1927
|
$mol_assert_equal(target[4], 14);
|
|
@@ -1924,7 +1932,7 @@ var $;
|
|
|
1924
1932
|
'lazy slice'() {
|
|
1925
1933
|
let calls = 0;
|
|
1926
1934
|
const list = $mol_range2(index => (++calls, index), () => 10).slice(3, 7);
|
|
1927
|
-
$
|
|
1935
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
1928
1936
|
$mol_assert_equal(list.length, 4);
|
|
1929
1937
|
$mol_assert_equal(list[0], 3);
|
|
1930
1938
|
$mol_assert_equal(list[3], 6);
|
|
@@ -1933,22 +1941,22 @@ var $;
|
|
|
1933
1941
|
},
|
|
1934
1942
|
'lazy some'() {
|
|
1935
1943
|
let calls = 0;
|
|
1936
|
-
$
|
|
1944
|
+
$mol_assert_equal(true, $mol_range2(index => (++calls, index), () => 5).some(v => v >= 2));
|
|
1937
1945
|
$mol_assert_equal(calls, 3);
|
|
1938
|
-
$
|
|
1939
|
-
$
|
|
1946
|
+
$mol_assert_equal(false, $mol_range2(i => i, () => 0).some(v => true));
|
|
1947
|
+
$mol_assert_equal(true, $mol_range2(i => i).some(v => v > 5));
|
|
1940
1948
|
},
|
|
1941
1949
|
'lazy every'() {
|
|
1942
1950
|
let calls = 0;
|
|
1943
|
-
$
|
|
1951
|
+
$mol_assert_equal(false, $mol_range2(index => (++calls, index), () => 5).every(v => v < 2));
|
|
1944
1952
|
$mol_assert_equal(calls, 3);
|
|
1945
|
-
$
|
|
1946
|
-
$
|
|
1953
|
+
$mol_assert_equal(true, $mol_range2(i => i, () => 0).every(v => false));
|
|
1954
|
+
$mol_assert_equal(false, $mol_range2(i => i).every(v => v < 5));
|
|
1947
1955
|
},
|
|
1948
1956
|
'lazyfy'() {
|
|
1949
1957
|
let calls = 0;
|
|
1950
|
-
const list =
|
|
1951
|
-
$
|
|
1958
|
+
const list = $mol_range2([0, 1, 2, 3, 4, 5]).map(i => (++calls, i + 10)).slice(2);
|
|
1959
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
1952
1960
|
$mol_assert_equal(list.length, 4);
|
|
1953
1961
|
$mol_assert_equal(calls, 0);
|
|
1954
1962
|
$mol_assert_equal(list[0], 12);
|