Index: src/math.js |
=================================================================== |
--- src/math.js (revision 6174) |
+++ src/math.js (working copy) |
@@ -44,26 +44,26 @@ |
// ECMA 262 - 15.8.2.1 |
function MathAbs(x) { |
if (%_IsSmi(x)) return x >= 0 ? x : -x; |
- if (!IS_NUMBER(x)) x = ToNumber(x); |
+ if (!IS_NUMBER(x)) x = NonNumToNum(x); |
Lasse Reichstein
2011/01/05 13:32:14
Call it NonNumberToNumber.
|
if (x === 0) return 0; // To handle -0. |
return x > 0 ? x : -x; |
} |
// ECMA 262 - 15.8.2.2 |
function MathAcos(x) { |
- if (!IS_NUMBER(x)) x = ToNumber(x); |
+ if (!IS_NUMBER(x)) x = NonNumToNum(x); |
return %Math_acos(x); |
} |
// ECMA 262 - 15.8.2.3 |
function MathAsin(x) { |
- if (!IS_NUMBER(x)) x = ToNumber(x); |
+ if (!IS_NUMBER(x)) x = NonNumToNum(x); |
return %Math_asin(x); |
} |
// ECMA 262 - 15.8.2.4 |
function MathAtan(x) { |
- if (!IS_NUMBER(x)) x = ToNumber(x); |
+ if (!IS_NUMBER(x)) x = NonNumToNum(x); |
return %Math_atan(x); |
} |
@@ -71,32 +71,32 @@ |
// The naming of y and x matches the spec, as does the order in which |
// ToNumber (valueOf) is called. |
function MathAtan2(y, x) { |
- if (!IS_NUMBER(y)) y = ToNumber(y); |
- if (!IS_NUMBER(x)) x = ToNumber(x); |
+ if (!IS_NUMBER(y)) y = NonNumToNum(y); |
+ if (!IS_NUMBER(x)) x = NonNumToNum(x); |
return %Math_atan2(y, x); |
} |
// ECMA 262 - 15.8.2.6 |
function MathCeil(x) { |
- if (!IS_NUMBER(x)) x = ToNumber(x); |
+ if (!IS_NUMBER(x)) x = NonNumToNum(x); |
return %Math_ceil(x); |
} |
// ECMA 262 - 15.8.2.7 |
function MathCos(x) { |
- if (!IS_NUMBER(x)) x = ToNumber(x); |
+ if (!IS_NUMBER(x)) x = NonNumToNum(x); |
return %_MathCos(x); |
} |
// ECMA 262 - 15.8.2.8 |
function MathExp(x) { |
- if (!IS_NUMBER(x)) x = ToNumber(x); |
+ if (!IS_NUMBER(x)) x = NonNumToNum(x); |
return %Math_exp(x); |
} |
// ECMA 262 - 15.8.2.9 |
function MathFloor(x) { |
- if (!IS_NUMBER(x)) x = ToNumber(x); |
+ if (!IS_NUMBER(x)) x = NonNumToNum(x); |
// It's more common to call this with a positive number that's out |
// of range than negative numbers; check the upper bound first. |
if (x < 0x80000000 && x > 0) { |
@@ -112,7 +112,7 @@ |
// ECMA 262 - 15.8.2.10 |
function MathLog(x) { |
- if (!IS_NUMBER(x)) x = ToNumber(x); |
+ if (!IS_NUMBER(x)) x = NonNumToNum(x); |
return %_MathLog(x); |
} |
@@ -123,11 +123,11 @@ |
return -1/0; // Compiler constant-folds this to -Infinity. |
} |
var r = arg1; |
- if (!IS_NUMBER(r)) r = ToNumber(r); |
+ if (!IS_NUMBER(r)) r = NonNumToNum(r); |
if (NUMBER_IS_NAN(r)) return r; |
for (var i = 1; i < length; i++) { |
var n = %_Arguments(i); |
- if (!IS_NUMBER(n)) n = ToNumber(n); |
+ if (!IS_NUMBER(n)) n = NonNumToNum(n); |
if (NUMBER_IS_NAN(n)) return n; |
// Make sure +0 is considered greater than -0. -0 is never a Smi, +0 can be |
// a Smi or heap number. |
@@ -143,11 +143,11 @@ |
return 1/0; // Compiler constant-folds this to Infinity. |
} |
var r = arg1; |
- if (!IS_NUMBER(r)) r = ToNumber(r); |
+ if (!IS_NUMBER(r)) r = NonNumToNum(r); |
if (NUMBER_IS_NAN(r)) return r; |
for (var i = 1; i < length; i++) { |
var n = %_Arguments(i); |
- if (!IS_NUMBER(n)) n = ToNumber(n); |
+ if (!IS_NUMBER(n)) n = NonNumToNum(n); |
if (NUMBER_IS_NAN(n)) return n; |
// Make sure -0 is considered less than +0. -0 is never a Smi, +0 can b a |
// Smi or a heap number. |
@@ -158,8 +158,8 @@ |
// ECMA 262 - 15.8.2.13 |
function MathPow(x, y) { |
- if (!IS_NUMBER(x)) x = ToNumber(x); |
- if (!IS_NUMBER(y)) y = ToNumber(y); |
+ if (!IS_NUMBER(x)) x = NonNumToNum(x); |
+ if (!IS_NUMBER(y)) y = NonNumToNum(y); |
return %_MathPow(x, y); |
} |
@@ -170,25 +170,25 @@ |
// ECMA 262 - 15.8.2.15 |
function MathRound(x) { |
- if (!IS_NUMBER(x)) x = ToNumber(x); |
+ if (!IS_NUMBER(x)) x = NonNumToNum(x); |
return %RoundNumber(x); |
} |
// ECMA 262 - 15.8.2.16 |
function MathSin(x) { |
- if (!IS_NUMBER(x)) x = ToNumber(x); |
+ if (!IS_NUMBER(x)) x = NonNumToNum(x); |
return %_MathSin(x); |
} |
// ECMA 262 - 15.8.2.17 |
function MathSqrt(x) { |
- if (!IS_NUMBER(x)) x = ToNumber(x); |
+ if (!IS_NUMBER(x)) x = NonNumToNum(x); |
return %_MathSqrt(x); |
} |
// ECMA 262 - 15.8.2.18 |
function MathTan(x) { |
- if (!IS_NUMBER(x)) x = ToNumber(x); |
+ if (!IS_NUMBER(x)) x = NonNumToNum(x); |
return %Math_tan(x); |
} |