Author: Stephan <step...@stzal.com>
Branch: 
Changeset: r326:8a2574c80508
Date: 2012-12-25 12:21 +0100
http://bitbucket.org/pypy/lang-js/changeset/8a2574c80508/

Log:    fixed cleanup of loop head

diff --git a/js/operations.py b/js/operations.py
--- a/js/operations.py
+++ b/js/operations.py
@@ -1031,7 +1031,7 @@
 
     def emit(self, bytecode):
         self.setup.emit(bytecode)
-        if isinstance(self.setup, Expression):
+        if isinstance(self.setup, Expression) or isinstance(self.setup, 
VariableDeclList):
             bytecode.emit('POP')
         bytecode.emit('LOAD_UNDEFINED')
         precond = bytecode.emit_startloop_label()
diff --git a/js/test/test_interp.py b/js/test/test_interp.py
--- a/js/test/test_interp.py
+++ b/js/test/test_interp.py
@@ -1097,3 +1097,7 @@
 def test_instanceof():
     assertv("function f(){this.a = 1;}; x = new f(); x instanceof f;", True)
     assertv("function f(){this.a = 1;}; function g(){this.a = b;}; x = new 
f(); x instanceof g;", False)
+
+
+def test_repeated_for_loop():
+    assertv("var a = 0; for(var x = 0; x < 10; x++){for(var y = 0; y < 10; 
y++) {a += y}}; a;", 450)
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to