00:00:31  * AtumTquit (Quit: AtumT)
00:12:02  * gibson042joined
00:49:34  * annevkquit (Remote host closed the connection)
00:49:34  * linclarkquit (Remote host closed the connection)
00:49:34  * zbranieckiquit (Remote host closed the connection)
01:17:48  * aki_joined
01:18:46  * akirosequit (Ping timeout: 272 seconds)
01:18:47  * aki_changed nick to akirose
01:46:56  <devsnek>does it bother anyone else that there's this inconsistency in having "Own" in the names of object internal slots
01:47:03  <devsnek>and that its inverted for the names exposed on Object
02:38:28  * zbranieckijoined
02:45:21  * zbranieckiquit (Remote host closed the connection)
03:23:01  * aki_joined
03:24:22  * akirosequit (Ping timeout: 268 seconds)
03:24:22  * aki_changed nick to akirose
03:32:07  * annevkjoined
03:49:04  * zbranieckijoined
03:52:26  * linclarkjoined
03:56:06  * tschneidereitjoined
04:36:08  * jmdyckquit (Remote host closed the connection)
04:36:30  * gibson042quit (Ping timeout: 264 seconds)
04:39:21  <ljharb>devsnek: yes
04:39:33  <ljharb>devsnek: i'm suggesting that it start out as an accessor descriptor with a getter of %ThrowTypeError%
04:39:50  <devsnek>oh
04:39:51  <ljharb>and then later it would change to a data property, once it was out of tdz
04:39:57  <devsnek>that sounds hecky
04:40:04  <ljharb>or, we could make a special kind of descriptor that's "everything but get/set/value"
04:40:09  <ljharb>and *that* wouldn't be TDZ'd
04:40:50  <devsnek>decisions like this remind me of the existence of double-equals
04:41:14  <devsnek>although i'll be honest i was considering a new primitive "empty" type :P
04:43:00  <devsnek>i think a better thing might be to take a look at the general property logic we have going on in the spec rn
04:52:14  <Bakkot>the problem with that plan is that you can actually reify the accessor functions, which is :(
04:52:17  <Bakkot>(cf https://github.com/tc39/ecma262/issues/1209#issuecomment-392910280 )
04:56:21  <ljharb>Bakkot: you can already reify ThrowTypeError tho
04:56:27  <ljharb>so this would just be exposing it in yet another place
04:56:49  <ljharb>Bakkot: note that i'm not saying it should be a getter/setter once out of the TDZ
04:57:02  <ljharb>i'm saying it should be reconfigured from accessor to data as part of the module being evaluated
05:00:07  <Bakkot>ah, hm
05:01:42  <Bakkot>except they're non-configurable, and non-configurable things aren't supposed to switch from being accessors to data properties
05:02:14  <Bakkot>that's one of the invariants for exotic objects: https://tc39.github.io/ecma262/#sec-invariants-of-the-essential-internal-methods
05:02:31  <Bakkot>"If P's attributes other than [[Writable]] may change over time or if the property might disappear, then P's [[Configurable]] attribute must be true"
05:02:55  <Bakkot>(of course, proxies can violate that _anyway_, but it still seems like maybe a bad thing)
05:08:26  <ljharb>Bakkot: could we make propertyIsEnumerable work, even though a descriptor isn’t accessible?
05:09:08  <ljharb>like provide a way to check enumerability without needing to get at the whole descriptor
05:09:14  <ljharb>or would that be a major reworking
05:09:25  <Bakkot>We'd have to special case module exotic objects, I think, which in principle is not something allowed by the MOP
05:09:31  <Bakkot>(or extend the MOP, but that's even worse)
05:10:01  <Bakkot>but I'd be ok with it personally; no one in the whole world knows about the MOP, and the intuition that for-in over a module object should work is reasonable
05:10:10  <ljharb>yeah i agree
05:10:55  <Bakkot>though, it might interfere weirdly with proxies for module namespace exotic objects
05:11:24  <Bakkot>e.g. unless we also special case proxies for them, you'd be able to for-in over a namespace object but not a proxy for the namespace object
05:20:19  <devsnek>what is the MOP lol
05:24:20  <Bakkot>meta-object protocol
05:25:00  <Bakkot>Basically all the [[GetOwnProperty]] stuff.
05:25:04  <devsnek>ok
05:25:50  <devsnek>well i think the MOP needs a mop-up
05:29:39  * aki_joined
05:30:00  * akirosequit (Ping timeout: 252 seconds)
05:30:00  * aki_changed nick to akirose
05:56:38  <rkirsling>incidentally I have a GH issue opened to add MOP to our nascent glossary
05:59:47  <rkirsling>because it's thrown around as if it were common CS verbiage but it's really a CLOSism so kind of a "you gotta know what a crumpet is to understand cricket" kinda situation
07:35:49  * aki_joined
07:37:30  * akirosequit (Ping timeout: 272 seconds)
07:37:31  * aki_changed nick to akirose
07:52:17  * pchanjoined
07:55:22  <pchan>hi
07:56:01  <pchan>got questions. Could anyone please reply?
09:42:38  * aki_joined
09:42:54  * akirosequit (Ping timeout: 272 seconds)
09:42:55  * aki_changed nick to akirose
09:43:42  * pchanquit (Ping timeout: 252 seconds)
11:50:21  * aki_joined
11:50:39  * akirosequit (Ping timeout: 268 seconds)
11:50:39  * aki_changed nick to akirose
11:54:45  * jmdyckjoined
12:54:34  * AtumTjoined
13:56:31  * aki_joined
13:57:06  * akirosequit (Ping timeout: 252 seconds)
13:57:07  * aki_changed nick to akirose
15:40:20  * A_D28joined
15:41:33  * A_D28quit (Killed (Sigyn (Spam is off topic on freenode.)))
16:03:43  * aki_joined
16:04:09  * akirosequit (Ping timeout: 252 seconds)
16:04:10  * aki_changed nick to akirose
16:14:12  <devsnek>what if there were a pr to rename stuff like [[DefineOwnProperty]] to [[DefineProperty]]
16:32:26  * Bakkotquit (Ping timeout: 252 seconds)
17:06:36  <devsnek>why is `The result List must contain the keys of all non-configurable own properties of the target object.` an invariant of the ownKeys trap
17:06:53  <devsnek>whats the point of the ownKeys trap even existing in this case
17:08:50  <ljharb>ordering?
17:09:10  <devsnek>whats the point of the invariant
18:09:58  * aki_joined
18:11:08  * akirosequit (Ping timeout: 268 seconds)
18:11:08  * aki_changed nick to akirose
19:32:54  * gibson042joined
20:18:06  * aki_joined
20:18:10  * akirosequit (Ping timeout: 268 seconds)
20:18:16  * aki_changed nick to akirose
22:25:18  * akirosequit (Ping timeout: 252 seconds)
22:26:19  * akirosejoined
23:24:17  * AtumT_joined
23:25:30  <TimothyGu>devsnek: the keyword is non-configurable
23:26:17  <devsnek>TimothyGu: yeah i saw that in there
23:26:21  <TimothyGu>this is important for the web security model for example, specifically with the [Unforgeable] Web IDL annotation
23:27:37  <TimothyGu>what's interesting IMO (and a bit annoying) is that Proxy's invariant enforcers are actually stricter than the spec invariants
23:27:43  <devsnek>i was going to say "if i'm willing to use every trap to simulate a different object why can't i xxx" but then it occured to me
23:27:50  <devsnek>at that point i can just not put the original object as the target
23:28:08  * AtumTquit (Ping timeout: 272 seconds)
23:28:30  <TimothyGu>sure but you still need to respect Object.defineProperty(proxy, …, { configurable: false })
23:28:44  <TimothyGu>i.e., either make it work or throw an exception
23:29:58  <devsnek>just trying to figure out a nice way to inspect values in engine262
23:30:11  <devsnek>all the traps that mutate throw/return false so thats not a problem
23:37:31  * AtumTjoined
23:39:12  * AtumT_quit (Ping timeout: 268 seconds)