Proxies and function names: properties that are always non-configurable

Brandon Benvie brandon at
Thu Apr 12 16:36:31 PDT 2012

With Direct Proxies there's no such thing as a fully virtual object.
Virtualized objects can be achieved by just creating a new
empty/placeholder object with the desired invariants ([[prototype]],
[[class]], etc). This is all well and good except it turns a handful of
non-internal properties into invariants as well, mostly the properties
auto-installed on functions. [arguments, name, caller, length] are
non-configurable non-writable, prototype is non-configurable.

With other objects you can mostly manage the problem by creating a new
instance using Object.create since nothing comes preinstalled. This
obviously doesn't work for a functions, nor have I seen semantics on how
inheritance for functions is support to work once we actually have the
ability to do that. Has this been discussed anywhere yet? Have the
semantics of how inheritance for functions is supposed to work in regards
to the above properties?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the es-discuss mailing list