GoogleChrome(27.0.1425.2 dev-mあたり) の __proto__ 挙動が変わった

コミットログより、以下2点が変更された模様

  • "__proto__"プロパティを Object.prototype へ
  • JSON.parse 時に "__proto__" プロパティを特別扱いしない

これで、__proto__プロパティの不思議 - hogehogeJSON.parse('{"__proto__": null}') - hogehogeにおけるv8エンジンでの挙動が修正され、FirefoxSpiderMonkeyに似た動きとなる。

Developer Tools の Console の挙動

var o = {};
Object.defineProperty(o, "__proto__", { value: "__PROTO__" });
// "TypeError"

などと、"__proto__"に文字列(おそらくプリミティブ値)をセットしようとすると、コンソール上、"TypeError" と出るが、実際には正しくセットされている。Consoleの表示上の問題だと思われ、v8エンジンの問題ではないだろう。(報告しておいた)