Don't redefine console if it already exists like in Chrome worker.
fixed console detection so it does not throw
tested in Chrome and Firefox
Change compile options for MinSizeRel
Remove "OES" extensions from GL functions when using GetProcAddress
Provide better implementation of localeconv and fix logic error in allocate

This allocates more space to the structure returned by localeconv. This fixes
an error caused by some locale functions (specifically moneypunct_byname::init
trying to access members of the lconv struct beyond the first and dereferencing
invalid pointers. This also fixes a bug in allocate() which occurred when
allocating a single-typed array of data of type size greater than one byte.
The function had been incrementing its index into the array by the byte size,
causing it to skip elements in arrays of larger type sizes. Fixes issue #2134.
Correct syntax of allocate function

Fix mistaken syntax for use of allocate and restore original, very strange syntax.
Formatting fix and add test
strict fix: Duplicate key in object literal.
strict fix: Can't use octal constants.
fix sanity tests
update browser.test_matrix_identity
When LEGACY_GL_EMULATION is enabled, we cannot use WebGL VAO extension effectively, since we need to maintain the VAO state in the emulation layer to be able to programmatically construct the appropriate VBOs for rendering. Therefore only use WebGL VAO extension only when LEGACY_GL_EMULATION is not set. (An alternative could be to glGet() the VAO state when bound, or to maintain a shadow cache alongside the VAOs in the emulation layer, but that wholly defeats the performance purposes of VAOs, so it's the same to just never use the VAO extension when emulating). This fixes the browser GL emulation VAO tests.
fuzzing improvements
add fuzz testcase with noalias surrounding an i64 that must be legalized
enable indirectbr tests in fastcomp
strict fix: Don't define functions within conditionals or try blocks.
Merge pull request #2143 from waywardmonkeys/strict-fixes

Strict fixes
tolerate negative values of precision in printf, fallback to default precision
Correct some function dependencies to address unresolved symbols in tests.
Squashed commit of the following:

commit e2a8165560c7ec6be2d5650e0a3c6a4b520d1f56
Author: Joel Croteau <jcroteau@gmail.com>
Date:   Fri Feb 21 01:40:50 2014 -0800

    Fix indentation in fillMouseEventData

commit a5d620164e2ab7cb7ba61803c1eedb53f888f4cb
Author: Joel Croteau <jcroteau@gmail.com>
Date:   Thu Feb 20 23:56:01 2014 -0800

    Remove dependency on Browser.getMovementX/Y

commit 2e4f0a4c5fc9ab1857e33862c49e20c1418320c2
Author: Joel Croteau <jcroteau@gmail.com>
Date:   Thu Feb 20 10:27:52 2014 -0800

    Fix error that was causing FillMouseEventData to fail with SAFE_HEAP enabled

    The parentheses without semicolons generated when using SAFE_HEAP
    caused the compiled code to generate SAFE_HEAP_STORE is not a function
    errors.

commit 470dbf6bcb3f88c809b3fea41e197680eda08c7e
Author: Joel Croteau <jcroteau@gmail.com>
Date:   Thu Feb 20 07:12:02 2014 -0800

    Fix bug causing incorrect movement values in mouse events

    This adds code to correctly set the movementX and movementY members
    of EmscriptenMouseEvents sent to callback functions by the HTML5
    event library. movementX and movementY are not members of the base
    HTML5 mouse event, so we need to add extra code to retrieve them
    for our events.