Напрашивается вопрос:
раз уж есть стандартное средство получить __proto__
var x = {};
alert(Object.getPrototypeOf(x) === x.__proto__);
и есть способ создать новый объект, с указанным __proto__
var x = Object.create(Function.prototype);
alert(x.__proto__ === Function.prototype);
то почему стандарт не предусматривает метод для изменения __proto__ созданного объекта?