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/package.json
CHANGED
package/web.test.js
CHANGED
|
@@ -394,7 +394,12 @@ var $;
|
|
|
394
394
|
var $;
|
|
395
395
|
(function ($) {
|
|
396
396
|
function $mol_range2(item = index => index, size = () => Number.POSITIVE_INFINITY) {
|
|
397
|
-
|
|
397
|
+
const source = typeof item === 'function' ? new $mol_range2_array() : item;
|
|
398
|
+
if (typeof item !== 'function') {
|
|
399
|
+
item = index => source[index];
|
|
400
|
+
size = () => source.length;
|
|
401
|
+
}
|
|
402
|
+
return new Proxy(source, {
|
|
398
403
|
get(target, field) {
|
|
399
404
|
if (typeof field === 'string') {
|
|
400
405
|
if (field === 'length')
|
|
@@ -407,7 +412,7 @@ var $;
|
|
|
407
412
|
if (index === Math.trunc(index))
|
|
408
413
|
return item(index);
|
|
409
414
|
}
|
|
410
|
-
return
|
|
415
|
+
return $mol_range2_array.prototype[field];
|
|
411
416
|
},
|
|
412
417
|
set(target, field) {
|
|
413
418
|
return $mol_fail(new TypeError(`Lazy range is read only (trying to set field ${JSON.stringify(field)})`));
|
|
@@ -448,13 +453,16 @@ var $;
|
|
|
448
453
|
return $mol_range2(index => index < this.length ? this[index] : tail[0][index - this.length], () => this.length + tail[0].length);
|
|
449
454
|
}
|
|
450
455
|
filter(check, context) {
|
|
451
|
-
const filtered =
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
456
|
+
const filtered = [];
|
|
457
|
+
let cursor = -1;
|
|
458
|
+
return $mol_range2(index => {
|
|
459
|
+
while (cursor < this.length && index >= filtered.length - 1) {
|
|
460
|
+
const val = this[++cursor];
|
|
461
|
+
if (check(val, cursor, this))
|
|
462
|
+
filtered.push(val);
|
|
463
|
+
}
|
|
464
|
+
return filtered[index];
|
|
465
|
+
}, () => cursor < this.length ? Number.POSITIVE_INFINITY : filtered.length);
|
|
458
466
|
}
|
|
459
467
|
forEach(proceed, context) {
|
|
460
468
|
for (let [key, value] of this.entries())
|
|
@@ -514,7 +522,7 @@ var $;
|
|
|
514
522
|
'lazy calls'() {
|
|
515
523
|
let calls = 0;
|
|
516
524
|
const list = $mol_range2(index => (++calls, index), () => 10);
|
|
517
|
-
$
|
|
525
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
518
526
|
$mol_assert_equal(list.length, 10);
|
|
519
527
|
$mol_assert_equal(list[-1], undefined);
|
|
520
528
|
$mol_assert_equal(list[0], 0);
|
|
@@ -557,11 +565,17 @@ var $;
|
|
|
557
565
|
$mol_range2(i => i, () => 5).forEach(i => log += i);
|
|
558
566
|
$mol_assert_equal(log, '01234');
|
|
559
567
|
},
|
|
568
|
+
'reduce'() {
|
|
569
|
+
let calls = 0;
|
|
570
|
+
const list = $mol_range2().slice(1, 6);
|
|
571
|
+
$mol_assert_equal(list.reduce((s, v) => s + v), 15);
|
|
572
|
+
$mol_assert_equal(list.reduce((s, v) => s + v, 5), 20);
|
|
573
|
+
},
|
|
560
574
|
'lazy concat'() {
|
|
561
575
|
let calls1 = 0;
|
|
562
576
|
let calls2 = 0;
|
|
563
577
|
const list = $mol_range2(index => (++calls1, index), () => 5).concat([0, 1, 2, 3, 4], $mol_range2(index => (++calls2, index), () => 5));
|
|
564
|
-
$
|
|
578
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
565
579
|
$mol_assert_equal(list.length, 15);
|
|
566
580
|
$mol_assert_equal(list[0], 0);
|
|
567
581
|
$mol_assert_equal(list[4], 4);
|
|
@@ -573,32 +587,26 @@ var $;
|
|
|
573
587
|
$mol_assert_equal(calls1, 2);
|
|
574
588
|
$mol_assert_equal(calls2, 2);
|
|
575
589
|
},
|
|
576
|
-
'filter'() {
|
|
590
|
+
'lazy filter'() {
|
|
577
591
|
let calls = 0;
|
|
578
|
-
const list = $mol_range2(index => (++calls, index), () =>
|
|
579
|
-
$
|
|
592
|
+
const list = $mol_range2(index => (++calls, index), () => 15).filter(v => v % 2).slice(0, 3);
|
|
593
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
580
594
|
$mol_assert_equal(list.length, 3);
|
|
581
595
|
$mol_assert_equal(list[0], 1);
|
|
582
596
|
$mol_assert_equal(list[2], 5);
|
|
583
597
|
$mol_assert_equal(list[3], undefined);
|
|
584
|
-
$mol_assert_equal(calls,
|
|
598
|
+
$mol_assert_equal(calls, 8);
|
|
585
599
|
},
|
|
586
|
-
'reverse'() {
|
|
600
|
+
'lazy reverse'() {
|
|
587
601
|
let calls = 0;
|
|
588
602
|
const list = $mol_range2(index => (++calls, index), () => 10).toReversed().slice(0, 3);
|
|
589
|
-
$
|
|
603
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
590
604
|
$mol_assert_equal(list.length, 3);
|
|
591
605
|
$mol_assert_equal(list[0], 9);
|
|
592
606
|
$mol_assert_equal(list[2], 7);
|
|
593
607
|
$mol_assert_equal(list[3], undefined);
|
|
594
608
|
$mol_assert_equal(calls, 2);
|
|
595
609
|
},
|
|
596
|
-
'reduce'() {
|
|
597
|
-
let calls = 0;
|
|
598
|
-
const list = $mol_range2().slice(1, 6);
|
|
599
|
-
$mol_assert_equal(list.reduce((s, v) => s + v), 15);
|
|
600
|
-
$mol_assert_equal(list.reduce((s, v) => s + v, 5), 20);
|
|
601
|
-
},
|
|
602
610
|
'lazy map'() {
|
|
603
611
|
let calls1 = 0;
|
|
604
612
|
let calls2 = 0;
|
|
@@ -608,7 +616,7 @@ var $;
|
|
|
608
616
|
$mol_assert_equal(source, self);
|
|
609
617
|
return index + 10;
|
|
610
618
|
}, () => 5);
|
|
611
|
-
$
|
|
619
|
+
$mol_assert_equal(true, target instanceof Array);
|
|
612
620
|
$mol_assert_equal(target.length, 5);
|
|
613
621
|
$mol_assert_equal(target[0], 10);
|
|
614
622
|
$mol_assert_equal(target[4], 14);
|
|
@@ -619,7 +627,7 @@ var $;
|
|
|
619
627
|
'lazy slice'() {
|
|
620
628
|
let calls = 0;
|
|
621
629
|
const list = $mol_range2(index => (++calls, index), () => 10).slice(3, 7);
|
|
622
|
-
$
|
|
630
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
623
631
|
$mol_assert_equal(list.length, 4);
|
|
624
632
|
$mol_assert_equal(list[0], 3);
|
|
625
633
|
$mol_assert_equal(list[3], 6);
|
|
@@ -628,22 +636,22 @@ var $;
|
|
|
628
636
|
},
|
|
629
637
|
'lazy some'() {
|
|
630
638
|
let calls = 0;
|
|
631
|
-
$
|
|
639
|
+
$mol_assert_equal(true, $mol_range2(index => (++calls, index), () => 5).some(v => v >= 2));
|
|
632
640
|
$mol_assert_equal(calls, 3);
|
|
633
|
-
$
|
|
634
|
-
$
|
|
641
|
+
$mol_assert_equal(false, $mol_range2(i => i, () => 0).some(v => true));
|
|
642
|
+
$mol_assert_equal(true, $mol_range2(i => i).some(v => v > 5));
|
|
635
643
|
},
|
|
636
644
|
'lazy every'() {
|
|
637
645
|
let calls = 0;
|
|
638
|
-
$
|
|
646
|
+
$mol_assert_equal(false, $mol_range2(index => (++calls, index), () => 5).every(v => v < 2));
|
|
639
647
|
$mol_assert_equal(calls, 3);
|
|
640
|
-
$
|
|
641
|
-
$
|
|
648
|
+
$mol_assert_equal(true, $mol_range2(i => i, () => 0).every(v => false));
|
|
649
|
+
$mol_assert_equal(false, $mol_range2(i => i).every(v => v < 5));
|
|
642
650
|
},
|
|
643
651
|
'lazyfy'() {
|
|
644
652
|
let calls = 0;
|
|
645
|
-
const list =
|
|
646
|
-
$
|
|
653
|
+
const list = $mol_range2([0, 1, 2, 3, 4, 5]).map(i => (++calls, i + 10)).slice(2);
|
|
654
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
647
655
|
$mol_assert_equal(list.length, 4);
|
|
648
656
|
$mol_assert_equal(calls, 0);
|
|
649
657
|
$mol_assert_equal(list[0], 12);
|