on master help sign in
javascript: fixed bug introduced through primitive unification
commitbd6a5e4224b1228871d56fa60f49e2e47a905a7a authorraichoo <raichoo@googlemail.com> dateMon 8 Jul 2013, 20:40 (13 years ago) parentfa526e4
1 file changed+33−32
src/IRTS/CodegenJavaScript.hs+33−32
src/IRTS/CodegenJavaScript.hs+33−32
@@ -202,38 +202,6 @@ translateExpression (SApp True name vars) =
202202
203203translateExpression (SOp op vars)
204204 | LNoOp <- op = translateVariableName (last vars) ++ "/* NOOP */"
205− | (LPlus _) <- op
206− , (lhs:rhs:_) <- vars = translateBinaryOp "+" lhs rhs
207− | (LMinus _) <- op
208− , (lhs:rhs:_) <- vars = translateBinaryOp "-" lhs rhs
209− | (LTimes _) <- op
210− , (lhs:rhs:_) <- vars = translateBinaryOp "*" lhs rhs
211− | (LSDiv _) <- op
212− , (lhs:rhs:_) <- vars = translateBinaryOp "/" lhs rhs
213− | (LSRem _) <- op
214− , (lhs:rhs:_) <- vars = translateBinaryOp "%" lhs rhs
215− | (LEq _) <- op
216− , (lhs:rhs:_) <- vars = translateBinaryOp "==" lhs rhs
217− | (LLt _) <- op
218− , (lhs:rhs:_) <- vars = translateBinaryOp "<" lhs rhs
219− | (LLe _) <- op
220− , (lhs:rhs:_) <- vars = translateBinaryOp "<=" lhs rhs
221− | (LGt _) <- op
222− , (lhs:rhs:_) <- vars = translateBinaryOp ">" lhs rhs
223− | (LGe _) <- op
224− , (lhs:rhs:_) <- vars = translateBinaryOp ">=" lhs rhs
225− | (LAnd _) <- op
226− , (lhs:rhs:_) <- vars = translateBinaryOp "&" lhs rhs
227− | (LOr _) <- op
228− , (lhs:rhs:_) <- vars = translateBinaryOp "|" lhs rhs
229− | (LXOr _) <- op
230− , (lhs:rhs:_) <- vars = translateBinaryOp "^" lhs rhs
231− | (LSHL _) <- op
232− , (lhs:rhs:_) <- vars = translateBinaryOp "<<" rhs lhs
233− | (LASHR _) <- op
234− , (lhs:rhs:_) <- vars = translateBinaryOp ">>" rhs lhs
235− | (LCompl _) <- op
236− , (arg:_) <- vars = '~' : translateVariableName arg
237205
238206 | (LPlus (ATInt ITBig)) <- op
239207 , (lhs:rhs:_) <- vars = translateBinaryOp ".add(" lhs rhs ++ ")"
@@ -275,6 +243,39 @@ translateExpression (SOp op vars)
275243 | (LGe ATFloat) <- op
276244 , (lhs:rhs:_) <- vars = translateBinaryOp ">=" lhs rhs
277245
246+ | (LPlus _) <- op
247+ , (lhs:rhs:_) <- vars = translateBinaryOp "+" lhs rhs
248+ | (LMinus _) <- op
249+ , (lhs:rhs:_) <- vars = translateBinaryOp "-" lhs rhs
250+ | (LTimes _) <- op
251+ , (lhs:rhs:_) <- vars = translateBinaryOp "*" lhs rhs
252+ | (LSDiv _) <- op
253+ , (lhs:rhs:_) <- vars = translateBinaryOp "/" lhs rhs
254+ | (LSRem _) <- op
255+ , (lhs:rhs:_) <- vars = translateBinaryOp "%" lhs rhs
256+ | (LEq _) <- op
257+ , (lhs:rhs:_) <- vars = translateBinaryOp "==" lhs rhs
258+ | (LLt _) <- op
259+ , (lhs:rhs:_) <- vars = translateBinaryOp "<" lhs rhs
260+ | (LLe _) <- op
261+ , (lhs:rhs:_) <- vars = translateBinaryOp "<=" lhs rhs
262+ | (LGt _) <- op
263+ , (lhs:rhs:_) <- vars = translateBinaryOp ">" lhs rhs
264+ | (LGe _) <- op
265+ , (lhs:rhs:_) <- vars = translateBinaryOp ">=" lhs rhs
266+ | (LAnd _) <- op
267+ , (lhs:rhs:_) <- vars = translateBinaryOp "&" lhs rhs
268+ | (LOr _) <- op
269+ , (lhs:rhs:_) <- vars = translateBinaryOp "|" lhs rhs
270+ | (LXOr _) <- op
271+ , (lhs:rhs:_) <- vars = translateBinaryOp "^" lhs rhs
272+ | (LSHL _) <- op
273+ , (lhs:rhs:_) <- vars = translateBinaryOp "<<" rhs lhs
274+ | (LASHR _) <- op
275+ , (lhs:rhs:_) <- vars = translateBinaryOp ">>" rhs lhs
276+ | (LCompl _) <- op
277+ , (arg:_) <- vars = '~' : translateVariableName arg
278+
278279 | LStrConcat <- op
279280 , (lhs:rhs:_) <- vars = translateBinaryOp "+" lhs rhs
280281 | LStrEq <- op