Erik Arvidsson (2013-07-05T01:08:29.000Z)
Yeah, these test all look incorrect to me. IE11 implements an older draft
where __proto__ was a magic property.
On Jul 4, 2013 6:10 PM, "David Bruant" <bruant.d at gmail.com> wrote:

> Hi,
>
> So, there are standard tests now for ES6!
> http://samples.msdn.microsoft.**com/ietestcenter/#javascript<http://samples.msdn.microsoft.com/ietestcenter/#javascript>
>
> I'd like to discuss some of the __proto__ tests at
> http://samples.msdn.microsoft.**com/ietestcenter/Javascript/**
> testcases__proto_.html<http://samples.msdn.microsoft.com/ietestcenter/Javascript/testcases__proto_.html>
>
>
> # 3.1.1-10 Object.freeze(Object.**prototype) disables __proto__
>
> function testcase() {
>   Object.freeze(Object.**prototype);
>   var a = new Object();
>   a.__proto__ = { y: 2 };
>   return a.y === undefined;
> }
>
> I'm not sure I see why this test should succeed. Freezing "a" should
> prevent its [[Prototype]] from being changed, but I don't see why it would
> be the case for Object.prototype.
>
> (same for 3.1.1-9 for Object.seal)
>
>
> # 3.1.1-11    [[DefineOwnProperty]] UnderScoreProtoEnabled is set to true
> when Object.prototype is set with default values
>
> function testcase() {
>     Object.defineProperty(Object.**prototype, "__proto__", { writable:
> true, enumerable: false, configurable: true });
>
>     var obj = {};
>     obj.__proto__ = { x: 10 };
>     return obj.x === 10;
> }
>
> I don't fully understand this test case. I think that overriding
> Object.prototype.__proto__ with a data attribute should remove its magic.
>
> (same for 3.1.1-7, 3.1.2-4-1+bcd )
>
>
> # 3.1.1-4    Object.prototype.__proto__ is data property with
> {writable:true, enumerable:false, configurable:true, value:null} attributes
>
> function testcase() {
>     var desc = Object.**getOwnPropertyDescriptor(**Object.prototype,
> "__proto__");
>     return desc.writable === true &&
>         desc.enumerable === false &&
>         desc.configurable === true &&
>         desc.value === null;
> }
>
> ... hmm... I admire the sense of humor of whoever wrote that test.
> TC39 Meeting notes from May 2013:
> https://github.com/rwldrn/**tc39-notes/blob/master/es6/**
> 2013-05/may-21.md#**consensusresolution-5<https://github.com/rwldrn/tc39-notes/blob/master/es6/2013-05/may-21.md#consensusresolution-5>:
>
>>  __proto__ is an accessor on Object.prototype.
>>
>
>
>
> # 3.1.1-6 Modification of Object.prototype.__proto__ causes
> UnderScoreEnabled to be set to false. Setting it to {}
>
> function testcase() {
>     Object.defineProperty(Object.**prototype, "__proto__", {});
>
>     var obj = new Object();
>     obj.__proto__ = { y: 2 };
>     return obj.y === undefined;
>
> }
>
> I believe the Object.defineProperty line is a no-op, so the test should
> fail.
>
>
> # 3.1.2-2-14b  [[Put]] __proto__ with value {y:2} on window object
>
> function testcase() {
>     window.__proto__ = { y: 2 };
>     return window.y === undefined;
> }
>
> window is not part of ECMAScript. This test might as well throw a
> ReferenceError.
> As far as the global object, I don't think it's status on [[Prototype]] is
> very clear from a standard standpoint, so I would recommend not having
> tests for that.
>
>
> I only looked at the tests failing in Firefox, there are probably other
> errors.
> It would be good if the tests were reviewed carefully *before* becoming
> part of any sort of "conformance" test suite.
>
> David
> ______________________________**_________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/**listinfo/es-discuss<https://mail.mozilla.org/listinfo/es-discuss>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20130704/eef5b9ec/attachment.html>
github at esdiscuss.org (2013-07-12T02:27:45.766Z)
Yeah, these test all look incorrect to me. IE11 implements an older draft where `__proto__` was a magic property.