@@ -3,7 +3,7 @@
33module Generate.JavaScript.Builder
44 ( Expr(..), Id(..), Prop(..), LValue(..)
55 , Stmt(..), Case(..), VarDecl(..)
6− , InfixOp(..), AssignOp(..), PrefixOp(..)
6+ , InfixOp(..), PrefixOp(..)
77 , stmtsToText
88 )
99 where
@@ -41,7 +41,7 @@ data Expr
4141 | Prefix PrefixOp Expr
4242 | Infix InfixOp Expr Expr
4343 | If Expr Expr Expr
44− | Assign AssignOp LValue Expr
44+ | Assign LValue Expr
4545 | Call Expr [Expr] -- ^ @f(x,y,z)@, spec 11.2.3
4646 | Function (Maybe Id) [Id] [Stmt]
4747
@@ -120,29 +120,12 @@ data InfixOp
120120 | OpAdd -- +
121121
122122
123−data AssignOp
124− = OpAssign -- =
125− | OpAssignAdd -- +=
126− | OpAssignSub -- -=
127− | OpAssignMul -- *=
128− | OpAssignDiv -- /=
129− | OpAssignMod -- %=
130− | OpAssignLShift -- <<=
131− | OpAssignSpRShift -- >>=
132− | OpAssignZfRShift -- >>>=
133− | OpAssignBAnd -- &=
134− | OpAssignBXor -- ^=
135− | OpAssignBOr -- |=
136−
137−
138123data PrefixOp
139124 = PrefixLNot -- !
140125 | PrefixBNot -- ~
141126 | PrefixPlus -- +
142127 | PrefixMinus -- -
143128 | PrefixTypeof -- typeof
144− | PrefixVoid -- void
145− | PrefixDelete -- delete
146129
147130
148131
@@ -435,7 +418,7 @@ fromExpr indent grouping expression =
435418 , parensFor grouping (condB <> " ? " <> thenB <> " : " <> elseB)
436419 )
437420
438− Assign op lValue expr ->
421+ Assign lValue expr ->
439422 let
440423 (leftLines, left) =
441424 fromLValue indent lValue
@@ -444,7 +427,7 @@ fromExpr indent grouping expression =
444427 fromExpr indent Whatever expr
445428 in
446429 ( merge leftLines rightLines
447− , parensFor grouping (left <> fromAssign op <> right)
430+ , parensFor grouping (left <> " = " <> right)
448431 )
449432
450433 Call function args ->
@@ -563,25 +546,6 @@ fromPrefix op =
563546 PrefixPlus -> "+"
564547 PrefixMinus -> "-"
565548 PrefixTypeof -> "typeof "
566− PrefixVoid -> "void "
567− PrefixDelete -> "delete "
568−
569−
570−fromAssign :: AssignOp -> Builder
571−fromAssign op =
572− case op of
573− OpAssign -> " = "
574− OpAssignAdd -> " += "
575− OpAssignSub -> " -= "
576− OpAssignMul -> " *= "
577− OpAssignDiv -> " /= "
578− OpAssignMod -> " %= "
579− OpAssignLShift -> " <<= "
580− OpAssignSpRShift -> " >>= "
581− OpAssignZfRShift -> " >>>= "
582− OpAssignBAnd -> " &= "
583− OpAssignBXor -> " ^= "
584− OpAssignBOr -> " |= "
585549
586550
587551fromInfix :: InfixOp -> Builder