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 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
- return new Proxy(new $mol_range2_array(), {
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 target[field];
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 = new $mol_range2_array();
3726
- for (let index = 0; index < this.length; ++index) {
3727
- const item = this[index];
3728
- if (check.call(context, item, index, this))
3729
- filtered.push(item);
3730
- }
3731
- return filtered;
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
- $mol_assert_ok(list instanceof Array);
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
- $mol_assert_ok(list instanceof Array);
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), () => 10).filter(v => v % 2).slice(0, 3);
3853
- $mol_assert_ok(list instanceof Array);
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, 10);
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
- $mol_assert_ok(list instanceof Array);
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
- $mol_assert_ok(target instanceof Array);
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
- $mol_assert_ok(list instanceof Array);
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
- $mol_assert_ok($mol_range2(index => (++calls, index), () => 5).some(v => v >= 2));
3913
+ $mol_assert_equal(true, $mol_range2(index => (++calls, index), () => 5).some(v => v >= 2));
3906
3914
  $mol_assert_equal(calls, 3);
3907
- $mol_assert_not($mol_range2(i => i, () => 0).some(v => true));
3908
- $mol_assert_ok($mol_range2(i => i).some(v => v > 5));
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
- $mol_assert_not($mol_range2(index => (++calls, index), () => 5).every(v => v < 2));
3920
+ $mol_assert_equal(false, $mol_range2(index => (++calls, index), () => 5).every(v => v < 2));
3913
3921
  $mol_assert_equal(calls, 3);
3914
- $mol_assert_ok($mol_range2(i => i, () => 0).every(v => false));
3915
- $mol_assert_not($mol_range2(i => i).every(v => v < 5));
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 = new $mol_range2_array(...[0, 1, 2, 3, 4, 5]).map(i => (++calls, i + 10)).slice(2);
3920
- $mol_assert_ok(list instanceof Array);
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);