Thomas 'PointedEars' Lahn said:
Those extensions are mostly not compliant with ECMAScript.
Depending on how one views extensions to a standard vs. compliance
with it. If all requirements of the standard are complied with, the
existence of further features would not make the extended language
uncompliant ... unless "no further features" *is* a requirement
of the standard. I don't believe it is for ECMAScript, quite the
contrary, in fact.
There is a difference between extending the syntax of the language
(which only IE does, with its conditional compilation features) and
extending the runtime environment that, syntactically correct,
programs are run in. The runtime environment is specified by the
standard, but not exclusively. The standard allows for extensions.
It even expects them.
Which is why it does not implement ECMAScript 3 (per specification).
ECMA262, 3rd edition (thanks), states (section 4):
---
ECMAScript as defined here is not intended to be computationally
self-sufficient; indeed, there are no provisions in this
specification for input of external data or output of computed
results. Instead, it is expected that the computational environment
of an ECMAScript program will provide not only the objects and other
facilities described in this specification but also certain
environment-specific host objects, whose description and behaviour
are beyond the scope of this specification except to indicate that
they may provide certain properties that can be accessed and certain
functions that can be called from an ECMAScript program.
---
A later note, from section 15, is:
---
NOTE Implementations that add additional capabilities to the set of
built-in functions are encouraged to do so by adding new functions
rather than adding new parameters to existing functions.
---
The ECMAScript standard writers *expect* implementations to have an
environment that extends that specified by the standard, while still
being compatible.
There is only one ECMAScript (with currently 4 possible editions).
Yes. It is a specification (or four).
There are several implementations of languages that comply with this
specification. Each is used in an environment where the standard-
specified runtime environment is extended with host objects and
non-standard properties.
Any extension/omission of it that is not allowed by the
specification does not result in an (compliant) ECMAScript
implementation, strictly speaking.
I disagree with this. Compliance is possible while also including
extensions, because the standard is not written to exclude extensions.
And certainly the languages are not the same and/or cannot be used
as synonyms which was the question here.
That is correct. There is no language called "Javascript" (lower case
"s").
Should anyone dare to use the word anyway, we'll just have to find a
meaning for it. I suggest "a generalization over ECMA-262-compliant
scripting languages".
/L