Oggi ho ricevuto errore utilizzando Object.keys perché accidentalmente ho superato il valore dell'oggetto non in questo modo:comportamento Object.keys in cromo e IE 11
var filter = true;
var filterKeys = Object.keys(filter);
In Chrome questo funziona bene, ma in IE 11 ho ottenuto un'eccezione e dopo il debug ha rilevato che in IE 11 Object.keys lanciava un'eccezione Object.keys: l'argomento non è un oggetto.
In questa situazione, IE11 si è comportato meglio perché value true non è realmente valido, ma chrome ha restituito array vuoto. Object.keys è ECMAScript standart e se si guarda a http://www.ecma-international.org/ecma-262/5.1/#sec-15.2.3.14 si dice:
- Se il tipo (O) non è oggetto, un'eccezione TypeError.
Così Qualcuno sa perché implementazione di Google Chrome non si comporta come nella specifica standard ECMAScript, perché ho sempre pensato che tutti i browser moderni dovrebbero attuare ECMAScript a comportarsi nello stesso modo.
Vedere https://code.google.com/p/v8/issues/detail?id=3443#c1, anche https://bugzilla-dev.allizom.org/show_bug.cgi?id=1038545j. –