Skip to content

Commit 2e04ffd

Browse files
committed
Handle ClassVar reassignment
1 parent 591ca7d commit 2e04ffd

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
@@ -2013,7 +2013,7 @@ def visit_ClassDef (self, node):
20132013
# Simple class var assignment, can be generated in-line as initialisation field of a JavaScript object literal
20142014
inlineAssigns.append (statement)
20152015
self.emitSemiColon (index, False)
2016-
self.emit ('\nlet {0} = cls.{0} = ', self.filterId (statement.targets [0] .id))
2016+
self.emit ('\nvar {0} = cls.{0} = ', self.filterId (statement.targets [0] .id))
20172017
self.visit (statement.value)
20182018
self.adaptLineNrString (statement)
20192019
index += 1
@@ -2039,9 +2039,9 @@ def visit_ClassDef (self, node):
20392039
compareAssigns.append (statement)
20402040
self.emitSemiColon (index, False)
20412041
if statement.value is None:
2042-
self.emit('\nlet {0} = cls.{0}', self.filterId(statement.target.id))
2042+
self.emit('\nvar {0} = cls.{0}', self.filterId(statement.target.id))
20432043
else:
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
self.visit(statement.value)
20462046
self.adaptLineNrString (statement)
20472047
index += 1
@@ -2051,9 +2051,9 @@ def visit_ClassDef (self, node):
20512051
inlineAssigns.append (statement)
20522052
self.emitSemiColon (index, False)
20532053
if statement.value is None:
2054-
self.emit('\nlet {0} = cls.{0}', self.filterId(statement.target.id))
2054+
self.emit('\nvar {0} = cls.{0}', self.filterId(statement.target.id))
20552055
else:
2056-
self.emit('\nlet {0} = cls.{0} = ', self.filterId(statement.target.id))
2056+
self.emit('\nvar {0} = cls.{0} = ', self.filterId(statement.target.id))
20572057
self.visit(statement.value)
20582058
self.adaptLineNrString (statement)
20592059
index += 1
@@ -2063,6 +2063,10 @@ def visit_ClassDef (self, node):
20632063
# LHS is attribute or array element, we can't use it for representation or comparison
20642064
delayedAssigns.append (statement)
20652065

2066+
elif type (statement) == ast.Expression:
2067+
# It's a class scoped expression
2068+
self.visit(statement)
2069+
20662070
elif self.getPragmaFromExpr (statement):
20672071
# It's a pragma
20682072
self.visit (statement)

0 commit comments

Comments
 (0)