Данный код:
Object.prototype.has=Object.prototype.hasOwnProperty
delete Object.prototype.hasOwnProperty
a={a: 1}
console.log(
a.has("a")
)
//>>>> node.js:784
//>>>> return NativeModule._source.hasOwnProperty(id);
//>>>> ^
//>>>> TypeError: undefined is not a function
-- это валидный JS-код. Он работает, в том числе и на V8. Однако, нода выдает мне эту ахинею. Поведение это противоречит семантике JS, это реальный WTF.
Как это все говно пофиксить? Можно ли? И в чем вообще прикол? Почему это происходит?