[pypy-commit] lang-js default: fix wraping for visit_case_clauses

stepahn noreply at buildbot.pypy.org
Wed May 18 11:14:54 CEST 2011


Author: Stephan <stephan at stzal.com>
Branch: 
Changeset: r63:939319186301
Date: 2011-05-18 10:57 +0200
http://bitbucket.org/pypy/lang-js/changeset/939319186301/

Log:	fix wraping for visit_case_clauses

diff --git a/js/astbuilder.py b/js/astbuilder.py
--- a/js/astbuilder.py
+++ b/js/astbuilder.py
@@ -390,12 +390,12 @@
 
     def visit_caseblock(self, node):
         pos = self.get_pos(node)
-        caseclauses = self.dispatch(node.children[0])
+        caseclauses = self.dispatch(node.children[0]).clauses
         if len(node.children) > 1:
             defaultblock = self.dispatch(node.children[1])
         else:
             defaultblock = None
-        return operations.Cases(pos, caseclauses, defaultblock)
+        return operations.CaseBlock(pos, caseclauses, defaultblock)
 
     def visit_caseclauses(self, node):
         pos = self.get_pos(node)
@@ -408,7 +408,7 @@
                 expressions = []
             else:
                 expressions.append(self.dispatch(c))
-        return clauses
+        return operations.CaseClauses(pos, clauses)
 
     def visit_defaultclause(self, node):
         pos = self.get_pos(node)
diff --git a/js/operations.py b/js/operations.py
--- a/js/operations.py
+++ b/js/operations.py
@@ -360,8 +360,8 @@
             bytecode.emit('LABEL', one)
 
 class Switch(Statement):
-    def __init__(self, pos, expression, clauses, default_clause = None):
-        super(Switch, self).__init__(pos)
+    def __init__(self, pos, expression, clauses, default_clause):
+        self.pos = pos
         self.expression = expression
         self.clauses = clauses
         self.default_clause = default_clause
@@ -391,12 +391,17 @@
         bytecode.emit('LABEL', end_of_switch)
         bytecode.emit('POP')
 
-class Cases(Statement):
+class CaseBlock(Statement):
     def __init__(self, pos, clauses, default_clause):
         super(Cases, self).__init__(pos)
         self.clauses = clauses
         self.default_clause = default_clause
 
+class CaseClauses(Statement):
+    def __init__(self, pos, clauses):
+        self.pos = pos
+        self.clauses = clauses
+
 class CaseClause(Statement):
     def __init__(self, pos, expressions, block):
         super(CaseClause, self).__init__(pos)


More information about the pypy-commit mailing list