[pypy-svn] r52542 - in pypy/branch/jit-refactoring/pypy/lang/js: . test

fijal at codespeak.net fijal at codespeak.net
Sat Mar 15 00:33:02 CET 2008


Author: fijal
Date: Sat Mar 15 00:33:00 2008
New Revision: 52542

Modified:
   pypy/branch/jit-refactoring/pypy/lang/js/jscode.py
   pypy/branch/jit-refactoring/pypy/lang/js/operations.py
   pypy/branch/jit-refactoring/pypy/lang/js/test/test_parser.py
Log:
a POP bytecode.


Modified: pypy/branch/jit-refactoring/pypy/lang/js/jscode.py
==============================================================================
--- pypy/branch/jit-refactoring/pypy/lang/js/jscode.py	(original)
+++ pypy/branch/jit-refactoring/pypy/lang/js/jscode.py	Sat Mar 15 00:33:00 2008
@@ -283,6 +283,9 @@
 class RETURN(Opcode):
     pass
 
+class POP(Opcode):
+    pass
+
 OpcodeMap = {}
 
 for name, value in locals().items():

Modified: pypy/branch/jit-refactoring/pypy/lang/js/operations.py
==============================================================================
--- pypy/branch/jit-refactoring/pypy/lang/js/operations.py	(original)
+++ pypy/branch/jit-refactoring/pypy/lang/js/operations.py	Sat Mar 15 00:33:00 2008
@@ -209,6 +209,7 @@
     def emit(self, bytecode):
         for node in self.nodes:
             node.emit(bytecode)
+            bytecode.emit('POP')
     
     def execute(self, ctx):
         try:

Modified: pypy/branch/jit-refactoring/pypy/lang/js/test/test_parser.py
==============================================================================
--- pypy/branch/jit-refactoring/pypy/lang/js/test/test_parser.py	(original)
+++ pypy/branch/jit-refactoring/pypy/lang/js/test/test_parser.py	Sat Mar 15 00:33:00 2008
@@ -384,13 +384,15 @@
                     'GT',
                     'JUMP_IF_FALSE 1',
                     'LOAD_VARIABLE "x"',
+                    'POP',
                     'JUMP 0',
                     'LABEL 1'],
                    ['LOAD_VARIABLE "i"',
                     'LOAD_INTCONSTANT 1',
                     'GT',
-                    'JUMP_IF_FALSE 6',
+                    'JUMP_IF_FALSE 7',
                     'LOAD_VARIABLE "x"',
+                    'POP',
                     'JUMP 0'])
         self.check_remove_label('if (x<3) {x} else {y}',[
                                 'LOAD_VARIABLE "x"',
@@ -398,31 +400,39 @@
                                 'LT',
                                 'JUMP_IF_FALSE 0',
                                 'LOAD_VARIABLE "x"',
+                                'POP',
                                 'JUMP 1',
                                 'LABEL 0',
                                 'LOAD_VARIABLE "y"',
+                                'POP',
                                 'LABEL 1'],[
                                 'LOAD_VARIABLE "x"',
                                 'LOAD_INTCONSTANT 3',
                                 'LT',
-                                'JUMP_IF_FALSE 6',
+                                'JUMP_IF_FALSE 7',
                                 'LOAD_VARIABLE "x"',
-                                'JUMP 7',
-                                'LOAD_VARIABLE "y"'])
+                                'POP',
+                                'JUMP 9',
+                                'LOAD_VARIABLE "y"',
+                                'POP'])
         self.check_remove_label('if (x) {y}',[
                                 'LOAD_VARIABLE "x"',
                                 'JUMP_IF_FALSE 0',
                                 'LOAD_VARIABLE "y"',
+                                'POP',
                                 'LABEL 0'],[
                                 'LOAD_VARIABLE "x"',
-                                'JUMP_IF_FALSE 3',
-                                'LOAD_VARIABLE "y"'])
+                                'JUMP_IF_FALSE 4',
+                                'LOAD_VARIABLE "y"',
+                                'POP'])
         self.check_remove_label('do { stuff } while (x)',[
                                 'LABEL 0',
                                 'LOAD_VARIABLE "stuff"',
+                                'POP',
                                 'LOAD_VARIABLE "x"',
                                 'JUMP_IF_TRUE 0'],[
                                 'LOAD_VARIABLE "stuff"',
+                                'POP',
                                 'LOAD_VARIABLE "x"',
                                 'JUMP_IF_TRUE 0'])
 



More information about the Pypy-commit mailing list