@@ -109,8 +109,8 @@ generateCode expr =
109 VarLocal name ->
109 VarLocal name ->
110 jsExpr $ Var.local name
110 jsExpr $ Var.local name
112− VarGlobal home name ->
112+ VarGlobal name ->
113− jsExpr $ Var.global home name
113+ jsExpr $ Var.global name
115 Literal lit ->
115 Literal lit ->
116 jsExpr (Literal.literal lit)
116 jsExpr (Literal.literal lit)
@@ -138,8 +138,8 @@ generateCode expr =
138 do jsFields <- mapM toField fields
138 do jsFields <- mapM toField fields
139 jsExpr $ JS.Object jsFields
139 jsExpr $ JS.Object jsFields
141− Binop home op leftExpr rightExpr ->
141+ Binop op leftExpr rightExpr ->
142− generateBinop home op leftExpr rightExpr
142+ generateBinop op leftExpr rightExpr
144 Function args body ->
144 Function args body ->
145 generateFunction args body
145 generateFunction args body
@@ -300,13 +300,13 @@ generateFunctionWithArity rawArgs code =
300generateCall :: Opt.Expr -> [Opt.Expr] -> State Int Code
300generateCall :: Opt.Expr -> [Opt.Expr] -> State Int Code
301generateCall func args =
301generateCall func args =
302 case (func, args) of
302 case (func, args) of
303− (Opt.VarGlobal home name, [arg]) ->
303+ (Opt.VarGlobal (V.Global home name), [arg]) ->
304 case name of
304 case name of
305 "complement" | home == bitwise -> genPrefix JS.PrefixBNot arg
305 "complement" | home == bitwise -> genPrefix JS.PrefixBNot arg
306 "not" | home == basics -> genPrefix JS.PrefixLNot arg
306 "not" | home == basics -> genPrefix JS.PrefixLNot arg
307 _ -> generateCallHelp func args
307 _ -> generateCallHelp func args
309− (Opt.VarGlobal home name, [ left, right ]) | home == bitwise ->
309+ (Opt.VarGlobal (V.Global home name), [ left, right ]) | home == bitwise ->
310 case name of
310 case name of
311 "and" -> genInfix JS.OpBAnd left right
311 "and" -> genInfix JS.OpBAnd left right
312 "or" -> genInfix JS.OpBOr left right
312 "or" -> genInfix JS.OpBOr left right
@@ -540,22 +540,22 @@ pathToExpr root fullPath =
540-- BINARY OPERATORS
540-- BINARY OPERATORS
543−generateBinop :: ModuleName.Canonical -> Text -> Opt.Expr -> Opt.Expr -> State Int Code
543+generateBinop :: V.Global -> Opt.Expr -> Opt.Expr -> State Int Code
544−generateBinop home op left right =
544+generateBinop op left right =
545 do jsLeft <- generateJsExpr left
545 do jsLeft <- generateJsExpr left
546 jsRight <- generateJsExpr right
546 jsRight <- generateJsExpr right
547− jsExpr (generateBinopHelp home op jsLeft jsRight)
547+ jsExpr (generateBinopHelp op jsLeft jsRight)
551-- BINARY OPERATOR HELPERS
551-- BINARY OPERATOR HELPERS
554−generateBinopHelp :: ModuleName.Canonical -> Text -> JS.Expr -> JS.Expr -> JS.Expr
554+generateBinopHelp :: V.Global -> JS.Expr -> JS.Expr -> JS.Expr
555−generateBinopHelp home op leftExpr rightExpr =
555+generateBinopHelp var@(V.Global home op) leftExpr rightExpr =
557 simpleMake left right =
557 simpleMake left right =
558− JS.Call (ref "A2") [ Var.global home op, left, right ]
558+ JS.Call (ref "A2") [ Var.global var, left, right ]
560 if home == basics then
560 if home == basics then
561 (Map.findWithDefault simpleMake op basicOps) leftExpr rightExpr
561 (Map.findWithDefault simpleMake op basicOps) leftExpr rightExpr