summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2010-12-04 18:04:56 -0500
committerColin Walters <walters@verbum.org>2010-12-06 16:55:13 -0500
commitbbb159bafdf6c738915289a429836e859efaf3b7 (patch)
tree114214d79d724a434328b6305f402ba3556dc776
parentc923664f11e6782fb6199be844c7c745bd2565ad (diff)
downloadgjs-wip/jsversion-rebase2.tar.gz
Add explicit tests of JS version functionalitywip/jsversion-rebase2
-rw-r--r--Makefile-test.am2
-rw-r--r--test/js/testJS1_8.js54
-rw-r--r--test/js/testJSDefault.js14
3 files changed, 70 insertions, 0 deletions
diff --git a/Makefile-test.am b/Makefile-test.am
index 78a03af4..dcb814a2 100644
--- a/Makefile-test.am
+++ b/Makefile-test.am
@@ -180,6 +180,8 @@ EXTRA_DIST += \
test/js/testGI.js \
test/js/testGIMarshalling.js \
test/js/testImporter.js \
+ test/js/testJS1_8.js \
+ test/js/testJSDefault.js \
test/js/testLang.js \
test/js/testLocale.js \
test/js/testMainloop.js \
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();
diff --git a/test/js/testJSDefault.js b/test/js/testJSDefault.js
new file mode 100644
index 00000000..8231e0f2
--- /dev/null
+++ b/test/js/testJSDefault.js
@@ -0,0 +1,14 @@
+// Test that we *don't* get SpiderMonkey extensions; see
+// testJS1_8.js.
+
+var GLib = imports.gi.GLib;
+
+function testLet() {
+ assertRaises('missing ; before statement', function () { eval("let result = 1+1; result;") });
+}
+
+function testYield() {
+ assertRaises('missing ; before statement', function() { eval("function foo () { yield 42; }; foo();"); });
+}
+
+gjstestRun();