« Bugzilla Issues Index

#179 — S11.1.1_A2.js is invalid

This asserts, this.toString() === toString(). The former calls toString with the global object as thisArg, the latter with undefined as thisArg. The global object is normally [object global]/[object Window] or some such, and hence not [object Undefined].

I think this test case is invalid, but not for the aforementioned reason:
1. ES5.1 doesn't define a global 'toString' function =>
2. 'toString' must be coming in as an unspec'ed browser extension *or* from Object.prototype.toString. The former would make this obviously invalid, and the latter means the global object's prototype is in fact Object.prototype =>
3. Section 15.1 of ES5.1 states:
The values of the [[Prototype]] and [[Class]] internal properties of the global object are implementation-dependent.

=> the test is indeed invalid. I'll disable it shortly, and thanks for reporting this.

Ah, I didn't bother actually checking the spec, and just assumed the global object's prototype chain contained Object.prototype. :)

All implementations except Opera have Window.prototype as the prototype of the global object (and the prototype of that is Object.prototype); Opera has Object.prototype as the prototype of the global object (there is no Window object).

Removed the test case from source control.