02:50:35  * AtumT_quit (Remote host closed the connection)
02:51:37  * abernixquit (Read error: Connection reset by peer)
02:52:19  * abernixjoined
03:03:09  * abernixquit (Quit: Bye)
03:08:28  * not-an-aardvarkjoined
03:25:01  * howdoijoined
03:36:52  * jmdyckquit (Quit: Leaving.)
04:43:46  * sebmarkbage|awayjoined
04:44:02  * ephemera_joined
04:44:25  * caridyjoined
04:44:50  * basicdaysjoined
04:44:53  * gsathyajoined
04:45:29  * wha121[m]quit (Ping timeout: 240 seconds)
04:45:29  * Jasuruzakovgmailquit (Ping timeout: 240 seconds)
04:45:42  * leobalterjoined
04:45:43  * M-IvanSanchezquit (Ping timeout: 240 seconds)
04:46:54  * spionjoined
04:47:37  * mattt1joined
04:47:44  * gcommerjoined
04:48:01  * STRMLjoined
04:48:19  * caitpjoined
04:48:41  * bttfjoined
04:49:42  * rwaldronjoined
04:50:06  * Draggor1joined
04:52:40  * Bakkotjoined
04:52:48  * Jasuruzakovgmailjoined
04:58:03  * wha121[m]joined
04:58:03  * M-IvanSanchezjoined
05:27:17  * gkatsevjoined
06:51:15  * Havvyjoined
07:52:59  * gskachkovjoined
08:51:17  * pandemjoined
10:10:52  * cloudshuquit (Ping timeout: 255 seconds)
10:11:20  * wha121[m]quit (Ping timeout: 255 seconds)
10:11:21  * cloudshujoined
10:11:47  * dilijevquit (Ping timeout: 255 seconds)
10:12:14  * M-IvanSanchezquit (Ping timeout: 255 seconds)
10:13:01  * M-IvanSanchezjoined
10:14:27  * mylesborinsquit (Ping timeout: 260 seconds)
10:14:33  * dilijevjoined
10:16:45  * mylesborinsjoined
10:24:18  * wha121[m]joined
10:25:12  * mylesborinsquit (Quit: farewell for now)
10:25:42  * mylesborinsjoined
10:27:51  * not-an-aardvarkquit (Quit: Connection closed for inactivity)
12:18:02  * IgnoredAmbiencejoined
12:27:47  * jmdyckjoined
13:24:57  * howdoiquit (Quit: Connection closed for inactivity)
13:58:52  * bradleymeckjoined
14:39:41  * gskachkovquit (Read error: Connection reset by peer)
14:52:21  * AtumTjoined
15:21:35  * Fishrock123joined
15:33:01  * bradleymeckquit (Quit: bradleymeck)
15:39:40  * gskachkovjoined
16:04:51  * bradleymeckjoined
16:15:00  * Fishrock123quit (Remote host closed the connection)
16:15:38  * Fishrock123joined
16:15:46  * Fishrock123quit (Remote host closed the connection)
16:21:34  * howdoijoined
16:29:40  * gskachkovquit (Quit: gskachkov)
16:30:24  * gskachkovjoined
17:07:27  * nobsojoined
17:08:20  * nobsopart
17:08:48  * nobsojoined
17:13:55  * Fishrock123joined
17:36:54  * Fishrock123quit (Remote host closed the connection)
17:37:45  * Fishrock123joined
17:50:01  * bradleymeckquit (Quit: bradleymeck)
17:56:22  * Fishrock123quit (Quit: Leaving...)
17:57:10  * gskachkovquit (Quit: gskachkov)
18:35:16  * bradleymeckjoined
18:59:43  * Fishrock123joined
19:03:57  * gskachkovjoined
19:25:42  * gskachkovquit (Quit: gskachkov)
19:26:32  * gskachkovjoined
19:27:27  <bterlson>Domenic/annevk curious how you handle layering with types (esp. exotic ones) when you need different slot implementations - handy example link?
19:28:06  * bradleymeckquit (Quit: bradleymeck)
19:28:58  <Domenic>Different internal methods, you mean?
19:29:06  <bterlson>sorry, yeah
19:29:28  <Domenic>Basically https://heycam.github.io/webidl/ "legacy platform objects"
19:29:58  <Domenic>(which has a bug right now where everything overrides [[Call]], so ignore call for now.)
19:30:19  <Domenic>Everything on the platform is either a normal object or one of those, I believe.
19:31:34  * gskachkovquit (Quit: gskachkov)
19:31:50  <Domenic>Hmm or the variant above it which only overrides [[SetPrototypeOf]]
19:32:31  * gskachkovjoined
19:32:34  <bterlson>Domenic: if overriding is a thing, isn't saying that a ULEO has the slots of an ordinary object ok for 262?
19:32:39  <bterlson>other than it's a lie
19:32:47  <bterlson>I just mean in terms of current practices
19:32:48  <bterlson>brb
19:47:48  * AtumT_joined
19:48:27  * AtumTquit (Ping timeout: 240 seconds)
19:51:40  * bradleymeckjoined
20:15:59  * gskachkovquit (Quit: gskachkov)
20:27:13  * gskachkovjoined
20:33:00  * gskachkovquit (Quit: gskachkov)
20:34:16  <Domenic>bterlson: not sure what you mean about overriding being a thing
20:34:37  <Domenic>In general legacy platform objects are exotic
20:34:49  <Domenic>So e.g. document.all will have legacy platform object exotic methods
20:35:12  <Domenic>Not because we override ES, but because we specify that it is an instance of HTMLAllCollection, and all HTMLAllCollection instances use the legacy platform object internal methods
20:35:29  <bterlson>Domenic: this is re: "tagging" vs. "exotic object"
20:36:03  <bterlson>seems like making it an exotic object with all the normal internal slots works for all 262 text and the layering could be accomplished however you define slots for ecmascript things
20:36:28  <Domenic>Hmm I don't understand
20:36:51  <Domenic>Right now we define internal methods for e.g. HTMLOptionsCollection by saying it is not an ordinary object, it is a legacy platform object
20:37:14  <Domenic>The question is, can we say HTMLAllCollection instances are HTML document dot all exotic objects?
20:37:21  <Domenic>It seems weird to do so
20:37:25  <Domenic>Because you can only be one type of "thing"
20:37:34  <Domenic>Either legacy platform object or HTML document dot all exotic object
20:37:40  <Domenic>(s/"thing"/exotic object/)
20:37:46  <bterlson>FTR it is I who don't understand, I'm trying to find a way to ask the right question ;)
20:38:43  <Domenic>Maybe let's do it this way. Let's say I wanted to define something that had all the internal methods of https://heycam.github.io/webidl/#named-properties-object + the [[Call]] and [[Construct]] of bound function exotic objects
20:38:53  <Domenic>Can I say "x is both a named properties object and a bound function exotic object"?
20:39:04  <Domenic>Maybe I can, and people will know what I mean, but it feels weird
20:39:14  <bterlson>I mean, you kinda have that already with interfaces right?
20:39:16  <Domenic>Because generally I think bound function exotic objects *only* have overridden [[Call]] and [[Construct]]
20:39:19  <Domenic>How so?
20:41:00  <bterlson>an object can implement multiple interfaces and those interfaces might conflict
20:41:39  <Domenic>they cannot conflict in the internal methods they implement
20:42:14  <Domenic>An object will either be a legacy platform object (and implement those internal methods), or not (and be an ordinary object). It depends on whether the union of its interfaces uses certain features.
20:42:22  <bterlson>doesn't graph 2 of https://heycam.github.io/webidl/#es-legacy-platform-objects say otherwise?
20:42:46  <Domenic>graph 2?
20:42:55  <bterlson>paragraph
20:43:06  <TabAtkins>"graf" then ^_^
20:43:23  <bterlson>TabAtkins: depends on the shop ;)
20:43:38  <Domenic>No. If it implements any interfaces that have indexed properties, then it's a legacy platform object, with the specified internal methods.
20:45:33  <bterlson>right, I was pointing out that at the interface level there is multiple inheritance and conflicts can happen... seemed analogous to me to multiple "inheritance" of "types" but maybe that's a stretch :-P
20:45:53  * gskachkovjoined
20:46:00  <Domenic>Yeah, not of types in terms of "normal object" vs. "legacy platform object" vs. "bound function object". Those are all exclusive.
20:46:10  <Domenic>You pick one when creating the object
20:46:22  <bterlson>ok, how about this then
20:46:29  <bterlson>the object has no slots
20:46:37  * caitpquit (Quit: *)
20:46:45  <bterlson>no
20:46:58  <bterlson>the object has all of the essential slots and are implementation defined.
20:47:23  <bterlson>I am trying to avoid some kind of tagged union machinery
20:49:09  <Domenic>So I guess what I would propose is more like "Any object can be marked as being a HTML document.all exotic object. If so, it behaves like undefined in ...". Then just leave out the last sentence.
20:49:35  <Domenic>(Optionally, replace "any object" with "Only one object defined by one specification" or something)
20:49:56  <bterlson>marked seems too hand-wavey to me
20:50:08  <bterlson>like it's a convention that would need to be defined somewhere at least
20:50:20  * caitpjoined
20:50:52  <bterlson>will saying it must implement all the essential methods of objects but leave their semantics implementation defined not work?
20:51:38  <Domenic>Hmm
20:51:51  * cloudshuquit
20:51:54  <Domenic>I guess so, but I mean, isn't that true of all objects?
20:52:06  <Domenic>Like, why is that last sentence even necessary, in your view.
20:52:30  <Domenic>You could also make it a formal term that we reference: "marked being a HTML document.all exotic object"
20:52:32  <bterlson>I don't think so - if you say you're an ordinary object but you define a slot differently, you are now no longer an ordinary object
20:52:42  <Domenic>you keep saying slot, but I sure hope that's not true
20:52:46  <Domenic>do you mean internal method?
20:52:50  <bterlson>yes
20:53:09  <Domenic>ok. so, sure, if you lie about being an ordinary object, that's bad. but who's going to do that?
20:54:46  <bterlson>what I'm saying is that I believe object type is essentially a union of the internal methods it implements. In other words, with current PR, you can't change the ULEO's slots and still have a ULEO, but if I say they're implementation defined, they can be anything and still be a ULEO.
20:55:57  <Domenic>I guess I see. Maybe "other-specification defined" instead of implementation-defined
20:56:16  <bterlson>I think my proposal and yours are identical, it's just mine keeps a bit closer to existing conventions
20:56:21  <Domenic>Still unsure why it's important to make this a *type* instead of a marker though
20:56:53  <Domenic>Because with your proposal I'll have to say something like "this is a legacy platform exotic object that also has the characteristics of a HTMLDDAEO"
20:57:20  <Domenic>Or I guess "This is a HTMLDDAEO but all its internal methods are derived from legacy platform exotic object definitions and also every time a spec says 'is this a legacy platform object' the answer is yes"
20:57:28  * bterlsonis presently carving ULEO into his forearm. ULEO FOREVER!!!!
20:58:16  <Domenic>I don't think that's a huge deal but it seems more awkard than just marking a legacy platform exotic object as a HTMLDDAEO
20:58:33  <Domenic>I also think it's a bit weird to have an exotic object type that doesn't override internal methods
20:59:30  <bterlson>the latter I would expect, but isn't the second clause of that tautological with the previous statement of "internal methods are derived from legacy platform exotic object definitions"?
21:00:15  <bterlson>For marking, the best I can think of is adding an internal slot to all objects that says whether it's a ULEO or not
21:00:29  <Domenic>I don't think we currently define "is a legacy platform object" as "has the internal methods of a legacy platform object". We define it as "when we created it, we said, create a legacy platform object"
21:01:06  <Domenic>Hmm, I see how that would be more formal, and suck. I guess it kind of is what implementations do actually, lol?
21:02:21  <Domenic>Oh!
21:02:32  <Domenic>You could just say "if it has a [[IsHTMLDDAEO]] slot"
21:02:45  <Domenic>You don't have to add it with a value false to every object
21:02:48  * gskachkovquit (Quit: gskachkov)
21:02:49  <Domenic>You just check for its presence
21:02:54  <Domenic>Which will only be true for document.all
21:02:59  <bterlson>Ahh I was reading https://heycam.github.io/webidl/#dfn-legacy-platform-object wrong. I thought the first part was saying if those things are implemented on the object then it's a legacy platform object, but it's actually saying what the requirements of such objects are
21:03:40  <bterlson>I still need an exotic object type for that, which still has the problem of how do I define its other slots?
21:03:46  * gskachkovjoined
21:03:51  <Domenic>No, why do you?
21:04:14  <Domenic>Just change all the "if"s from "if it's a HTML document dot all exotic object" to "if it's an Object with a [[IsHTMLDDAEO]] slot"
21:05:17  <bterlson>I feel like I can't just reference the slot without there being a definition of an object that has that slot anywhere in 262
21:05:47  <Domenic>Hmm that seems totally fine to me
21:05:55  <Domenic>You can still have the intro to the clause talk about what the slot means
21:06:00  <Domenic>Even <dfn> it
21:06:43  <bterlson>yeah this seems reasonable
21:07:00  <Domenic>\o/
21:07:12  <Domenic>This seems really nice to me
21:07:24  <bterlson>I'll say something to the effect of host-defined exotic objects may have an [[IsHTMLDDAEO]] slot
21:07:47  <bterlson>should be good
21:31:38  * howdoiquit (Quit: Connection closed for inactivity)
21:36:47  <bterlson>Domenic: https://github.com/tc39/ecma262/pull/673 updated
21:46:08  <Domenic>bterlson: still curious whether those emu-xrefs are really needed
21:50:02  <bterlson>ToBoolean isn't auto-linked naked I don't think, only when it's called (followed by a paren)
21:51:20  <bterlson>they don't necessarily need the contents filled in, could use the title attribute
21:51:26  <bterlson>although it copies the signature of toboolean which I didn't like
21:54:12  <bterlson>it also capitalizes "The" in "The Typeof Operator" which seems weird
21:55:36  <dilijev>You mean you don't think Capitalization of The Typeof Operator is A Good Thing?
21:56:02  <dilijev>mumble mumble ™
22:16:45  <Domenic>Huh interesting, I'm surprised it overrides the clause capitalization
22:36:02  * Fishrock123quit (Quit: Leaving...)
22:43:04  * bradleymeckquit (Quit: bradleymeck)
22:50:54  <bterlson>Domenic: it doesn't, the clause is title case
22:51:23  <Domenic>bterlson: doesn't seem to be? https://tc39.github.io/ecma262/#sec-typeof-operator
22:51:37  <Domenic>Oh, "The", not "Typeof"
22:51:51  <bterlson>yeah
22:51:56  <Domenic>That seems fine, cross-clause references suddenly breaking into a capital letter seems fairly standard. But shrug.
22:52:09  <bterlson>yes, shrug
23:19:13  * nobsoquit (Quit: nobso)
23:26:20  * bradleymeckjoined