Skip to content

Commit a8b0507

Browse files
committed
minor improvements in cookies and DOM shim
1 parent 50887c8 commit a8b0507

24 files changed

+116
-107
lines changed

Diff for: docs/cli_readme.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
CLI args:
2424

2525
```js
26-
import * as cl from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/cli.mjs'
26+
import * as cl from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/cli.mjs'
2727

2828
const cli = cl.Flag.os()
2929

@@ -34,15 +34,15 @@ console.log(...cli.args)
3434
Console clearing:
3535

3636
```js
37-
import * as cl from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/cli.mjs'
37+
import * as cl from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/cli.mjs'
3838

3939
cl.emptty()
4040
```
4141

4242
Clearing the console only once, before running your code:
4343

4444
```js
45-
import 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/cli_emptty.mjs'
45+
import 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/cli_emptty.mjs'
4646
```
4747

4848
## API

Diff for: docs/coll_readme.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Port and rework of https://github.com/mitranim/jol.
2626
## Usage
2727

2828
```js
29-
import * as c from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/coll.mjs'
29+
import * as c from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/coll.mjs'
3030
```
3131

3232
## API
@@ -101,8 +101,8 @@ Links: [source](../coll.mjs#L101); [test/example](../test/coll_test.mjs#L218).
101101
Variant of [#`Bmap`](#class-bmap) with support for key and value checks. Subclasses must override methods `.reqKey` and `.reqVal`. These methods are automatically called by `.set`. Method `.reqKey` must validate and return the given key, and method `.reqVal` must validate and return the given value. Use type assertions provided by [`lang`](lang_readme.md).
102102

103103
```js
104-
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/lang.mjs'
105-
import * as c from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/coll.mjs'
104+
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/lang.mjs'
105+
import * as c from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/coll.mjs'
106106

