summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/language/statements/function/S13.2.1_A5_T2.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/language/statements/function/S13.2.1_A5_T2.js')
-rw-r--r--js/src/tests/test262/language/statements/function/S13.2.1_A5_T2.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/statements/function/S13.2.1_A5_T2.js b/js/src/tests/test262/language/statements/function/S13.2.1_A5_T2.js
new file mode 100644
index 0000000000..68dd3fba7e
--- /dev/null
+++ b/js/src/tests/test262/language/statements/function/S13.2.1_A5_T2.js
@@ -0,0 +1,28 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: Closures are admitted
+es5id: 13.2.1_A5_T2
+description: >
+ Returning a function that approximates the derivative of f using
+ an interval of dx, which should be appropriately small
+---*/
+
+// Return a function that approximates the derivative of f
+// using an interval of dx, which should be appropriately small.
+function derivative(f, dx) {
+ return function(x) {
+ return (f(x + dx) - f(x)) / dx;
+ };
+}
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (Math.abs(derivative(Math.sin, 0.0001)(0) - derivative(Math.sin, 0.0001)(2*Math.PI)) >= 1/65536.0) {
+ throw new Test262Error('#1: Math.abs(derivative(Math.sin, 0.0001)(0) - derivative(Math.sin, 0.0001)(2*Math.PI)) <= 1/65536.0');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+reportCompare(0, 0);