do not assume callee.caller always exists
Linux fixes to emrun. Don't fail if glxinfo is not installed, and look for Chrome in 'google-chrome' executable name as well. Don't fail if browser is not found.
make sure to give Ids to split blocks in relooper
disable test_emscripten_log in spidermonkey due to breakage; issue #1970
properly handle getParameter returning null when it means a null object (e.g., no buffer is bound) and not an invalid name
fix output in glGetFramebufferAttachmentParameteriv
disable fc in default benchmarks
Minor optimization to FFP emulation: Use integers instead of strings as key to FFP matrix file. This allows using arrays instead of maps to store the file, and avoids unnecessary string operations.
Optimize GL FFP emulation layer by omitting redundant glUseProgram for identical shader programs.
Optimize glEnableClientState by avoiding it to be called with different param count.
Optimize glBindBuffer when GL emulation modes are not used. In that case, currently bound buffers do not need to be tracked.
Make caching of last bound GL_ARRAY_BUFFER in FFP emulation mode safe and always enable that optimization.
Simplify verbose object dereference chains in GL library by consistently using the global name GLImmediate over the GL.immediate form.
Simplify verbose object dereference hierarchy in library_gl.js by storing global WebGL context in the variable GLctx in addition to Module.ctx.