Internet Explorer 11’s leaked build (new features)
- UPDATE 6: For an analysis of the new 9385 build, see this new article
- UPDATE 2: WeakMap & __proto__ support
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.
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(…).
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, …