mol_wire_lib 1.0.878 → 1.0.880
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
|
@@ -2920,7 +2920,12 @@ var $;
|
|
|
2920
2920
|
var $;
|
|
2921
2921
|
(function ($) {
|
|
2922
2922
|
function $mol_range2(item = index => index, size = () => Number.POSITIVE_INFINITY) {
|
|
2923
|
-
|
|
2923
|
+
const source = typeof item === 'function' ? new $mol_range2_array() : item;
|
|
2924
|
+
if (typeof item !== 'function') {
|
|
2925
|
+
item = index => source[index];
|
|
2926
|
+
size = () => source.length;
|
|
2927
|
+
}
|
|
2928
|
+
return new Proxy(source, {
|
|
2924
2929
|
get(target, field) {
|
|
2925
2930
|
if (typeof field === 'string') {
|
|
2926
2931
|
if (field === 'length')
|
|
@@ -2933,7 +2938,7 @@ var $;
|
|
|
2933
2938
|
if (index === Math.trunc(index))
|
|
2934
2939
|
return item(index);
|
|
2935
2940
|
}
|
|
2936
|
-
return
|
|
2941
|
+
return $mol_range2_array.prototype[field];
|
|
2937
2942
|
},
|
|
2938
2943
|
set(target, field) {
|
|
2939
2944
|
return $mol_fail(new TypeError(`Lazy range is read only (trying to set field ${JSON.stringify(field)})`));
|
|
@@ -2974,13 +2979,16 @@ var $;
|
|
|
2974
2979
|
return $mol_range2(index => index < this.length ? this[index] : tail[0][index - this.length], () => this.length + tail[0].length);
|
|
2975
2980
|
}
|
|
2976
2981
|
filter(check, context) {
|
|
2977
|
-
const filtered =
|
|
2978
|
-
|
|
2979
|
-
|
|
2980
|
-
|
|
2981
|
-
|
|
2982
|
-
|
|
2983
|
-
|
|
2982
|
+
const filtered = [];
|
|
2983
|
+
let cursor = -1;
|
|
2984
|
+
return $mol_range2(index => {
|
|
2985
|
+
while (cursor < this.length && index >= filtered.length - 1) {
|
|
2986
|
+
const val = this[++cursor];
|
|
2987
|
+
if (check(val, cursor, this))
|
|
2988
|
+
filtered.push(val);
|
|
2989
|
+
}
|
|
2990
|
+
return filtered[index];
|
|
2991
|
+
}, () => cursor < this.length ? Number.POSITIVE_INFINITY : filtered.length);
|
|
2984
2992
|
}
|
|
2985
2993
|
forEach(proceed, context) {
|
|
2986
2994
|
for (let [key, value] of this.entries())
|
|
@@ -3040,7 +3048,7 @@ var $;
|
|
|
3040
3048
|
'lazy calls'() {
|
|
3041
3049
|
let calls = 0;
|
|
3042
3050
|
const list = $mol_range2(index => (++calls, index), () => 10);
|
|
3043
|
-
$
|
|
3051
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
3044
3052
|
$mol_assert_equal(list.length, 10);
|
|
3045
3053
|
$mol_assert_equal(list[-1], undefined);
|
|
3046
3054
|
$mol_assert_equal(list[0], 0);
|
|
@@ -3083,11 +3091,17 @@ var $;
|
|
|
3083
3091
|
$mol_range2(i => i, () => 5).forEach(i => log += i);
|
|
3084
3092
|
$mol_assert_equal(log, '01234');
|
|
3085
3093
|
},
|
|
3094
|
+
'reduce'() {
|
|
3095
|
+
let calls = 0;
|
|
3096
|
+
const list = $mol_range2().slice(1, 6);
|
|
3097
|
+
$mol_assert_equal(list.reduce((s, v) => s + v), 15);
|
|
3098
|
+
$mol_assert_equal(list.reduce((s, v) => s + v, 5), 20);
|
|
3099
|
+
},
|
|
3086
3100
|
'lazy concat'() {
|
|
3087
3101
|
let calls1 = 0;
|
|
3088
3102
|
let calls2 = 0;
|
|
3089
3103
|
const list = $mol_range2(index => (++calls1, index), () => 5).concat([0, 1, 2, 3, 4], $mol_range2(index => (++calls2, index), () => 5));
|
|
3090
|
-
$
|
|
3104
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
3091
3105
|
$mol_assert_equal(list.length, 15);
|
|
3092
3106
|
$mol_assert_equal(list[0], 0);
|
|
3093
3107
|
$mol_assert_equal(list[4], 4);
|
|
@@ -3099,32 +3113,26 @@ var $;
|
|
|
3099
3113
|
$mol_assert_equal(calls1, 2);
|
|
3100
3114
|
$mol_assert_equal(calls2, 2);
|
|
3101
3115
|
},
|
|
3102
|
-
'filter'() {
|
|
3116
|
+
'lazy filter'() {
|
|
3103
3117
|
let calls = 0;
|
|
3104
|
-
const list = $mol_range2(index => (++calls, index), () =>
|
|
3105
|
-
$
|
|
3118
|
+
const list = $mol_range2(index => (++calls, index), () => 15).filter(v => v % 2).slice(0, 3);
|
|
3119
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
3106
3120
|
$mol_assert_equal(list.length, 3);
|
|
3107
3121
|
$mol_assert_equal(list[0], 1);
|
|
3108
3122
|
$mol_assert_equal(list[2], 5);
|
|
3109
3123
|
$mol_assert_equal(list[3], undefined);
|
|
3110
|
-
$mol_assert_equal(calls,
|
|
3124
|
+
$mol_assert_equal(calls, 8);
|
|
3111
3125
|
},
|
|
3112
|
-
'reverse'() {
|
|
3126
|
+
'lazy reverse'() {
|
|
3113
3127
|
let calls = 0;
|
|
3114
3128
|
const list = $mol_range2(index => (++calls, index), () => 10).toReversed().slice(0, 3);
|
|
3115
|
-
$
|
|
3129
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
3116
3130
|
$mol_assert_equal(list.length, 3);
|
|
3117
3131
|
$mol_assert_equal(list[0], 9);
|
|
3118
3132
|
$mol_assert_equal(list[2], 7);
|
|
3119
3133
|
$mol_assert_equal(list[3], undefined);
|
|
3120
3134
|
$mol_assert_equal(calls, 2);
|
|
3121
3135
|
},
|
|
3122
|
-
'reduce'() {
|
|
3123
|
-
let calls = 0;
|
|
3124
|
-
const list = $mol_range2().slice(1, 6);
|
|
3125
|
-
$mol_assert_equal(list.reduce((s, v) => s + v), 15);
|
|
3126
|
-
$mol_assert_equal(list.reduce((s, v) => s + v, 5), 20);
|
|
3127
|
-
},
|
|
3128
3136
|
'lazy map'() {
|
|
3129
3137
|
let calls1 = 0;
|
|
3130
3138
|
let calls2 = 0;
|
|
@@ -3134,7 +3142,7 @@ var $;
|
|
|
3134
3142
|
$mol_assert_equal(source, self);
|
|
3135
3143
|
return index + 10;
|
|
3136
3144
|
}, () => 5);
|
|
3137
|
-
$
|
|
3145
|
+
$mol_assert_equal(true, target instanceof Array);
|
|
3138
3146
|
$mol_assert_equal(target.length, 5);
|
|
3139
3147
|
$mol_assert_equal(target[0], 10);
|
|
3140
3148
|
$mol_assert_equal(target[4], 14);
|
|
@@ -3145,7 +3153,7 @@ var $;
|
|
|
3145
3153
|
'lazy slice'() {
|
|
3146
3154
|
let calls = 0;
|
|
3147
3155
|
const list = $mol_range2(index => (++calls, index), () => 10).slice(3, 7);
|
|
3148
|
-
$
|
|
3156
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
3149
3157
|
$mol_assert_equal(list.length, 4);
|
|
3150
3158
|
$mol_assert_equal(list[0], 3);
|
|
3151
3159
|
$mol_assert_equal(list[3], 6);
|
|
@@ -3154,22 +3162,22 @@ var $;
|
|
|
3154
3162
|
},
|
|
3155
3163
|
'lazy some'() {
|
|
3156
3164
|
let calls = 0;
|
|
3157
|
-
$
|
|
3165
|
+
$mol_assert_equal(true, $mol_range2(index => (++calls, index), () => 5).some(v => v >= 2));
|
|
3158
3166
|
$mol_assert_equal(calls, 3);
|
|
3159
|
-
$
|
|
3160
|
-
$
|
|
3167
|
+
$mol_assert_equal(false, $mol_range2(i => i, () => 0).some(v => true));
|
|
3168
|
+
$mol_assert_equal(true, $mol_range2(i => i).some(v => v > 5));
|
|
3161
3169
|
},
|
|
3162
3170
|
'lazy every'() {
|
|
3163
3171
|
let calls = 0;
|
|
3164
|
-
$
|
|
3172
|
+
$mol_assert_equal(false, $mol_range2(index => (++calls, index), () => 5).every(v => v < 2));
|
|
3165
3173
|
$mol_assert_equal(calls, 3);
|
|
3166
|
-
$
|
|
3167
|
-
$
|
|
3174
|
+
$mol_assert_equal(true, $mol_range2(i => i, () => 0).every(v => false));
|
|
3175
|
+
$mol_assert_equal(false, $mol_range2(i => i).every(v => v < 5));
|
|
3168
3176
|
},
|
|
3169
3177
|
'lazyfy'() {
|
|
3170
3178
|
let calls = 0;
|
|
3171
|
-
const list =
|
|
3172
|
-
$
|
|
3179
|
+
const list = $mol_range2([0, 1, 2, 3, 4, 5]).map(i => (++calls, i + 10)).slice(2);
|
|
3180
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
3173
3181
|
$mol_assert_equal(list.length, 4);
|
|
3174
3182
|
$mol_assert_equal(calls, 0);
|
|
3175
3183
|
$mol_assert_equal(list[0], 12);
|