The ECMAScript specification for Math.pow
has the following peculiar rule:
- If x < 0 and x is finite and y is finite and y is n
I assume because those circumstances lead the result into complex waters, and ECMAScript is not equipped with imaginary numbers. Specifically, your example should result in something close to 1 + 1.732i
, among other results. (The fact that -2 is also a possible result is besides the point - it is an accident rather than a rule.)