summaryrefslogtreecommitdiff
path: root/test/js/testJS1_8.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/js/testJS1_8.js')
-rw-r--r--test/js/testJS1_8.js54
1 files changed, 54 insertions, 0 deletions
diff --git a/test/js/testJS1_8.js b/test/js/testJS1_8.js
new file mode 100644
index 00000000..29c83c76
--- /dev/null
+++ b/test/js/testJS1_8.js
@@ -0,0 +1,54 @@
+// application/javascript;version=1.8
+
+// Test SpiderMonkey JS extensions; see
+// https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.8
+
+// "const"
+const GLib = imports.gi.GLib;
+
+function testLet() {
+ // "let"
+ let foo = "bar";
+ let cow = "moo";
+
+ assertEquals(foo, "bar");
+}
+
+function testMultiReturn() {
+ const GLib = imports.gi.GLib;
+
+ // "destructuring bind"
+ let [success, content, len] = GLib.file_get_contents('/etc/passwd')
+ assertEquals(success, true);
+}
+
+function testYield() {
+ function fib() {
+ var i = 0, j = 1;
+ while (true) {
+ yield i;
+ var t = i;
+ i = j;
+ j += t;
+ }
+ }
+
+ var v = [];
+ var g = fib();
+ for (var i = 0; i < 10; i++) {
+ v.push(g.next());
+ }
+
+ assertEquals(v[0], 0);
+ assertEquals(v[1], 1);
+ assertEquals(v[2], 1);
+ assertEquals(v[3], 2);
+ assertEquals(v[4], 3);
+ assertEquals(v[5], 5);
+ assertEquals(v[6], 8);
+ assertEquals(v[7], 13);
+ assertEquals(v[8], 21);
+ assertEquals(v[9], 34);
+}
+
+gjstestRun();