Kaynağa Gözat

LibJS: Add a test file for generator function parsing

Note that the yield-from expression tests are skipped for now since
they're not implemented yet.
Ali Mohammad Pur 4 yıl önce
ebeveyn
işleme
2661a88108

+ 23 - 0
Userland/Libraries/LibJS/Tests/syntax/generators.js

@@ -0,0 +1,23 @@
+describe("parsing freestanding generators", () => {
+    test("simple", () => {
+        expect(`function* foo() {}`).toEval();
+        expect(`function *foo() {}`).toEval();
+        expect(`function
+            *foo() {}`).toEval();
+    });
+    test("yield expression", () => {
+        expect(`function* foo() { yield; }`).toEval();
+        expect(`function* foo() { yield (yield); }`).toEval();
+        expect(`function* foo() { yield (yield foo); }`).toEval();
+        expect(`function foo() { yield; }`).toEval();
+        expect(`function foo() { yield 3; }`).not.toEval();
+    });
+    test.skip("yield-from expression", () => {
+        expect(`function* foo() { yield *bar; }`).toEval();
+        expect(`function* foo() { yield *(yield); }`).toEval();
+        expect(`function* foo() { yield
+            *bar; }`).not.toEval();
+        expect(`function foo() { yield
+            *bar; }`).toEval();
+    });
+});