mol_wire_dom 0.0.863 → 0.0.865

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 CHANGED
@@ -2462,7 +2462,12 @@ var $;
2462
2462
  var $;
2463
2463
  (function ($) {
2464
2464
  function $mol_range2(item = index => index, size = () => Number.POSITIVE_INFINITY) {
2465
- return new Proxy(new $mol_range2_array(), {
2465
+ const source = typeof item === 'function' ? new $mol_range2_array() : item;
2466
+ if (typeof item !== 'function') {
2467
+ item = index => source[index];
2468
+ size = () => source.length;
2469
+ }
2470
+ return new Proxy(source, {
2466
2471
  get(target, field) {
2467
2472
  if (typeof field === 'string') {
2468
2473
  if (field === 'length')
@@ -2475,7 +2480,7 @@ var $;
2475
2480
  if (index === Math.trunc(index))
2476
2481
  return item(index);
2477
2482
  }
2478
- return target[field];
2483
+ return $mol_range2_array.prototype[field];
2479
2484
  },
2480
2485
  set(target, field) {
2481
2486
  return $mol_fail(new TypeError(`Lazy range is read only (trying to set field ${JSON.stringify(field)})`));
@@ -2516,13 +2521,16 @@ var $;
2516
2521
  return $mol_range2(index => index < this.length ? this[index] : tail[0][index - this.length], () => this.length + tail[0].length);
2517
2522
  }
2518
2523
  filter(check, context) {
2519
- const filtered = new $mol_range2_array();
2520
- for (let index = 0; index < this.length; ++index) {
2521
- const item = this[index];
2522
- if (check.call(context, item, index, this))
2523
- filtered.push(item);
2524
- }
2525
- return filtered;
2524
+ const filtered = [];
2525
+ let cursor = -1;
2526
+ return $mol_range2(index => {
2527
+ while (cursor < this.length && index >= filtered.length - 1) {
2528
+ const val = this[++cursor];
2529
+ if (check(val, cursor, this))
2530
+ filtered.push(val);
2531
+ }
2532
+ return filtered[index];
2533
+ }, () => cursor < this.length ? Number.POSITIVE_INFINITY : filtered.length);
2526
2534
  }
2527
2535
  forEach(proceed, context) {
2528
2536
  for (let [key, value] of this.entries())
@@ -2582,7 +2590,7 @@ var $;
2582
2590
  'lazy calls'() {
2583
2591
  let calls = 0;
2584
2592
  const list = $mol_range2(index => (++calls, index), () => 10);
2585
- $mol_assert_ok(list instanceof Array);
2593
+ $mol_assert_equal(true, list instanceof Array);
2586
2594
  $mol_assert_equal(list.length, 10);
2587
2595
  $mol_assert_equal(list[-1], undefined);
2588
2596
  $mol_assert_equal(list[0], 0);
@@ -2625,11 +2633,17 @@ var $;
2625
2633
  $mol_range2(i => i, () => 5).forEach(i => log += i);
2626
2634
  $mol_assert_equal(log, '01234');
2627
2635
  },
2636
+ 'reduce'() {
2637
+ let calls = 0;
2638
+ const list = $mol_range2().slice(1, 6);
2639
+ $mol_assert_equal(list.reduce((s, v) => s + v), 15);
2640
+ $mol_assert_equal(list.reduce((s, v) => s + v, 5), 20);
2641
+ },
2628
2642
  'lazy concat'() {
2629
2643
  let calls1 = 0;
2630
2644
  let calls2 = 0;
2631
2645
  const list = $mol_range2(index => (++calls1, index), () => 5).concat([0, 1, 2, 3, 4], $mol_range2(index => (++calls2, index), () => 5));
2632
- $mol_assert_ok(list instanceof Array);
2646
+ $mol_assert_equal(true, list instanceof Array);
2633
2647
  $mol_assert_equal(list.length, 15);
2634
2648
  $mol_assert_equal(list[0], 0);
2635
2649
  $mol_assert_equal(list[4], 4);
@@ -2641,32 +2655,26 @@ var $;
2641
2655
  $mol_assert_equal(calls1, 2);
2642
2656
  $mol_assert_equal(calls2, 2);
2643
2657
  },
2644
- 'filter'() {
2658
+ 'lazy filter'() {
2645
2659
  let calls = 0;
2646
- const list = $mol_range2(index => (++calls, index), () => 10).filter(v => v % 2).slice(0, 3);
2647
- $mol_assert_ok(list instanceof Array);
2660
+ const list = $mol_range2(index => (++calls, index), () => 15).filter(v => v % 2).slice(0, 3);
2661
+ $mol_assert_equal(true, list instanceof Array);
2648
2662
  $mol_assert_equal(list.length, 3);
2649
2663
  $mol_assert_equal(list[0], 1);
2650
2664
  $mol_assert_equal(list[2], 5);
2651
2665
  $mol_assert_equal(list[3], undefined);
2652
- $mol_assert_equal(calls, 10);
2666
+ $mol_assert_equal(calls, 8);
2653
2667
  },
2654
- 'reverse'() {
2668
+ 'lazy reverse'() {
2655
2669
  let calls = 0;
2656
2670
  const list = $mol_range2(index => (++calls, index), () => 10).toReversed().slice(0, 3);
2657
- $mol_assert_ok(list instanceof Array);
2671
+ $mol_assert_equal(true, list instanceof Array);
2658
2672
  $mol_assert_equal(list.length, 3);
2659
2673
  $mol_assert_equal(list[0], 9);
2660
2674
  $mol_assert_equal(list[2], 7);
2661
2675
  $mol_assert_equal(list[3], undefined);
2662
2676
  $mol_assert_equal(calls, 2);
2663
2677
  },
2664
- 'reduce'() {
2665
- let calls = 0;
2666
- const list = $mol_range2().slice(1, 6);
2667
- $mol_assert_equal(list.reduce((s, v) => s + v), 15);
2668
- $mol_assert_equal(list.reduce((s, v) => s + v, 5), 20);
2669
- },
2670
2678
  'lazy map'() {
2671
2679
  let calls1 = 0;
2672
2680
  let calls2 = 0;
@@ -2676,7 +2684,7 @@ var $;
2676
2684
  $mol_assert_equal(source, self);
2677
2685
  return index + 10;
2678
2686
  }, () => 5);
2679
- $mol_assert_ok(target instanceof Array);
2687
+ $mol_assert_equal(true, target instanceof Array);
2680
2688
  $mol_assert_equal(target.length, 5);
2681
2689
  $mol_assert_equal(target[0], 10);
2682
2690
  $mol_assert_equal(target[4], 14);
@@ -2687,7 +2695,7 @@ var $;
2687
2695
  'lazy slice'() {
2688
2696
  let calls = 0;
2689
2697
  const list = $mol_range2(index => (++calls, index), () => 10).slice(3, 7);
2690
- $mol_assert_ok(list instanceof Array);
2698
+ $mol_assert_equal(true, list instanceof Array);
2691
2699
  $mol_assert_equal(list.length, 4);
2692
2700
  $mol_assert_equal(list[0], 3);
2693
2701
  $mol_assert_equal(list[3], 6);
@@ -2696,22 +2704,22 @@ var $;
2696
2704
  },
2697
2705
  'lazy some'() {
2698
2706
  let calls = 0;
2699
- $mol_assert_ok($mol_range2(index => (++calls, index), () => 5).some(v => v >= 2));
2707
+ $mol_assert_equal(true, $mol_range2(index => (++calls, index), () => 5).some(v => v >= 2));
2700
2708
  $mol_assert_equal(calls, 3);
2701
- $mol_assert_not($mol_range2(i => i, () => 0).some(v => true));
2702
- $mol_assert_ok($mol_range2(i => i).some(v => v > 5));
2709
+ $mol_assert_equal(false, $mol_range2(i => i, () => 0).some(v => true));
2710
+ $mol_assert_equal(true, $mol_range2(i => i).some(v => v > 5));
2703
2711
  },
2704
2712
  'lazy every'() {
2705
2713
  let calls = 0;
2706
- $mol_assert_not($mol_range2(index => (++calls, index), () => 5).every(v => v < 2));
2714
+ $mol_assert_equal(false, $mol_range2(index => (++calls, index), () => 5).every(v => v < 2));
2707
2715
  $mol_assert_equal(calls, 3);
2708
- $mol_assert_ok($mol_range2(i => i, () => 0).every(v => false));
2709
- $mol_assert_not($mol_range2(i => i).every(v => v < 5));
2716
+ $mol_assert_equal(true, $mol_range2(i => i, () => 0).every(v => false));
2717
+ $mol_assert_equal(false, $mol_range2(i => i).every(v => v < 5));
2710
2718
  },
2711
2719
  'lazyfy'() {
2712
2720
  let calls = 0;
2713
- const list = new $mol_range2_array(...[0, 1, 2, 3, 4, 5]).map(i => (++calls, i + 10)).slice(2);
2714
- $mol_assert_ok(list instanceof Array);
2721
+ const list = $mol_range2([0, 1, 2, 3, 4, 5]).map(i => (++calls, i + 10)).slice(2);
2722
+ $mol_assert_equal(true, list instanceof Array);
2715
2723
  $mol_assert_equal(list.length, 4);
2716
2724
  $mol_assert_equal(calls, 0);
2717
2725
  $mol_assert_equal(list[0], 12);