> On Nov 26, 2015, at 12:20 AM, Axel Rauschmayer <rausc...@icloud.com> wrote:
> 
> I realize that this is nit-picky, but the name `RequireObjectCoercible` feels 
> wrong (and not intention-revealing) in the following context (which is not 
> about objects at all):
> 
> 1. Let O be ? RequireObjectCoercible(`this` value).
> 2. Let S be ? ToString(O).
> 
> Something like `RequireActualValue` or `ThrowIfUndefinedOrNull` seems like a 
> better choice here.

RequireObjectCoercible was introduced in ES5 for a few situation (for example, 
on the MemberExpression to the left of a dot operator) where previously a 
ToObject had been performed, but where the object conversion was no longer 
desired. For compatibility reasons, ToObject's throw on undefined/null behavior 
needed to be preserved and that is what RequireObjectCoercible does. It throws 
in the exact same cases where ToObject would through. 

`RequireActualValue` seems less descriptive. `ThrowIfUndefinedOrNull` would be 
ok and more explicit about exactly what it actually does.  However it is 
somewhat less descriptive of the original intent that it is testing whether the 
argument is something that is coercible via ToObject.

Allen
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to