Skip to content

Commit ed33fe4

Browse files
committed
Handle ClassVar reassignment
1 parent f7e4aaf commit ed33fe4

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

transcrypt/modules/org/transcrypt/compiler.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2003,7 +2003,7 @@ def visit_ClassDef (self, node):
20032003
# Simple class var assignment, can be generated in-line as initialisation field of a JavaScript object literal
20042004
inlineAssigns.append (statement)
20052005
self.emitSemiColon (index, False)
2006-
self.emit ('\nlet {0} = cls.{0} = ', self.filterId (statement.targets [0] .id))
2006+
self.emit ('\nvar {0} = cls.{0} = ', self.filterId (statement.targets [0] .id))
20072007
self.visit (statement.value)
20082008
self.adaptLineNrString (statement)
20092009
index += 1
@@ -2029,9 +2029,9 @@ def visit_ClassDef (self, node):
20292029
compareAssigns.append (statement)
20302030
self.emitSemiColon (index, False)
20312031
if statement.value is None:
2032-
self.emit('\nlet {0} = cls.{0}', self.filterId(statement.target.id))
2032+
self.emit('\nvar {0} = cls.{0}', self.filterId(statement.target.id))
20332033
else:
2034-
self.emit('\nlet {0} = cls.{0} = ', self.filterId(statement.target.id))
2034+
self.emit('\nvar {0} = cls.{0} = ', self.filterId(statement.target.id))
20352035
self.visit(statement.value)
20362036
self.adaptLineNrString (statement)
20372037
index += 1
@@ -2041,9 +2041,9 @@ def visit_ClassDef (self, node):
20412041
inlineAssigns.append (statement)
20422042
self.emitSemiColon (index, False)
20432043
if statement.value is None:
2044-
self.emit('\nlet {0} = cls.{0}', self.filterId(statement.target.id))
2044+
self.emit('\nvar {0} = cls.{0}', self.filterId(statement.target.id))
20452045
else:
2046-
self.emit('\nlet {0} = cls.{0} = ', self.filterId(statement.target.id))
2046+
self.emit('\nvar {0} = cls.{0} = ', self.filterId(statement.target.id))
20472047
self.visit(statement.value)
20482048
self.adaptLineNrString (statement)
20492049
index += 1
@@ -2053,6 +2053,10 @@ def visit_ClassDef (self, node):
20532053
# LHS is attribute or array element, we can't use it for representation or comparison
20542054
delayedAssigns.append (statement)
20552055

2056+
elif type (statement) == ast.Expression:
2057+
# It's a class scoped expression
2058+
self.visit(statement)
2059+
20562060
elif self.getPragmaFromExpr (statement):
20572061
# It's a pragma
20582062
self.visit (statement)

0 commit comments

Comments
 (0)