Here are some of the new features (CSS/JavaScript) I noticed when playing with the leaked IE11 build (please note that the build seems quite old to me, probably very near of the RTM version of IE10).

UPDATE 6: For an analysis of the new 9385 build, see this new article

Internet Explorer 11.9385 (new features)

UPDATE 2: WeakMap & __proto__ support

I discovered that IE11 supported WeakMaps (seems to work as expected) and __proto__.

The ugly __proto__ has been there for some time in all the other browsers so that’s not a surprise but this is a bid saddening because it means __proto__ will never disappear from the web.

The way it’s supported is a bit strange. __proto__ is reported like a value property on Object.prototype but if you define a new property on Object.prototype, no object can change its proto anymore.



UPDATE 1: WebGL support coming

I didn’t get webgl working, even by trying using iesl, hlsl and other combinations. So, it seems like WebGL interfaces are defined but not functional at this time (if you are curious, you can find the property list of properties reported on WebGLRenderingContext at the end of the blog post)

UPDATE3: It seems like it’s possible to enable WebGL in IE11 using a registry flag.

As expected, the shaders currently require (see update 4) the IESL format (a restricted version of the HLSL format from DirectX) instead of the GLSL format of OpenGL, which means almost no demo you can find on the web will run unmodified in IE11 for now.

As noted by some people, this may be just a way for the IE team to test their experimental implementation and no assumption should be made on what IE11 will really ship with. The IE team could simply decide to ship with both languages enabled.

UPDATE4: If you don’t put the second runtime registry flag (HLSL_SHADERS) to 1, you can get OpenGL shaders working, which means much more demos available on the web are working.





UPDATE5: Mutation Observers

I discovered that IE11 also added support for mutation observers. This API is a more efficient version of Mutation Events defined in the DOM3 spec.



Support for the standardized CSS Flexbox syntax

The CSS Flexbox was changed soon before the IE10 release and the naming changes didn’t make the cut to IE10. They did in IE11, it seems.



Expose zoom information to JavaScript

Zoomed elements now expose their zoom level throug msContentZoom and, like it’s the case for scrollTop/Left, the zoom level can be reset via msZoomTo(…).



Fullscreen-mode

Internet Explorer seems to have partial support for the Fullscreen API through the msRequestFullscreen(…) method.



Modified navigator objet (mimicking FireFox/Chrome)

Not only the user agent but also some other small things like appName have been modified to look a bit more like Gecko and Webkit.



Depreciate document.all and make it falsy

Like Gecko/Webkit, document.all is now falsy in IE11, even tough the object still exists.



Performance improvements?

Well, that’s possible, but I’m not able to check since I run IE11 in a VM. I guess that like any release they are tweaking their code to new site patterns.



Developer tools have a new ‘Site issues’ tag

I guess it’s the same analyzer you can find on the modern.ie website.



I’ll edit this post if I find some other new things worth noting.

canvas, drawingBufferHeight, drawingBufferWidth, activeTexture, attachShader, bindAttribLocation, bindBuffer, bindFramebuffer, bindRenderbuffer, bindTexture, blendColor, blendEquation, blendEquationSeparate, blendFunc, blendFuncSeparate, bufferData, bufferSubData, checkFramebufferStatus, clear, clearColor, clearDepth, clearStencil, colorMask, compileShader, compressedTexImage2D, compressedTexSubImage2D, copyTexImage2D, copyTexSubImage2D, createBuffer, createFramebuffer, createProgram, createRenderbuffer, createShader, createTexture, cullFace, deleteBuffer, deleteFramebuffer, deleteProgram, deleteRenderbuffer, deleteShader, deleteTexture, depthFunc, depthMask, depthRange, detachShader, disable, disableVertexAttribArray, drawArrays, drawElements, enable, enableVertexAttribArray, finish, flush, framebufferRenderbuffer, framebufferTexture2D, frontFace, generateMipmap, getActiveAttrib, getActiveUniform, getAttachedShaders, getAttribLocation, getBufferParameter, getContextAttributes, getError, getExtension, getFramebufferAttachmentParameter, getParameter, getProgramInfoLog, getProgramParameter, getRenderbufferParameter, getShaderInfoLog, getShaderParameter, getShaderPrecisionFormat, getShaderSource, getSupportedExtensions, getTexParameter, getUniform, getUniformLocation, getVertexAttrib, getVertexAttribOffset, hint, isBuffer, isContextLost, isEnabled, isFramebuffer, isProgram, isRenderbuffer, isShader, isTexture, lineWidth, linkProgram, pixelStorei, polygonOffset, readPixels, renderbufferStorage, sampleCoverage, scissor, shaderSource, stencilFunc, stencilFuncSeparate, stencilMask, stencilMaskSeparate, stencilOp, stencilOpSeparate, texImage2D, texParameterf, texParameteri, texSubImage2D, uniform1f, uniform1fv, uniform1i, uniform1iv, uniform2f, uniform2fv, uniform2i, uniform2iv, uniform3f, uniform3fv, uniform3i, uniform3iv, uniform4f, uniform4fv, uniform4i, uniform4iv, uniformMatrix2fv, uniformMatrix3fv, uniformMatrix4fv, useProgram, validateProgram, vertexAttrib1f, vertexAttrib1fv, vertexAttrib2f, vertexAttrib2fv, vertexAttrib3f, vertexAttrib3fv, vertexAttrib4f, vertexAttrib4fv, vertexAttribPointer, viewport, …