@@ -129,6 +129,9 @@ compileJS (JSError exc) =
129compileJS (JSBinOp op lhs rhs) =
129compileJS (JSBinOp op lhs rhs) =
130 compileJS lhs ++ " " ++ op ++ " " ++ compileJS rhs
130 compileJS lhs ++ " " ++ op ++ " " ++ compileJS rhs
132+compileJS (JSPreOp op val) =
132compileJS (JSProj obj field)
135compileJS (JSProj obj field)
133 | JSFunction {} <- obj =
136 | JSFunction {} <- obj =
134 concat ["(", compileJS obj, ").", field]
137 concat ["(", compileJS obj, ").", field]
@@ -1594,7 +1597,7 @@ translateExpression (SOp op vars)
1594 | (LASHR _) <- op
1597 | (LASHR _) <- op
1595 , (lhs:rhs:_) <- vars = translateBinaryOp ">>" rhs lhs
1598 , (lhs:rhs:_) <- vars = translateBinaryOp ">>" rhs lhs
1596 | (LCompl _) <- op
1599 | (LCompl _) <- op
1597− , (arg:_) <- vars = JSRaw $ '~' : translateVariableName arg
1600+ , (arg:_) <- vars = JSPreOp "~" (JSVar arg)
1599 | LStrConcat <- op
1602 | LStrConcat <- op
1600 , (lhs:rhs:_) <- vars = translateBinaryOp "+" lhs rhs
1603 , (lhs:rhs:_) <- vars = translateBinaryOp "+" lhs rhs