10:07
<nicolo-ribaudo>
I'm looking at the agenda for April, and Mark's proposals could as well be song titles.
16:20
<ryzokuken>
rishipal hi!
16:40
<rishipal>
Hi :)
18:23
<shu>
oh man we found some in-the-wild uses of extending non-extensible objects with private names
18:23
<littledan>
how big are they?
18:23
<shu>
it doesn't look like a library though, but i can't tell
18:24
<littledan>
maybe time for a reverse origin trial?
18:24
<shu>
no. of page loads is still very low
18:24
<shu>
haha, markdown
18:24
<shu>
https://gis.bvl.bund.de/ has this snippet somewhere:
18:25
<shu>
class _ {
  // stuff ...
 static #t = void (Object.keys(_).forEach((t) => {
          _[t].type = t;
        }), Object.freeze(_));
}
18:26
<shu>
oh it must be this https://www.disy.net/en/products/disy-cadenza/overview/
18:52
<TabAtkins>
What in tarnation
18:55
<shu>
the other broken sites are worse, actually
18:55
<shu>
https://chromestatus.com/metrics/feature/timeline/popularity/5209
18:55
<shu>
#2 and #6 are non-Cadenza breakages, and they break in the same way. they both seem to have identically structured source, which looks like some proprietary framework (i can't find any references to it on GH)
18:56
<shu>
#2 and #6 actually do something like
18:56
<shu>
class t extends EventTarget {
  constructor() {
    super();
    Object.freeze(this);
  }
}

class h extends t {
  #foo;
  #bar;
  constructor() {
    super();
    this.#foo = ...;
  }
}
18:56
<shu>
still, very low page load
20:02
<Jack Works>
🤔 I wonder why they are freezing EventTarget
20:04
<Jack Works>
my personal use of extending private names on objects I do not own, is to add a mark to any object I have seen, so I can easily debug them in the console
20:06
<shu>
the framework seems to be called "Axial", but i can't find any references to it on github
20:06
<shu>
it's not this thing: https://www.npmjs.com/package/axial
20:07
<shu>
if anyone has any idea what Axial is, please lmk
21:49
<Ashley Claymore>
Is this a terrible idea: still allow private fields to be installed if the new object wasn't replaced by the call to super and it only made it non-extensible 
21:50
<Ashley Claymore>
I.e return override private field trick is removed 
21:51
<shu>
but that doesn't achieve what we want, which is the fixed shape guarantee
21:55
<Ashley Claymore>
Gotcha. I was focusing too much on the desire to remove the secret  weakmap
22:00
<shu>
we can probably do outreach here
22:01
<Ashley Claymore>
And we also wanted to reduce new MOP predicates too which  we get by expanding the meaning of non-extensible 
22:02
<Ashley Claymore>
I guess if a class wants to freeze but not block subclass from having private fields they would only freeze based on a check to new.target and expect the subclass to do the same 
22:06
<shu>
yeah, if you freeze in a class constructor, you gotta freeze in the leaves of the inheritance hierarchy
22:14
<littledan>
yes, good plan
22:20
<shu>
we can simply go to their office https://www.disy.net/en/company/contact/#:~:text=Google%20Maps-,approach,-By%20public%20transport
22:20
<littledan>
this is what Yehuda was proposing decorator instance finalizers for!