Math.imul()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The Math.imul()
static method returns the result of the C-like 32-bit multiplication of the two parameters.
Try it
Syntax
Math.imul(a, b)
Parameters
Return value
The result of the C-like 32-bit multiplication of the given arguments.
Description
Math.imul()
allows for 32-bit integer multiplication with C-like semantics. This feature is useful for projects like Emscripten.
Because imul()
is a static method of Math
, you always use it as Math.imul()
, rather than as a method of a Math
object you created (Math
is not a constructor).
If you use normal JavaScript floating point numbers in imul()
, you will experience a degrade in performance. This is because of the costly conversion from a floating point to an integer for multiplication, and then converting the multiplied integer back into a floating point. However, with asm.js, which allows JIT-optimizers to more confidently use integers in JavaScript, multiplying two numbers stored internally as integers (which is only possible with asm.js) with imul()
could be potentially more performant.
Examples
Using Math.imul()
Math.imul(2, 4); // 8
Math.imul(-1, 8); // -8
Math.imul(-2, -2); // 4
Math.imul(0xffffffff, 5); // -5
Math.imul(0xfffffffe, 5); // -10
Specifications
Specification |
---|
ECMAScript Language Specification # sec-math.imul |
Browser compatibility
BCD tables only load in the browser
See also
- Polyfill of
Math.imul
incore-js
- Emscripten on Wikipedia