🎄
ENCA 15日目: typeof の implementation-defined を削除
 typeof の implementation-defined を削除
歴史的経緯から typeof の結果に implementation-defined が含まれていました。
| Type of val | Result | 
|---|---|
| Undefined | "undefined" | 
| Null | "object" | 
| Boolean | "boolean" | 
| Number | "number" | 
| String | "string" | 
| Symbol | "symbol" | 
Object (ordinary and does not implement [[Call]]) | 
"object" | 
Object (standard exotic and does not implement [[Call]]) | 
"object" | 
Object (implements [[Call]]) | 
"function" | 
Object (non-standard exotic and does not implement [[Call]]) | 
Implementation-defined. Must not be "undefined", "boolean", "function", "number", "symbol", or "string". | 
そして実際に Internet Explorer 10 で "unknown" を返すオブジェクトが存在しました。
今となってはこの仕様は不要であるということで、2019年3月にこの implementation-defined を取り除く変更が承認されました。
Discussion