diff options
author | Alon Zakai <alonzakai@gmail.com> | 2014-01-08 16:11:23 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2014-01-08 16:11:23 -0800 |
commit | be066182974f44a6efce0cb6339d0b15982182b0 (patch) | |
tree | f8ae407b17e4f34fbf5dc692ce240877bba7bd86 | |
parent | ed095a832d015fb8523d643d2b311124e000bfdf (diff) |
verify imul correctness, workaround for webkit bug 126345; closes #1991
-rw-r--r-- | src/preamble.js | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/preamble.js b/src/preamble.js index f9fccdf6..ac6ee7b3 100644 --- a/src/preamble.js +++ b/src/preamble.js @@ -1090,7 +1090,8 @@ Module['writeAsciiToMemory'] = writeAsciiToMemory; {{{ reSign }}} #if PRECISE_I32_MUL -if (!Math['imul']) Math['imul'] = function imul(a, b) { +// check for imul support, and also for correctness ( https://bugs.webkit.org/show_bug.cgi?id=126345 ) +if (!Math['imul'] || Math['imul'](0xffffffff, 5) !== -5) Math['imul'] = function imul(a, b) { var ah = a >>> 16; var al = a & 0xffff; var bh = b >>> 16; |