> On Oct 24, 2015, at 5:45 PM, Mark S. Miller <erig...@google.com> wrote:
>
>
>
> On Sat, Oct 24, 2015 at 8:00 PM, Sebastian McKenzie <seb...@gmail.com
> <mailto:seb...@gmail.com>> wrote:
...
> But this check is performed at step 10 whereas the super constructor is
> actually evaluated at step 7.
>
> Is my reading correct? If so, to me this behaviour seems quite unexpected.
>
> I'm surprised. Good catch! Frankly, this case had never occurred to me and I
> do not remember discussing it. I would certainly prefer that it be an error
> without constructing twice.
>
>
>
>
> Any insight (or correction) is extremely appreciated, thank you!
Sebastian, you reading is correct.
Mark, I’m pretty sure that I brought attention to this in some venue and there
was agreement that the possibility of observable side-effects with post call
error check really didn’t matter as long as implementations concisely followed
the spec. and all did it that way.
But, I agree that pre-check seems more intuitive. I think it ended of this way
largely because within the spec. the check for attempting to rebind this only
occurs within the BindThisValue abstract operation. So doing the post call
check was the easier think to specify (and we were working against the clock at
that time). To do a pre-check we’d have to add an additional internal method
to FunctionEnviornmentRecord (and probably also replace the check in
BindThisValue with an assertion).
Such a change for ES2016 seems reasonable to me.
Allen
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss