Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(189)

Unified Diff: src/generator.js

Issue 13192004: arrange to create prototypes for generators (Closed) Base URL: git://github.com/v8/v8.git@master
Patch Set: Allow fast closure creation for generators Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/generator.js
diff --git a/test/mjsunit/compiler/multiply-sub.js b/src/generator.js
similarity index 63%
copy from test/mjsunit/compiler/multiply-sub.js
copy to src/generator.js
index 4793181d47a2b4a2b2390f5049758e651ef1ec1c..c04e8e6c4cdc8958d80205745c16b5e560a1e44f 100644
--- a/test/mjsunit/compiler/multiply-sub.js
+++ b/src/generator.js
@@ -25,32 +25,35 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-// Flags: --allow-natives-syntax
-// Test expressions that can be computed with a multiply-add instruction.
+// TODO(wingo): Give link to specification. For now, the following diagram is
+// the spec:
+// http://wiki.ecmascript.org/lib/exe/fetch.php?cache=cache&media=harmony:es6_generator_object_model_3-29-13.png
-function f(a, b, c) {
- return a - b * c;
+function GeneratorObjectNext() {
+ // TODO(wingo): Implement.
}
-function g(a, b, c) {
- return a * b - c;
+function GeneratorObjectSend(value) {
+ // TODO(wingo): Implement.
}
-function h(a, b, c, d) {
- return a * b - c * d;
+function GeneratorObjectThrow(exn) {
+ // TODO(wingo): Implement.
}
-assertEquals(-5.41, f(1.1, 2.1, 3.1));
-assertEquals(-5.41, f(1.1, 2.1, 3.1));
-%OptimizeFunctionOnNextCall(f);
-assertEquals(-5.41, f(1.1, 2.1, 3.1));
+function GeneratorObjectClose() {
+ // TODO(wingo): Implement.
+}
-assertEquals(8.36, g(2.2, 3.3, -1.1));
-assertEquals(8.36, g(2.2, 3.3, -1.1));
-%OptimizeFunctionOnNextCall(g);
-assertEquals(8.36, g(2.2, 3.3, -1.1));
+function SetUpGenerators() {
+ %CheckIsBootstrapping();
+ var GeneratorObjectPrototype = GeneratorFunctionPrototype.prototype;
+ InstallFunctions(GeneratorObjectPrototype,
+ DONT_ENUM | DONT_DELETE | READ_ONLY,
+ ["next", GeneratorObjectNext,
+ "send", GeneratorObjectSend,
+ "throw", GeneratorObjectThrow,
+ "close", GeneratorObjectClose]);
+}
-assertEquals(-1.5, h(1.5, 3.0, 12, 0.5));
-assertEquals(-1.5, h(1.5, 3.0, 12, 0.5));
-%OptimizeFunctionOnNextCall(h);
-assertEquals(-1.5, h(1.5, 3.0, 12, 0.5));
+SetUpGenerators();

Powered by Google App Engine
This is Rietveld 408576698