1 // Basic cases of Math.sqrt().
2 function sqrtOnInteger(radicand
) {
3 return Math
.sqrt(radicand
);
5 noInline(sqrtOnInteger
);
7 function testSquareRoot16() {
8 for (var i
= 0; i
< 10000; ++i
) {
9 var result
= sqrtOnInteger(16);
11 throw "sqrtOnInteger(16) = " + result
+ ", expected 4";
16 var sqrtOnIntegerNegativeNumber
= sqrtOnDouble(-4);
17 if (!isNaN(sqrtOnIntegerNegativeNumber
))
18 throw "sqrtOnDouble(-4) = " + sqrtOnIntegerNegativeNumber
+ ", expected NaN";
20 var sqrtOnIntegerFallback
= sqrtOnInteger(Math
.PI
);
21 if (sqrtOnIntegerFallback
!= 1.7724538509055159)
22 throw "sqrtOnInteger(Math.PI) = " + sqrtOnIntegerFallback
+ ", expected 1.7724538509055159";
25 function sqrtOnDouble(radicand
) {
26 return Math
.sqrt(radicand
);
28 noInline(sqrtOnDouble
);
30 function testSquareRootDouble() {
31 for (var i
= 0; i
< 10000; ++i
) {
32 var result
= sqrtOnInteger(Math
.LN2
);
33 if (result
!== 0.8325546111576977)
34 throw "sqrtOnInteger(Math.LN2) = " + result
+ ", expected 0.8325546111576977";
37 testSquareRootDouble();
39 var sqrtOnDoubleNegativeNumber
= sqrtOnDouble(-Math
.PI
);
40 if (!isNaN(sqrtOnDoubleNegativeNumber
))
41 throw "sqrtOnDouble(-Math.PI) = " + sqrtOnDoubleNegativeNumber
+ ", expected NaN";
43 var sqrtOnDoubleFallback
= sqrtOnDouble(4);
44 if (sqrtOnDoubleFallback
!== 2)
45 throw "sqrtOnDouble(4) = " + sqrtOnDoubleFallback
+ ", expected 2";