107107
class StrNatMap extends c.TypedMap {
108108
reqKey(key) {return l.reqStr(key)}
@@ -242,7 +242,7 @@ Differences and advantages over `Array`:
242242
The overhead of the wrapper is insignificant.
243243

244244
```js
245-
import * as c from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/coll.mjs'
245+
import * as c from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/coll.mjs'
246246

247247
console.log(new c.Vec())
248248
// Vec{$: []}

Diff for: docs/dom_glob_native_readme.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
## Usage
1212

1313
```js
14-
import * as dg from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/dom_glob_native.mjs'
14+
import * as dg from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/dom_glob_native.mjs'
1515

1616
console.log(dg.glob)
1717
```

Diff for: docs/dom_glob_shim_readme.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
## Usage
1212

1313
```js
14-
import * as dg from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/dom_glob_shim.mjs'
14+
import * as dg from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/dom_glob_shim.mjs'
1515

1616
console.log(dg.glob)
1717
```

Diff for: docs/dom_readme.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
## Usage
1212

1313
```js
14-
import * as d from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/dom.mjs'
14+
import * as d from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/dom.mjs'
1515
```
1616

1717
## API

Diff for: docs/dom_reg_readme.md

+12-12
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
Example mockup for a pushstate link.
2727

2828
```js
29-
import * as dr from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/dom_reg.mjs'
29+
import * as dr from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/dom_reg.mjs'
3030

3131
// Immediately ready for use. Tag is automatically set to `a-btn`.
3232
class Btn extends dr.HTMLButtonElement {
@@ -61,20 +61,20 @@ document.body.append(new MyLink(`click me`, `/some-link`))
6161

6262
### `function reg`
6363

64-
Links: [source](../dom_reg.mjs#L172); [test/example](../test/dom_reg_test.mjs#L18).
64+
Links: [source](../dom_reg.mjs#L177); [test/example](../test/dom_reg_test.mjs#L18).
6565

6666
Shortcut for calling `Reg.main.reg`. Takes a custom element class and idempotently registers it, automatically deriving the custom element tag name _and_ the base tag for `extends`.
6767

6868
### `class Reg`
6969

70-
Links: [source](../dom_reg.mjs#L174); [test/example](../test/dom_reg_test.mjs#L45).
70+
Links: [source](../dom_reg.mjs#L179); [test/example](../test/dom_reg_test.mjs#L45).
7171

7272
Registry for custom DOM element classes. Automatically derives tag name from class name, using salting when necessary to avoid collisions. Supports idempotent registration which can be safely called in an element constructor. Allows immediate registration, deferred registration, or a mix of those.
7373

7474
By default, this registry has **no global side effects**. To enable global registration, provide a "definer" to the registry.
7575

7676
```js
77-
import * as dr from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/dom_reg.mjs'
77+
import * as dr from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/dom_reg.mjs'
7878

7979
class Btn extends HTMLButtonElement {
8080
static customName = `some-btn`
@@ -95,11 +95,11 @@ dr.Reg.main.setDefiner(customElements)
9595
The following APIs are exported but undocumented. Check [dom_reg.mjs](../dom_reg.mjs).
9696

9797
* [`class TagToCls`](../dom_reg.mjs#L13)
98-
* [`class ClsToTag`](../dom_reg.mjs#L98)
99-
* [`class CustomElementRegistry`](../dom_reg.mjs#L134)
100-
* [`function MixReg`](../dom_reg.mjs#L159)
101-
* [`class MixRegCache`](../dom_reg.mjs#L161)
102-
* [`function isDefiner`](../dom_reg.mjs#L280)
103-
* [`function optDefiner`](../dom_reg.mjs#L281)
104-
* [`function isCustomName`](../dom_reg.mjs#L284)
105-
* [`function reqCustomName`](../dom_reg.mjs#L288)
98+
* [`class ClsToTag`](../dom_reg.mjs#L103)
99+
* [`class CustomElementRegistry`](../dom_reg.mjs#L139)
100+
* [`function MixReg`](../dom_reg.mjs#L164)
101+
* [`class MixRegCache`](../dom_reg.mjs#L166)
102+
* [`function isDefiner`](../dom_reg.mjs#L285)
103+
* [`function optDefiner`](../dom_reg.mjs#L286)
104+
* [`function isCustomName`](../dom_reg.mjs#L289)
105+
* [`function reqCustomName`](../dom_reg.mjs#L293)

Diff for: docs/dom_shim_readme.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
## Usage
1212

1313
```js
14-
import * as ds from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/dom_shim.mjs'
14+
import * as ds from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/dom_shim.mjs'
1515
```
1616

1717
## API

Diff for: docs/http_readme.md

+7-7
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ HTTP request/response utils are ported and reworked from https://github.com/mitr
3232
## Usage
3333

3434
```js
35-
import * as h from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/http.mjs'
35+
import * as h from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/http.mjs'
3636

3737
const reqBody = {msg: `hello world`}
3838
const resBody = await h.reqBui().to(`/api`).post().json(reqBody).fetchOkJson()
@@ -234,8 +234,8 @@ rou.groups // {key: `path`}
234234
Routing is imperative:
235235

236236
```js
237-
import * as h from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/http.mjs'
238-
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/lang.mjs'
237+
import * as h from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/http.mjs'
238+
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/lang.mjs'
239239

240240
const nextPage = route(window.location)
241241

@@ -263,7 +263,7 @@ Short for "request router" or "request-response router". Advanced version of [#`
263263
Routing can be shared between SSR and SPA:
264264

265265
```js
266-
import * as h from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/http.mjs'
266+
import * as h from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/http.mjs'
267267

268268
function route(rou) {
269269
l.reqInst(rou, h.ReqRou)
@@ -365,9 +365,9 @@ The following APIs are exported but undocumented. Check [http.mjs](../http.mjs).
365365
* [`function cook`](../http.mjs#L496)
366366
* [`class Cookie`](../http.mjs#L498)
367367
* [`class Cookies`](../http.mjs#L607)
368-
* [`function reqBody`](../http.mjs#L641)
369-
* [`function optBody`](../http.mjs#L642)
370-
* [`const bodyFuns`](../http.mjs#L643)
368+
* [`function reqBody`](../http.mjs#L644)
369+
* [`function optBody`](../http.mjs#L645)
370+
* [`const bodyFuns`](../http.mjs#L646)
371371

372372

373373
## Misc

Diff for: docs/iter_readme.md

+10-10
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ Port and rework of https://github.com/mitranim/fpx.
8787
## Usage
8888

8989
```js
90-
import * as i from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/iter.mjs'
90+
import * as i from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/iter.mjs'
9191
```
9292

9393
## Perf
@@ -314,8 +314,8 @@ Signature: `(Iter<A>, {new(A): B}) => B[]`.
314314
Similar to [#`map`](#function-map), but instead of taking an arbitrary function, takes a class and calls it with `new` for each element.
315315

316316
```js
317-
import * as i from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/iter.mjs'
318-
import * as o from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/obj.mjs'
317+
import * as i from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/iter.mjs'
318+
import * as o from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/obj.mjs'
319319

320320
class Model extends o.Dict {pk() {return this.id}}
321321
class Person extends Model {}
@@ -603,7 +603,7 @@ Links: [source](../iter.mjs#L396); [test/example](../test/iter_test.mjs#L1116).
603603
Syntactic shortcut for creating a `Set` via variadic call.
604604

605605
```js
606-
import * as i from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/iter.mjs'
606+
import * as i from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/iter.mjs'
607607

608608
i.setOf(10, 20, 30)
609609
// Set{10, 20, 30}
@@ -676,8 +676,8 @@ Similar to [#`map`](#function-map) but for dicts.
676676
* The mapping function receives only one argument: each value.
677677

678678
```js
679-
import * as i from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/iter.mjs'
680-
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/lang.mjs'
679+
import * as i from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/iter.mjs'
680+
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/lang.mjs'
681681

682682
i.mapDict({one: 10, two: 20}, l.inc)
683683
// {one: 11, two: 21}
@@ -698,8 +698,8 @@ Similar to [#`filter`](#function-filter) but for dicts.
698698
* The mapping function receives each value.
699699

700700
```js
701-
import * as i from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/iter.mjs'
702-
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/lang.mjs'
701+
import * as i from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/iter.mjs'
702+
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/lang.mjs'
703703

704704
i.pick({one: -20, two: -10, three: 10, four: 20}, l.isFinPos)
705705
// {three: 10, four: 20}
@@ -720,8 +720,8 @@ Similar to [#`reject`](#function-reject) but for dicts.
720720
* The mapping function receives each value.
721721

722722
```js
723-
import * as i from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/iter.mjs'
724-
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/lang.mjs'
723+
import * as i from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/iter.mjs'
724+
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/lang.mjs'
725725

726726
i.omit({one: -20, two: -10, three: 10, four: 20}, l.isFinPos)
727727
// {one: -20, two: -10}

Diff for: docs/lang_readme.md

+12-12
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ Port and rework of https://github.com/mitranim/fpx.
109109
## Usage
110110

111111
```js
112-
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/lang.mjs'
112+
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/lang.mjs'
113113
```
114114

115115
## API
@@ -121,7 +121,7 @@ Links: [source](../lang.mjs#L3); [test/example](../test/lang_test.mjs#L219).
121121
True for `null` and `undefined`. Same as `value == null`. Incidentally, these are the only values that produce an exception when attempting to read a property: `null.someProperty`.
122122

123123
```js
124-
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/lang.mjs'
124+
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/lang.mjs'
125125

126126
// Definition
127127
function isNil(value) {return value == null}
@@ -155,7 +155,7 @@ Links: [source](../lang.mjs#L19); [test/example](../test/lang_test.mjs#L244).
155155
Same as `typeof val === 'number'`. True if the value is a primitive number, _including_ `NaN` and `±Infinity`. In most cases you should use [#`isFin`](#function-isfin) instead.
156156

157157
```js
158-
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/lang.mjs'
158+
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/lang.mjs'
159159

160160
l.isNum(1)
161161
// true
@@ -174,7 +174,7 @@ Links: [source](../lang.mjs#L25); [test/example](../test/lang_test.mjs#L256).
174174
Same as ES2015's [`Number.isFinite`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite). True if `val` is a primitive number and is _not_ `NaN` or `±Infinity`. In most cases you should prefer `isFin` over `isNum`.
175175

176176
```js
177-
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/lang.mjs'
177+
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/lang.mjs'
178178

179179
l.isFin(1)
180180
// true
@@ -502,7 +502,7 @@ Signature: `(val, test) => val` where `test: val => bool`.
502502
Short for "require". Minification-friendly assertion. If `!test(val)`, throws an informative `TypeError`. Otherwise, returns `val` as-is.
503503

504504
```js
505-
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/lang.mjs'
505+
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/lang.mjs'
506506

507507
l.req({one: `two`}, l.isObj)
508508
// {one: `two`}
@@ -601,7 +601,7 @@ Identity test: same as `===`, but considers `NaN` equal to `NaN`. Equivalent to
601601
Note that [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is) implements [_SameValue_](https://www.ecma-international.org/ecma-262/6.0/#sec-samevalue), which treats `-0` and `+0` as _distinct values_. This is typically undesirable. As a result, you should prefer `l.is` over `===` or `Object.is`.
602602

603603
```js
604-
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/lang.mjs'
604+
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/lang.mjs'
605605

606606
l.is(1, '1')
607607
// false
@@ -641,7 +641,7 @@ Links: [source](../lang.mjs#L424); [test/example](../test/lang_test.mjs#L1723).
641641
Takes a value and creates a function that always returns that value. Sometimes useful with higher order functions.
642642

643643
```js
644-
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/lang.mjs'
644+
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/lang.mjs'
645645

646646
const constant = l.val(1)
647647

@@ -659,7 +659,7 @@ Links: [source](../lang.mjs#L425); [test/example](../test/lang_test.mjs#L1737).
659659
Same as `throw` but an expression rather than a statement. Also sometimes useful with higher-order functions.
660660

661661
```js
662-
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/lang.mjs'
662+
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/lang.mjs'
663663

664664
const x = someTest ? someValue : l.panic(Error(`unreachable`))
665665
```
@@ -679,7 +679,7 @@ Like [`Function.prototype.bind`](https://developer.mozilla.org/en-US/docs/Web/Ja
679679
Returns a new function that represents [partial application](https://en.wikipedia.org/wiki/Partial_application) of the given function, a common tool in functional programming. When called, it joins arguments from both calls and invokes the original function. Think of it like splitting a function call in two, or more. Performance is inferior to closures; avoid in hotspots.
680680

681681
```js
682-
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/lang.mjs'
682+
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/lang.mjs'
683683

684684
const inc = l.bind(l.add, 1)
685685

@@ -696,7 +696,7 @@ Links: [source](../lang.mjs#L431); [test/example](../test/lang_test.mjs#L1700).
696696
Returns a new function that negates the result of the given function, like a delayed `!`.
697697

698698
```js
699-
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/lang.mjs'
699+
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/lang.mjs'
700700

701701
function eq(a, b) {return a === b}
702702

@@ -716,7 +716,7 @@ Links: [source](../lang.mjs#L436); [test/example](../test/lang_test.mjs#L1117).
716716
Same as the `in` operator, but returns `false` for [#primitives](#function-isprim) instead of throwing an exception:
717717

718718
```js
719-
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/lang.mjs'
719+
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/lang.mjs'
720720

721721
l.hasIn(new Number(10), `toString`)
722722
// true
@@ -747,7 +747,7 @@ Links: [source](../lang.mjs#L439); [test/example](../test/lang_test.mjs#L1159).
747747
Returns `true` if the target is [#non-primitive](#function-iscomp) and has the given property on its prototype. As a consequence, this returns `false` if the target is a primitive, or has the given property as an "own" property, either enumerable or not.
748748

749749
```js
750-
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/lang.mjs'
750+
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/lang.mjs'
751751

752752
l.hasInherited([10, 20, 30], `length`)
753753
// false

Diff for: docs/obj_readme.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
## Usage
1515

1616
```js
17-
import * as o from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/obj.mjs'
17+
import * as o from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/obj.mjs'
1818
```
1919

2020
## API
@@ -82,8 +82,8 @@ Performance characteristics:
8282
* When the number of declared properties is significantly smaller than the number of provided properties, this tends to be faster than the aforementioned assignment functions.
8383

8484
```js
85-
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/lang.mjs'
86-
import * as o from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/obj.mjs'
85+
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/lang.mjs'
86+
import * as o from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/obj.mjs'
8787

8888
class Person extends o.Struct {
8989
static Spec = class extends super.Spec {
@@ -126,8 +126,8 @@ Differences from [#`Struct`](#class-struct):
126126
* Measurably worse performance.
127127

128128
```js
129-
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/lang.mjs'
130-
import * as o from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/obj.mjs'
129+
import * as l from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/lang.mjs'
130+
import * as o from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/obj.mjs'
131131

132132
class Person extends o.StructLax {
133133
static Spec = class extends super.Spec {
@@ -160,7 +160,7 @@ Links: [source](../obj.mjs#L304); [test/example](../test/obj_test.mjs#L786).
160160
Takes a class and hacks its prototype, converting all non-inherited getters to lazy/memoizing versions of themselves that only execute _once_. The resulting value replaces the getter. Inherited getters are unaffected.
161161

162162
```js
163-
import * as o from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].53/obj.mjs'
163+
import * as o from 'https://cdn.jsdelivr.net/npm/@mitranim/[email protected].54/obj.mjs'
164164

165165
class Bucket {
166166
static {o.memGet(this)}

0 commit comments

Comments
 (0)