From 04f468541ef80450eeb521a026f449a419945385 Mon Sep 17 00:00:00 2001
From: smikes <smikes@cubane.com>
Date: Tue, 17 Feb 2015 18:26:24 -0700
Subject: [PATCH] batch of generator tests fix info, desc

remove dubious test

correct no-name test, add implicit-name test
---
 .../generators/generator.declaration.js       | 17 ++++++++++++++++
 .../generator.declareMethod.argSuperCall.js   | 17 ++++++++++++++++
 ...enerator.declareMethod.argSuperProperty.js | 17 ++++++++++++++++
 .../generator.declareMethod.bodySuperCall.js  | 18 +++++++++++++++++
 ...nerator.declareMethod.bodySuperProperty.js | 16 +++++++++++++++
 .../generators/generator.declareMethod.js     | 19 ++++++++++++++++++
 ...or.declareMethod.shadow-parameter-const.js | 18 +++++++++++++++++
 ...ator.declareMethod.shadow-parameter-let.js | 18 +++++++++++++++++
 .../generator.expression.implicit-name.js     | 19 ++++++++++++++++++
 .../generators/generator.expression.name.js   | 19 ++++++++++++++++++
 .../generator.expression.no-name.js           | 20 +++++++++++++++++++
 11 files changed, 198 insertions(+)
 create mode 100644 test/language/generators/generator.declaration.js
 create mode 100644 test/language/generators/generator.declareMethod.argSuperCall.js
 create mode 100644 test/language/generators/generator.declareMethod.argSuperProperty.js
 create mode 100644 test/language/generators/generator.declareMethod.bodySuperCall.js
 create mode 100644 test/language/generators/generator.declareMethod.bodySuperProperty.js
 create mode 100644 test/language/generators/generator.declareMethod.js
 create mode 100644 test/language/generators/generator.declareMethod.shadow-parameter-const.js
 create mode 100644 test/language/generators/generator.declareMethod.shadow-parameter-let.js
 create mode 100644 test/language/generators/generator.expression.implicit-name.js
 create mode 100644 test/language/generators/generator.expression.name.js
 create mode 100644 test/language/generators/generator.expression.no-name.js

