ECMAScript DontEnum attribute | MDNとか、_.extend should work-around JScript’s DontEnum bug ? Issue #60 ? jashkenas/underscoreとか、internet explorer - IE8 bug in for-in JavaScript statement? - Stack Overflowあたり参照。well known JScript bug らしい。
Moment.jsの2.2.xでは、IE8でmoment().valueOf()をしてもtime valueが返ってこないというissueがあります。developでは修正されているので、たぶんもうすぐ出るであろう2.3では修正されているはず。
なぜIE8でvalueOfがうまく動かなかったのかは、どうも上記の問題によるものみたい。Objectのプロパティ、toStringとかvalueOfとかが、列挙不可になっているため、for in のループでそれらのプロパティが入ってこない。なので、下記のようにObjectのプロパティを別途extendするようになった。
1 | function extend(a, b) { |
というメモ。