Author: Stephan <step...@stzal.com>
Branch: 
Changeset: r60:75260dba56d9
Date: 2011-05-17 18:02 +0200
http://bitbucket.org/pypy/lang-js/changeset/75260dba56d9/

Log:    extracted removal of last pop into method

diff --git a/js/jscode.py b/js/jscode.py
--- a/js/jscode.py
+++ b/js/jscode.py
@@ -116,12 +116,20 @@
         self.opcodes.append(opcode)
         return opcode
 
-    def make_js_function(self, name='__dont_care__', params=None):
+    def unpop(self):
         if self.opcodes and isinstance(self.opcodes[-1], POP):
             self.opcodes.pop()
+            return True
         else:
+            return False
+
+    def unpop_or_undefined(self):
+        if not self.unpop():
             self.emit('LOAD_UNDEFINED')
 
+    def make_js_function(self, name='__dont_care__', params=None):
+        self.unpop_or_undefined()
+
         if self.has_labels:
             self.remove_labels()
 
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to