15:53
<Michael Ficarra>
we really need to do something about the NewTarget special form
15:54
<Michael Ficarra>
I just want to get rid of it entirely and use GetNewTarget() and lexicalEnvironmentRecord.[[NewTarget]]
15:57
<bakkot>
nah it's fine
15:57
<bakkot>
it's no worse than "the this value"
16:03
<Michael Ficarra>
there's no need for the special form though
16:03
<Michael Ficarra>
we already have (and use) GetNewTarget()
16:04
<Michael Ficarra>
we just use hand-wavey prose to set the [[NewTarget]] slot, and it makes it sound like they're two distinct concepts
16:05
<bakkot>
hm
16:06
<bakkot>
I feel like it's at least somewhat reasonable to write the "I am using new.target in a builtin" and "I am defining the semantics of new.target" forms in a different way
16:07
<Michael Ficarra>

When invoked with [[Construct]], the this value is uninitialized, the [[Construct]] argumentsList provides the named parameters, and the [[Construct]] newTarget parameter provides the NewTarget value.

16:07
<Michael Ficarra>
you can't tell me that that's a good way to say Set _lexicalEnvironmentRecord_.[[NewTarget]] to _newTarget_.
16:07
<Michael Ficarra>
same here:
16:07
<Michael Ficarra>

The this value is uninitialized, argumentsList provides the named parameters, and newTarget provides the NewTarget value.

16:13
<bakkot>
you can't tell me that that's a good way to say Set _lexicalEnvironmentRecord_.[[NewTarget]] to _newTarget_.
that's because it's not doing that
16:14
<bakkot>
the [[NewTarget]] slot is only used for user code
16:14
<Michael Ficarra>
so they are two separate concepts then?
16:14
<bakkot>
they could be collapsed
16:15
<bakkot>
but we write them in different ways
16:16
<bakkot>
mostly, afaict, because we don't set up environment records for built-in functions
16:16
<bakkot>
only for user code
16:16
<bakkot>
so it is not trivial to just re-use the ambient lexical environment
21:31
<jmdyck>
no editor call this week, I take it
21:57
<ljharb>
nope, generally not during plenary week