| // Copyright 2009 the Sputnik authors. All rights reserved. |
| // This code is governed by the BSD license found in the LICENSE file. |
| |
| /*--- |
| description: If base < 0 and base is finite and exponent is finite and exponent is not an integer, the result is NaN. |
| esid: sec-applying-the-exp-operator |
| ---*/ |
| |
| |
| var exponent = new Array(); |
| var base = new Array(); |
| base[0] = -1.7976931348623157E308; //largest (by module) finite number |
| base[1] = -Math.PI; |
| base[2] = -1; |
| base[3] = -0.000000000000001; |
| var basenum = 4; |
| |
| exponent[0] = -Math.PI; |
| exponent[1] = -Math.E; |
| exponent[2] = -1.000000000000001; |
| exponent[3] = -0.000000000000001; |
| exponent[4] = 0.000000000000001; |
| exponent[5] = 1.000000000000001; |
| exponent[6] = Math.E; |
| exponent[7] = Math.PI; |
| |
| var exponentnum = 8; |
| |
| for (var i = 0; i < basenum; i++) { |
| for (var j = 0; j < exponentnum; j++) { |
| assert.sameValue( |
| Math.pow(base[i], exponent[j]), |
| NaN, |
| "(" + base[i] + ", " + exponent[j] + ")" |
| ); |
| } |
| } |