Objeto localStorage de JavaScript roto en IE11 en Windows 7

loslocalStorage El objeto en Internet Explorer 11 (compilación de Windows 7) contiene representaciones de cadena de ciertas funciones en lugar de llamadas nativas como cabría esperar.

Esto solo se rompe con JavaScript de vainilla y los sitios como JSFiddle no tienen problemas con este código, pero sospecho que es porque haylocalStorage Polyfills en su lugar que lo corrijan.

Tome este código de página HTML por ejemplo:

<!DOCTYPE html>
<script>
  localStorage.setItem('test', '12345');
  alert(localStorage.getItem('test'));
  localStorage.clear();
</script>

Esto funciona perfectamente bien en todos mis navegadores instalados, excepto en IE11. Se produce un error en la primera línea 'SCRIPT5002: Función esperada'.

Echando un vistazo a qué tipo desetItem&nbsp;La función en realidad está en la consola de herramientas para desarrolladores de IE, ¿indica que es una cadena ...?

    typeof localStorage.setItem === 'string' // true

Imprimiendo la cadena parasetItem&nbsp;muestra lo siguiente:

"function() {
var result;
callBeforeHooks(hookSite, this, arguments);
try {
result = func.apply(this, arguments);
} catch (e) {
callExceptHooks(hookSite, this, arguments, e);
throw e;
} finally {
callAfterHooks(hookSite, this, arguments, result);
}
return result;
}"

Curiosamente, no todas las funciones han sido reemplazadas por cadenas, por ejemplo, el correspondientegetItem&nbsp;La función es de hecho una función y funciona como se espera.

    typeof localStorage.getItem === 'function' // true

Cambiar el modo de documento (emulación) a 10 o 9 aún no resuelve el problema y ambos generan el mismo error. Cambiar el modo de documento a 8 da el siguiente error 'El objeto no soporta esta propiedad o método.'que se espera ya que IE8 no soportalocalStorage.

¿Alguien más tiene el mismo problema con IE11 en Windows 7 donde ellocalStorage&nbsp;objeto parece 'roto / corrupto'?