T
Thomas 'PointedEars' Lahn
^^^^^^^^^^^^^^Thomas said:Matt said:The only requirement is that the calling code should always be able toThomas said:Nonsense. The Specification says the argument object MUST be created
when control enters an execution context for function code
act is if it had been created. [...]
That is _not_ what the ECMAScript Language Specification, Edition 3 Final
says. It describes what conforming implementations MUST implement, and
what they also MAY implement. What that means is made very clear,
starting with its Conformance section.
It is (like any other specification) an *implementation* specification,
_not_ a behavioral implementation; believe it or not.
s/implementation/specification/
And here's the proof for those who think they know better:
,-[ECMAScript Language Specification, Edition 3 Final]
|
| 1 Scope
|
| This Standard defines the ECMAScript scripting language.
|
| 2 Conformance
|
| A conforming implementation of ECMAScript must provide and
^^^^^^^^^^^^^^^^
| support all the types, values, objects, properties, functions, and
^^^^^^^^^^^^^^^ ^^^^^^^ ^^^
| program syntax and semantics described in this specification.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| A conforming implementation of this International standard shall interpret
| characters in conformance with the Unicode Standard, Version 2.1 or
| later, and ISO/IEC 10646-1 with either UCS-2 or UTF-16 as the adopted
| encoding form, implementation level 3. If the adopted ISO/IEC 10646-1
| subset is not otherwise specified, it is presumed to be the BMP subset,
| collection 300. If the adopted encoding form is not otherwise specified,
| it presumed to be the UTF-16 encoding form.
|
| A conforming implementation of ECMAScript is permitted to provide
| additional types, values, objects, properties, and functions beyond
| those described in this specification. In particular, a conforming
| implementation of ECMAScript is permitted to provide properties
| not described in this specification, and values for those properties,
| for objects that are described in this specification.
|
| A conforming implementation of ECMAScript is permitted to support program
| and regular expression syntax not described in this specification. In
| particular, a conforming implementation of ECMAScript is permitted to
| support program syntax that makes use of the “future reserved wordsâ€
| listed in section 7.5.3 of this specification.
and
| 10.1.6 Activation Object
|
| When control enters an execution context for function code, an object
| called the activation object is created and associated with the execution
| context. The activation object is initialised with a property with name
| arguments and attributes { DontDelete }. The initial value of this
| property is the arguments object described below.
| 10.1.8 Arguments Object
|
| When control enters an execution context for function code, an arguments
| object is created and initialised as follows:
| [description of the features of the arguments object]
Nothing more, nothing less.
PointedEars