mol_wire_lib 1.0.879 → 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 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
- return new Proxy(new $mol_range2_array(), {
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 target[field];
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 = new $mol_range2_array();
2978
- for (let index = 0; index < this.length; ++index) {
2979
- const item = this[index];
2980
- if (check.call(context, item, index, this))
2981
- filtered.push(item);
2982
- }
2983
- return filtered;
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
- $mol_assert_ok(list instanceof Array);
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
- $mol_assert_ok(list instanceof Array);
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), () => 10).filter(v => v % 2).slice(0, 3);
3105
- $mol_assert_ok(list instanceof Array);
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, 10);
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
- $mol_assert_ok(list instanceof Array);
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
- $mol_assert_ok(target instanceof Array);
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
- $mol_assert_ok(list instanceof Array);
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
- $mol_assert_ok($mol_range2(index => (++calls, index), () => 5).some(v => v >= 2));
3165
+ $mol_assert_equal(true, $mol_range2(index => (++calls, index), () => 5).some(v => v >= 2));
3158
3166
  $mol_assert_equal(calls, 3);
3159
- $mol_assert_not($mol_range2(i => i, () => 0).some(v => true));
3160
- $mol_assert_ok($mol_range2(i => i).some(v => v > 5));
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
- $mol_assert_not($mol_range2(index => (++calls, index), () => 5).every(v => v < 2));
3172
+ $mol_assert_equal(false, $mol_range2(index => (++calls, index), () => 5).every(v => v < 2));
3165
3173
  $mol_assert_equal(calls, 3);
3166
- $mol_assert_ok($mol_range2(i => i, () => 0).every(v => false));
3167
- $mol_assert_not($mol_range2(i => i).every(v => v < 5));
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 = new $mol_range2_array(...[0, 1, 2, 3, 4, 5]).map(i => (++calls, i + 10)).slice(2);
3172
- $mol_assert_ok(list instanceof Array);
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);