diff --git a/test/language/generators/generator.declaration.js b/test/language/generators/generator.declaration.js
new file mode 100644
index 0000000000..0f8aada0de
--- /dev/null
+++ b/test/language/generators/generator.declaration.js
@@ -0,0 +1,17 @@
+// Copyright 2015 Cubane Canada, Inc.  All rights reserved.
+// See LICENSE for details.
+
+/*---
+info: >
+    Generator can be declared with GeneratorDeclaration syntax
+es6id: 14.4
+author: Sam Mikes
+description: can declare generator functions
+---*/
+
+function *foo(a) { yield a+1; return; }
+
+var g = foo(3);
+
+assert.sameValue(g.next().value, 4);
+assert.sameValue(g.next().done, true);
diff --git a/test/language/generators/generator.declareMethod.argSuperCall.js b/test/language/generators/generator.declareMethod.argSuperCall.js
new file mode 100644
index 0000000000..199cf9b79d
--- /dev/null
+++ b/test/language/generators/generator.declareMethod.argSuperCall.js
@@ -0,0 +1,17 @@
+// Copyright 2015 Cubane Canada, Inc.  All rights reserved.
+// See LICENSE for details.
+
+/*---
+info: >
+ GeneratorMethod early SyntaxError when super is called 
+ directly inside generator args
+es6id: 14.4.1
+author: Sam Mikes
+description: GeneratorMethod error if HasDirectSuper in args
+negative: SyntaxError
+---*/
+
+var obj = {
+    *foo(a = super) {
+    }
+};
diff --git a/test/language/generators/generator.declareMethod.argSuperProperty.js b/test/language/generators/generator.declareMethod.argSuperProperty.js
new file mode 100644
index 0000000000..8f0d3b4fe4
--- /dev/null
+++ b/test/language/generators/generator.declareMethod.argSuperProperty.js
@@ -0,0 +1,17 @@
+// Copyright 2015 Cubane Canada, Inc.  All rights reserved.
+// See LICENSE for details.
+
+/*---
+info: >
+ GeneratorMethod can reference SuperProperty in arg
+es6id: 14.4.1
+author: Sam Mikes
+description: GeneratorMethod uses SuperProperty (allowed)
+feature: default-arg, generator, super
+---*/
+
+var obj = {
+    *foo(a = super.x) {
+        yield;
+    }
+};
diff --git a/test/language/generators/generator.declareMethod.bodySuperCall.js b/test/language/generators/generator.declareMethod.bodySuperCall.js
new file mode 100644
index 0000000000..8d95934936
--- /dev/null
+++ b/test/language/generators/generator.declareMethod.bodySuperCall.js
@@ -0,0 +1,18 @@
+// Copyright 2015 Cubane Canada, Inc.  All rights reserved.
+// See LICENSE for details.
+
+/*---
+info: >
+ GeneratorMethod early SyntaxError when super is called
+ directly inside generator body
+es6id: 14.4.1
+author: Sam Mikes
+description: GeneratorMethod error if HasDirectSuper in body
+negative: SyntaxError
+---*/
+
+var obj = {
+    *foo(a) {
+        super;
+    }
+};
diff --git a/test/language/generators/generator.declareMethod.bodySuperProperty.js b/test/language/generators/generator.declareMethod.bodySuperProperty.js
new file mode 100644
index 0000000000..adfb42ec8b
--- /dev/null
+++ b/test/language/generators/generator.declareMethod.bodySuperProperty.js
@@ -0,0 +1,16 @@
+// Copyright 2015 Cubane Canada, Inc.  All rights reserved.
+// See LICENSE for details.
+
+/*---
+info: >
+ GeneratorMethod can reference SuperProperty in body
+es6id: 14.4.1
+author: Sam Mikes
+description: GeneratorMethod body uses SuperProperty (allowed)
+---*/
+
+var obj = {
+    *foo(a) {
+        yield super.x;
+    }
+};
diff --git a/test/language/generators/generator.declareMethod.js b/test/language/generators/generator.declareMethod.js
new file mode 100644
index 0000000000..e7ded64c78
--- /dev/null
+++ b/test/language/generators/generator.declareMethod.js
@@ -0,0 +1,19 @@
+// Copyright 2015 Cubane Canada, Inc.  All rights reserved.
+// See LICENSE for details.
+
+/*---
+info: >
+    Generator can be declared with GeneratorMethod syntax
+es6id: 14.4
+author: Sam Mikes
+description: can declare generator methods
+---*/
+
+var obj = {
+    *foo(a) { yield a+1; return; }
+};
+
+var g = obj.foo(3);
+
+assert.sameValue(g.next().value, 4);
+assert.sameValue(g.next().done, true);
diff --git a/test/language/generators/generator.declareMethod.shadow-parameter-const.js b/test/language/generators/generator.declareMethod.shadow-parameter-const.js
new file mode 100644
index 0000000000..1fbd3e6985
--- /dev/null
+++ b/test/language/generators/generator.declareMethod.shadow-parameter-const.js
@@ -0,0 +1,18 @@
+// Copyright 2015 Cubane Canada, Inc.  All rights reserved.
+// See LICENSE for details.
+
+/*---
+info: >
+ GeneratorMethod early SyntaxError when lexical declaration
+ inside generator shadows parameter name 
+es6id: 14.4.1
+author: Sam Mikes
+description: GeneratorMethod error with lexical shadowing
+negative: SyntaxError
+---*/
+
+var obj = {
+    *foo(a) {
+        const a = 3;
+    }
+};
diff --git a/test/language/generators/generator.declareMethod.shadow-parameter-let.js b/test/language/generators/generator.declareMethod.shadow-parameter-let.js
new file mode 100644
index 0000000000..e0b9fabf95
--- /dev/null
+++ b/test/language/generators/generator.declareMethod.shadow-parameter-let.js
@@ -0,0 +1,18 @@
+// Copyright 2015 Cubane Canada, Inc.  All rights reserved.
+// See LICENSE for details.
+
+/*---
+info: >
+ GeneratorMethod early SyntaxError when lexical declaration
+ inside generator shadows parameter name 
+es6id: 14.4.1
+author: Sam Mikes
+description: GeneratorMethod error with lexical shadowing
+negative: SyntaxError
+---*/
+
+var obj = {
+    *foo(a) {
+        let a = 3;
+    }
+};
diff --git a/test/language/generators/generator.expression.implicit-name.js b/test/language/generators/generator.expression.implicit-name.js
new file mode 100644
index 0000000000..3ad2377291
--- /dev/null
+++ b/test/language/generators/generator.expression.implicit-name.js
@@ -0,0 +1,19 @@
+// Copyright 2015 Cubane Canada, Inc.  All rights reserved.
+// See LICENSE for details.
+
+/*---
+info: >
+    Generator can be declared with GeneratorExpression syntax
+es6id: 14.4
+author: Sam Mikes
+description: can create generator function expressions (no name)
+---*/
+
+var f = function *(a) { yield a+1; return; };
+
+assert.sameValue(f.name, 'f');
+
+var g = f(3);
+
+assert.sameValue(g.next().value, 4);
+assert.sameValue(g.next().done, true);
diff --git a/test/language/generators/generator.expression.name.js b/test/language/generators/generator.expression.name.js
new file mode 100644
index 0000000000..b732a6f5dd
--- /dev/null
+++ b/test/language/generators/generator.expression.name.js
@@ -0,0 +1,19 @@
+// Copyright 2015 Cubane Canada, Inc.  All rights reserved.
+// See LICENSE for details.
+
+/*---
+info: >
+    Generator can be declared with GeneratorExpression syntax
+es6id: 14.4
+author: Sam Mikes
+description: can create generator function expressions (with name)
+---*/
+
+var f = function *foo(a) { yield a+1; return; };
+
+assert.sameValue(f.name, 'foo');
+
+var g = f(3);
+
+assert.sameValue(g.next().value, 4);
+assert.sameValue(g.next().done, true);
diff --git a/test/language/generators/generator.expression.no-name.js b/test/language/generators/generator.expression.no-name.js
new file mode 100644
index 0000000000..c219aba95f
--- /dev/null
+++ b/test/language/generators/generator.expression.no-name.js
@@ -0,0 +1,20 @@
+// Copyright 2015 Cubane Canada, Inc.  All rights reserved.
+// See LICENSE for details.
+
+/*---
+info: >
+    Generator can be declared with GeneratorExpression syntax
+es6id: 14.4
+author: Sam Mikes
+description: can create generator function expressions (no name)
+---*/
+
+var a = [function *(a) { yield a+1; return; }];
+var f = a[0];
+
+assert.sameValue(f.name, '');
+
+var g = f(3);
+
+assert.sameValue(g.next().value, 4);
+assert.sameValue(g.next().done, true);
-- 
GitLab