00:38
<Michael Ficarra>
do we want to just talk about all the virtual calls in built-ins?
00:39
<shu>
i figured you'd want to talk about future designs informed by past experience. i suppose we can also talk about mitigation of existing stuff but i think that's less interesting
00:40
<Michael Ficarra>
one of my favourites is Array.prototype.toString (https://tc39.es/ecma262/#sec-array.prototype.tostring) calls "join" virtually, meaning replacing Array.prototype.join changes Array.prototype.toString behaviour
00:46
<Michael Ficarra>
shu: I started a thread for TG3 folks here: https://github.com/tc39/security/issues/7
00:46
<Michael Ficarra>
I don't personally think it's of much concern, but I'm open to hearing from others who do
00:49
<shu>
it's the same shape of risk as adding extra hook points, which as a general category has been responsible for security bugs due optimizing JITs making incorrect assumptions
10:35
<Ashley Claymore>
Looks like there is an issue with: https://tc39.es/ - getting "github page not found"
10:59
<yulia>
Ashley Claymore: hmm that happened 2 days ago and then it went up again..
10:59
<yulia>
we keep getting invalid domain name for it
10:59
<yulia>
https://www.whois.com/whois/www.tc39.es
11:00
<yulia>
i am not sure why it is doing this. might be an issue with our dns provider
11:02
<yulia>
I wrote the chairs, hopefully we can figure out what is going on
11:02
<Ashley Claymore>
thank you!
11:05
<yulia>
this is up though: https://tc39.github.io/
11:08
<Ashley Claymore>
ah good point, direct to source. good idea
12:24
<Jack Works>
https://tc39.es/ecma262/ is 404
12:24
<ryzokuken>
Jack Works: on it 👍️
12:37
<ryzokuken>
Ashley Claymore: Jack Works it's fixed
12:37
<Jack Works>
thanks
17:54
<leobalter>
we're hoping we can actually make this decision as a committee and unblock the proposals that are currently blocked on it

Thanks for the info! I'm +1 to unblock with a pragmatic decision, as you seen to be working on it.

I'm interested in learning more about the topic.

17:56
<leobalter>
I'm glad this topic is being brought to the security team. I'll ping my team to have eyes on it as well.
23:13
<bakkot>
in null[{ toString: () => { console.log('hit') } }] += 1, does it hit the toString or not? SM and ChakraCore think yes; JSC, V8, and engine262 think no
23:14
<bakkot>
I am pretty sure this changed in https://github.com/tc39/ecma262/pull/2267, but test262 still has tests for the old behavior
23:18
<bakkot>
test262 test e.g. https://github.com/tc39/test262/blob/df873eed1a717bb59ac8b40f20cf23f19bafb429/test/language/expressions/compound-assignment/S11.13.2_A7.4_T1.js
23:19
<bakkot>
same question for null[{ toString: () => { console.log('hit') } }]++
23:19
<bakkot>
except in that case SM agrees with everyone else in not evaluating the property
23:20
<bakkot>
or, for that matter, just a plain null[{ toString: () => { console.log('hit') } }], with no assignment at all
23:22
<bakkot>
the RequireObjectCoercible happens at the GetValue, which happens only when actually trying to get the value, whereas the ToString happens during the Evaluation semantics of a[b]: https://tc39.es/ecma262/multipage/ecmascript-language-expressions.html#sec-property-accessors-runtime-semantics-evaluation
23:32
<bakkot>
opened an issue on test262 about this: https://github.com/tc39/test262/issues/3407
23:36
<bakkot>
and ecma262 I guess: https://github.com/tc39/ecma262/issues/2659