Asen said:
Thomas said:
Asen Bozhilov wrote:
The key words/parts here being "non-normative overview" and "expected
that the computational environment of an ...", which you
overlooked/omitted, but which change both the level of requirement and
the meaning of the text.
Non-normative sections in normative documents, provide additional
information about normative sections of document.
Nonsense.
[...]
The description of `for-in` statement is part of normative section of
ECMA-262 standard. That description doesn't have information, which
interfere with non-normative information of ECMA-262 standard. While
there isn't explicit information about `for-in` behavior with host
objects, that behavior is out of scope of specification.
Non sequitur. There is no explicit information about `for-in' behavior
with native objects either.
Enumeration of properties of host objects depend by iterator of host
object.
No argument about that.
ECMA-262 describe semantic only of native objects.
It does not describe how "the next property ..." of native objects is to be
retrieved either. In fact, it says:
| 8.6 The Object Type
|
| An Object is an unordered collection of properties. [...]
Again, this has nothing to do with whether an object is a host object or a
native object.
Except case where explicit say regard host objects.
You have it backwards. Except in cases where the Specification explicitly
refers to native objects, or host objects, it applies to *all* objects.
{DontEnum} attribute is defined by `8.6 The Object Type` in table, which
is part of `8.6.1 Property Attributes`. The whole section 8.6 describe
semantic of native objects.
No, it describes the semantics of values of the Object type, which are all
values that are not of one of the other types. That would *include* host
objects, of course. (It should be obvious that otherwise the for-in
algorithm did not make any sense, as there is no provision for host objects
whatsoever in it, and a language feature must be universally applicable
unless explicitly stated otherwise.)
Regarding that section, `for-in` behavior is related with native objects
not with host objects.
You are wrong. Host objects can be either of the Object type or (per the
Conformance section) of a object type not specified in ECMAScript. In any
case, in a *conforming* implementation the object still must implement the
[[DontEnum]] property attribute as specified.
In particular, a host object that is callable, like that referred to by
`document.open', MUST be of the Object type in a *conforming*
implementation; otherwise a TypeError exception would need be thrown when
calling it, per ES3F/ES5, section 11.2.3, step 4, as Type(...) would not be
`Object'.
Certainly true. Crash like that is a bug in environment.
Yes, the implementation might not be conforming. Unfortunately, it is
impossible to tell without knowing what the argument `x' of the crash()
method stored when the method was called.
Environment should avoid unsafe operations, because OS can terminate that
process immediately.
Gibberish.
Regards and happy Easter.
Thanks, you too.
PointedEars