Странное поведение "getter" в IE9 при обращении к свойству `Number.prototype` из литерала числа

Object.defineProperty(Number.prototype, 'foo', {
  get: function () { return this }
})

console.log(10.5.foo)
console.log(10..foo)   // 0 in IE9!
console.log(10.0.foo)  // 0 in IE9!
console.log(10.01.foo)
console.log((10).foo)  // 0 in IE9!
var x = 10
console.log(x.foo)     // 0 in IE9!

Может ли кто-нибудь объяснить такое поведение и/или предложить обходной путь?

jsfiddle.net/yr7hQ/

9
задан Rob W 27 December 2011 в 15:33
поделиться