JavaScript may not even have been used.
Really? Which browser, because the language's syntax won't stand for a -
There is not *the* language with regard to browsers, unless you consider
"JavaScript" to be a stand-in for "ECMAScript (implementations)", which is
wrong.
case - clause inside a Block statement (and a - switch - isn't much use
without at least one - case - clause), so there should have been a
syntax error to prevent compilation, and so prevent any execution.
I think he meant
switch (this.bar)
{
case undefined:
…
}
where the object referred to by `this' had a `foo' property instead. Only
that in this case `foo' and `bar' were much more similar.
Barring `this' referring to a host object or `bar' being a specially
designed accessor property¹, any conforming implementation of ECMAScript Ed.
1 to 5.1 would execute that code without throwing an exception, with or
without the `case undefined' clause, because you can attempt to access any
property of the object referred to by `this' or the object converted from
the value of `this' (ES 5.x strict mode) without it throwing an exception.
Accessing a non-existing property merely results in `undefined'. (I am
presently not aware of any feature in ES 5.1 that would change that
behavior. Strict mode is not it. SpiderMonkey's __noSuchMethod__ property²
only allows it for method calls. ES Harmony is going to allow it with
dynamic proxies, but not on regular objects.³)
¹ Object.defineProperty(this, "bar", {
get: function () {
throw new TypeError();
}
});
² this.__noSuchMethod__ = function (id, args) {
throw new Error(id + "(" + args.join(", ") + ")");
};
this.bar();
³ var o = Proxy.create({
get: function (rcvr, name) {
if (name == "bar")
{
throw new TypeError();
}
}
}, this);
o.bar;
See also
<
S69WbK>
However, the situation you describe, of mistyping a keyword and still
having code execute is a possibility. One example would be mistyping -
if - to give:-
id(x)
{
y = 12;
}
- which would produce a runtime error, "id is not a function", rather
than a syntax error.
[…]
While this is valuable information indeed, I think you have misunderstood
the OP.
PointedEars