mol_jsx_lib 0.0.746 → 0.0.747
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
|
@@ -3668,7 +3668,12 @@ var $;
|
|
|
3668
3668
|
var $;
|
|
3669
3669
|
(function ($) {
|
|
3670
3670
|
function $mol_range2(item = index => index, size = () => Number.POSITIVE_INFINITY) {
|
|
3671
|
-
|
|
3671
|
+
const source = typeof item === 'function' ? new $mol_range2_array() : item;
|
|
3672
|
+
if (typeof item !== 'function') {
|
|
3673
|
+
item = index => source[index];
|
|
3674
|
+
size = () => source.length;
|
|
3675
|
+
}
|
|
3676
|
+
return new Proxy(source, {
|
|
3672
3677
|
get(target, field) {
|
|
3673
3678
|
if (typeof field === 'string') {
|
|
3674
3679
|
if (field === 'length')
|
|
@@ -3681,7 +3686,7 @@ var $;
|
|
|
3681
3686
|
if (index === Math.trunc(index))
|
|
3682
3687
|
return item(index);
|
|
3683
3688
|
}
|
|
3684
|
-
return
|
|
3689
|
+
return $mol_range2_array.prototype[field];
|
|
3685
3690
|
},
|
|
3686
3691
|
set(target, field) {
|
|
3687
3692
|
return $mol_fail(new TypeError(`Lazy range is read only (trying to set field ${JSON.stringify(field)})`));
|
|
@@ -3722,13 +3727,16 @@ var $;
|
|
|
3722
3727
|
return $mol_range2(index => index < this.length ? this[index] : tail[0][index - this.length], () => this.length + tail[0].length);
|
|
3723
3728
|
}
|
|
3724
3729
|
filter(check, context) {
|
|
3725
|
-
const filtered =
|
|
3726
|
-
|
|
3727
|
-
|
|
3728
|
-
|
|
3729
|
-
|
|
3730
|
-
|
|
3731
|
-
|
|
3730
|
+
const filtered = [];
|
|
3731
|
+
let cursor = -1;
|
|
3732
|
+
return $mol_range2(index => {
|
|
3733
|
+
while (cursor < this.length && index >= filtered.length - 1) {
|
|
3734
|
+
const val = this[++cursor];
|
|
3735
|
+
if (check(val, cursor, this))
|
|
3736
|
+
filtered.push(val);
|
|
3737
|
+
}
|
|
3738
|
+
return filtered[index];
|
|
3739
|
+
}, () => cursor < this.length ? Number.POSITIVE_INFINITY : filtered.length);
|
|
3732
3740
|
}
|
|
3733
3741
|
forEach(proceed, context) {
|
|
3734
3742
|
for (let [key, value] of this.entries())
|
|
@@ -3788,7 +3796,7 @@ var $;
|
|
|
3788
3796
|
'lazy calls'() {
|
|
3789
3797
|
let calls = 0;
|
|
3790
3798
|
const list = $mol_range2(index => (++calls, index), () => 10);
|
|
3791
|
-
$
|
|
3799
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
3792
3800
|
$mol_assert_equal(list.length, 10);
|
|
3793
3801
|
$mol_assert_equal(list[-1], undefined);
|
|
3794
3802
|
$mol_assert_equal(list[0], 0);
|
|
@@ -3831,11 +3839,17 @@ var $;
|
|
|
3831
3839
|
$mol_range2(i => i, () => 5).forEach(i => log += i);
|
|
3832
3840
|
$mol_assert_equal(log, '01234');
|
|
3833
3841
|
},
|
|
3842
|
+
'reduce'() {
|
|
3843
|
+
let calls = 0;
|
|
3844
|
+
const list = $mol_range2().slice(1, 6);
|
|
3845
|
+
$mol_assert_equal(list.reduce((s, v) => s + v), 15);
|
|
3846
|
+
$mol_assert_equal(list.reduce((s, v) => s + v, 5), 20);
|
|
3847
|
+
},
|
|
3834
3848
|
'lazy concat'() {
|
|
3835
3849
|
let calls1 = 0;
|
|
3836
3850
|
let calls2 = 0;
|
|
3837
3851
|
const list = $mol_range2(index => (++calls1, index), () => 5).concat([0, 1, 2, 3, 4], $mol_range2(index => (++calls2, index), () => 5));
|
|
3838
|
-
$
|
|
3852
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
3839
3853
|
$mol_assert_equal(list.length, 15);
|
|
3840
3854
|
$mol_assert_equal(list[0], 0);
|
|
3841
3855
|
$mol_assert_equal(list[4], 4);
|
|
@@ -3847,32 +3861,26 @@ var $;
|
|
|
3847
3861
|
$mol_assert_equal(calls1, 2);
|
|
3848
3862
|
$mol_assert_equal(calls2, 2);
|
|
3849
3863
|
},
|
|
3850
|
-
'filter'() {
|
|
3864
|
+
'lazy filter'() {
|
|
3851
3865
|
let calls = 0;
|
|
3852
|
-
const list = $mol_range2(index => (++calls, index), () =>
|
|
3853
|
-
$
|
|
3866
|
+
const list = $mol_range2(index => (++calls, index), () => 15).filter(v => v % 2).slice(0, 3);
|
|
3867
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
3854
3868
|
$mol_assert_equal(list.length, 3);
|
|
3855
3869
|
$mol_assert_equal(list[0], 1);
|
|
3856
3870
|
$mol_assert_equal(list[2], 5);
|
|
3857
3871
|
$mol_assert_equal(list[3], undefined);
|
|
3858
|
-
$mol_assert_equal(calls,
|
|
3872
|
+
$mol_assert_equal(calls, 8);
|
|
3859
3873
|
},
|
|
3860
|
-
'reverse'() {
|
|
3874
|
+
'lazy reverse'() {
|
|
3861
3875
|
let calls = 0;
|
|
3862
3876
|
const list = $mol_range2(index => (++calls, index), () => 10).toReversed().slice(0, 3);
|
|
3863
|
-
$
|
|
3877
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
3864
3878
|
$mol_assert_equal(list.length, 3);
|
|
3865
3879
|
$mol_assert_equal(list[0], 9);
|
|
3866
3880
|
$mol_assert_equal(list[2], 7);
|
|
3867
3881
|
$mol_assert_equal(list[3], undefined);
|
|
3868
3882
|
$mol_assert_equal(calls, 2);
|
|
3869
3883
|
},
|
|
3870
|
-
'reduce'() {
|
|
3871
|
-
let calls = 0;
|
|
3872
|
-
const list = $mol_range2().slice(1, 6);
|
|
3873
|
-
$mol_assert_equal(list.reduce((s, v) => s + v), 15);
|
|
3874
|
-
$mol_assert_equal(list.reduce((s, v) => s + v, 5), 20);
|
|
3875
|
-
},
|
|
3876
3884
|
'lazy map'() {
|
|
3877
3885
|
let calls1 = 0;
|
|
3878
3886
|
let calls2 = 0;
|
|
@@ -3882,7 +3890,7 @@ var $;
|
|
|
3882
3890
|
$mol_assert_equal(source, self);
|
|
3883
3891
|
return index + 10;
|
|
3884
3892
|
}, () => 5);
|
|
3885
|
-
$
|
|
3893
|
+
$mol_assert_equal(true, target instanceof Array);
|
|
3886
3894
|
$mol_assert_equal(target.length, 5);
|
|
3887
3895
|
$mol_assert_equal(target[0], 10);
|
|
3888
3896
|
$mol_assert_equal(target[4], 14);
|
|
@@ -3893,7 +3901,7 @@ var $;
|
|
|
3893
3901
|
'lazy slice'() {
|
|
3894
3902
|
let calls = 0;
|
|
3895
3903
|
const list = $mol_range2(index => (++calls, index), () => 10).slice(3, 7);
|
|
3896
|
-
$
|
|
3904
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
3897
3905
|
$mol_assert_equal(list.length, 4);
|
|
3898
3906
|
$mol_assert_equal(list[0], 3);
|
|
3899
3907
|
$mol_assert_equal(list[3], 6);
|
|
@@ -3902,22 +3910,22 @@ var $;
|
|
|
3902
3910
|
},
|
|
3903
3911
|
'lazy some'() {
|
|
3904
3912
|
let calls = 0;
|
|
3905
|
-
$
|
|
3913
|
+
$mol_assert_equal(true, $mol_range2(index => (++calls, index), () => 5).some(v => v >= 2));
|
|
3906
3914
|
$mol_assert_equal(calls, 3);
|
|
3907
|
-
$
|
|
3908
|
-
$
|
|
3915
|
+
$mol_assert_equal(false, $mol_range2(i => i, () => 0).some(v => true));
|
|
3916
|
+
$mol_assert_equal(true, $mol_range2(i => i).some(v => v > 5));
|
|
3909
3917
|
},
|
|
3910
3918
|
'lazy every'() {
|
|
3911
3919
|
let calls = 0;
|
|
3912
|
-
$
|
|
3920
|
+
$mol_assert_equal(false, $mol_range2(index => (++calls, index), () => 5).every(v => v < 2));
|
|
3913
3921
|
$mol_assert_equal(calls, 3);
|
|
3914
|
-
$
|
|
3915
|
-
$
|
|
3922
|
+
$mol_assert_equal(true, $mol_range2(i => i, () => 0).every(v => false));
|
|
3923
|
+
$mol_assert_equal(false, $mol_range2(i => i).every(v => v < 5));
|
|
3916
3924
|
},
|
|
3917
3925
|
'lazyfy'() {
|
|
3918
3926
|
let calls = 0;
|
|
3919
|
-
const list =
|
|
3920
|
-
$
|
|
3927
|
+
const list = $mol_range2([0, 1, 2, 3, 4, 5]).map(i => (++calls, i + 10)).slice(2);
|
|
3928
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
3921
3929
|
$mol_assert_equal(list.length, 4);
|
|
3922
3930
|
$mol_assert_equal(calls, 0);
|
|
3923
3931
|
$mol_assert_equal(list[0], 12);
|