06:54
<Aapo Alasuutari>

RegExpBuiltinExec is of the opinion that reading and writing the "lastIndex" property of a native RegExp object can trigger user-code, but is that really the case? I at least cannot figure out a case for that: The property is an unconfigurable own property of each RegExp object; it is writable, but it shouldn't be possible to turn it into an accessor property or unset its [[Value]] so as to make the property lookup go into the prototype chain.

Is there some other case that I'm missing here?

07:08
<Ashley Claymore>
The usercode warnings are pessimistic, spec text needs to opt-out. So maybe just that 
07:09
<Aapo Alasuutari>
Yeah, I'm wondering if this is a case where I should open an editorial PR to add the opt-outs.
07:10
<Aapo Alasuutari>
(Well, that and also I'm wondering if in my engine code I need to be aware of possible GC points there.)
07:15
<Ashley Claymore>
I agree with your analysis that this wouldn't trigger usercode
07:16
<Ashley Claymore>
the property is installed when the regexp is created and it's a non configurable property. And the internal slot is checked for before this AO is called 
07:20
<Ashley Claymore>
Unless it's the ToNumber call, rather than the Get
07:21
<Aapo Alasuutari>
Yeah, the ToLength call absolutely can trigger UC.
07:21
<Aapo Alasuutari>
And the Set calls can still throw errors.
07:30
<Aapo Alasuutari>
https://github.com/tc39/ecma262/pull/3636