// Test Math.sin and Math.cos.
-var input_sin = [0, Math.PI, Math.PI / 6, Math.PI / 2, Math.pow(2, 70)];
-var input_cos = [0, Math.PI, Math.PI / 6, Math.PI / 2, Math.pow(2, 70)];
+var input_sin = [0, Math.PI, Math.PI / 6, Math.PI / 2];
+var input_cos = [0, Math.PI, Math.PI / 6, Math.PI / 2];
var output_sin = input_sin.map(Math.sin);
var output_cos = input_sin.map(Math.cos);
var expected_sin = [0,
1.2246063538223773e-16,
0.49999999999999994,
- 1,
- -0.9983193022079332];
+ 1];
var expected_cos = [1,
-1,
0.8660254037844387,
- 6.123031769111886e-17,
- 0.05795317798935058];
+ 6.123031769111886e-17];
assertArrayEquals(expected_sin, output_sin, "sine");
assertArrayEquals(expected_cos, output_cos, "cosine");
+
+// By accident, the slow case for sine and cosine were both sine at
+// some point. This is a regression test for that issue.
+var x = Math.pow(2, 70);
+assertTrue(Math.sin(x) != Math.cos(x));