From: Thomas 'PointedEars' Lahn on
Garrett Smith wrote:

> That conformance section:
>
> | ..."A conforming implementation of ECMAScript is permitted to provide
> | additional types, values, objects, properties, and functions beyond
> | those described in this specification."
>
> I see a list of "types, values, objects, properties, and functions". Not
> "anything".

If I am understanding correctly that the issue is that the object referred
to by `arguments' would have additional properties, then you have clearly
overlooked the "properties" part in that sentence. That applies to *all*
properties of *all* objects.

> A conforming implementation that features existing built-in Object, is
> not permitted to provide additional properties to that Object. AIQB:
>
> | 15.2.5 Properties of Object Instances
> | Object instances have no special properties beyond those inherited
> | from the Object prototype object.

That is not what this means, as your interpretation would directly
contradict the Conformance section, and render several major if not all
past and present implementations not compliant, which is a bit hard to
believe.

>> [...]
>> No, an arguments object may have properties beyond those explicitly
>> specified.
>
> Not if it is an Object instance.

ISTM you are misinterpreting the Specification. That you are follows
implicitly from the existence of `arguments.caller' in some
implementations, which is ECMAScript-compliant behavior as well. And what
about the properties that JavaScript adds to Object instances? Are you
declaring JavaScript non-compliant here?


PointedEars
--
Danny Goodman's books are out of date and teach practices that are
positively harmful for cross-browser scripting.
-- Richard Cornford, cljs, <cife6q$253$1$8300dec7(a)news.demon.co.uk> (2004)