@@ -420,46 +420,46 @@ translateExpression (SApp tc name vars)
420translateExpression (SOp op vars)
420translateExpression (SOp op vars)
421 | LNoOp <- op = JSVar (last vars)
421 | LNoOp <- op = JSVar (last vars)
423− | (LZExt _ ITBig) <- op = jsBigInt $ JSVar (last vars)
423+ | (LZExt _ ITBig) <- op = jsBigInt $ JSVar (last vars)
424− | (LPlus (ATInt ITBig)) <- op
424+ | (LPlus (ATInt ITBig)) <- op
425− , (lhs:rhs:_) <- vars = invokeMeth lhs "add" [rhs]
425+ , (lhs:rhs:_) <- vars = invokeMeth lhs "add" [rhs]
426 | (LMinus (ATInt ITBig)) <- op
426 | (LMinus (ATInt ITBig)) <- op
427− , (lhs:rhs:_) <- vars = invokeMeth lhs "minus" [rhs]
427+ , (lhs:rhs:_) <- vars = invokeMeth lhs "minus" [rhs]
428 | (LTimes (ATInt ITBig)) <- op
428 | (LTimes (ATInt ITBig)) <- op
429− , (lhs:rhs:_) <- vars = invokeMeth lhs "times" [rhs]
429+ , (lhs:rhs:_) <- vars = invokeMeth lhs "times" [rhs]
430− | (LSDiv (ATInt ITBig)) <- op
430+ | (LSDiv (ATInt ITBig)) <- op
431− , (lhs:rhs:_) <- vars = invokeMeth lhs "divide" [rhs]
431+ , (lhs:rhs:_) <- vars = invokeMeth lhs "divide" [rhs]
432− | (LSRem (ATInt ITBig)) <- op
432+ | (LSRem (ATInt ITBig)) <- op
433− , (lhs:rhs:_) <- vars = invokeMeth lhs "mod" [rhs]
433+ , (lhs:rhs:_) <- vars = invokeMeth lhs "mod" [rhs]
434− | (LEq (ATInt ITBig)) <- op
434+ | (LEq (ATInt ITBig)) <- op
435− , (lhs:rhs:_) <- vars = invokeMeth lhs "equals" [rhs]
435+ , (lhs:rhs:_) <- vars = invokeMeth lhs "equals" [rhs]
436− | (LSLt (ATInt ITBig)) <- op
436+ | (LSLt (ATInt ITBig)) <- op
437− , (lhs:rhs:_) <- vars = invokeMeth lhs "lesser" [rhs]
437+ , (lhs:rhs:_) <- vars = invokeMeth lhs "lesser" [rhs]
438− | (LSLe (ATInt ITBig)) <- op
438+ | (LSLe (ATInt ITBig)) <- op
439− , (lhs:rhs:_) <- vars = invokeMeth lhs "lesserOrEquals" [rhs]
439+ , (lhs:rhs:_) <- vars = invokeMeth lhs "lesserOrEquals" [rhs]
440− | (LSGt (ATInt ITBig)) <- op
440+ | (LSGt (ATInt ITBig)) <- op
441− , (lhs:rhs:_) <- vars = invokeMeth lhs "greater" [rhs]
441+ , (lhs:rhs:_) <- vars = invokeMeth lhs "greater" [rhs]
442− | (LSGe (ATInt ITBig)) <- op
442+ | (LSGe (ATInt ITBig)) <- op
443− , (lhs:rhs:_) <- vars = invokeMeth lhs "greaterOrEquals" [rhs]
443+ , (lhs:rhs:_) <- vars = invokeMeth lhs "greaterOrEquals" [rhs]
445 | (LPlus ATFloat) <- op
445 | (LPlus ATFloat) <- op
446− , (lhs:rhs:_) <- vars = translateBinaryOp "+" lhs rhs
446+ , (lhs:rhs:_) <- vars = translateBinaryOp "+" lhs rhs
447 | (LMinus ATFloat) <- op
447 | (LMinus ATFloat) <- op
448− , (lhs:rhs:_) <- vars = translateBinaryOp "-" lhs rhs
448+ , (lhs:rhs:_) <- vars = translateBinaryOp "-" lhs rhs
449 | (LTimes ATFloat) <- op
449 | (LTimes ATFloat) <- op
450− , (lhs:rhs:_) <- vars = translateBinaryOp "*" lhs rhs
450+ , (lhs:rhs:_) <- vars = translateBinaryOp "*" lhs rhs
451 | (LSDiv ATFloat) <- op
451 | (LSDiv ATFloat) <- op
452− , (lhs:rhs:_) <- vars = translateBinaryOp "/" lhs rhs
452+ , (lhs:rhs:_) <- vars = translateBinaryOp "/" lhs rhs
453− | (LEq ATFloat) <- op
453+ | (LEq ATFloat) <- op
454− , (lhs:rhs:_) <- vars = translateBinaryOp "==" lhs rhs
454+ , (lhs:rhs:_) <- vars = translateBinaryOp "==" lhs rhs
455− | (LSLt ATFloat) <- op
455+ | (LSLt ATFloat) <- op
456− , (lhs:rhs:_) <- vars = translateBinaryOp "<" lhs rhs
456+ , (lhs:rhs:_) <- vars = translateBinaryOp "<" lhs rhs
457− | (LSLe ATFloat) <- op
457+ | (LSLe ATFloat) <- op
458− , (lhs:rhs:_) <- vars = translateBinaryOp "<=" lhs rhs
458+ , (lhs:rhs:_) <- vars = translateBinaryOp "<=" lhs rhs
459− | (LSGt ATFloat) <- op
459+ | (LSGt ATFloat) <- op
460− , (lhs:rhs:_) <- vars = translateBinaryOp ">" lhs rhs
460+ , (lhs:rhs:_) <- vars = translateBinaryOp ">" lhs rhs
461− | (LSGe ATFloat) <- op
461+ | (LSGe ATFloat) <- op
462− , (lhs:rhs:_) <- vars = translateBinaryOp ">=" lhs rhs
462+ , (lhs:rhs:_) <- vars = translateBinaryOp ">=" lhs rhs
464 | (LPlus _) <- op
464 | (LPlus _) <- op
465 , (lhs:rhs:_) <- vars = translateBinaryOp "+" lhs rhs
465 , (lhs:rhs:_) <- vars = translateBinaryOp "+" lhs rhs
@@ -473,13 +473,13 @@ translateExpression (SOp op vars)
473 , (lhs:rhs:_) <- vars = translateBinaryOp "%" lhs rhs
473 , (lhs:rhs:_) <- vars = translateBinaryOp "%" lhs rhs
474 | (LEq _) <- op
474 | (LEq _) <- op
475 , (lhs:rhs:_) <- vars = translateBinaryOp "==" lhs rhs
475 , (lhs:rhs:_) <- vars = translateBinaryOp "==" lhs rhs
476− | (LSLt _) <- op
476+ | (LSLt _) <- op
477 , (lhs:rhs:_) <- vars = translateBinaryOp "<" lhs rhs
477 , (lhs:rhs:_) <- vars = translateBinaryOp "<" lhs rhs
478− | (LSLe _) <- op
478+ | (LSLe _) <- op
479 , (lhs:rhs:_) <- vars = translateBinaryOp "<=" lhs rhs
479 , (lhs:rhs:_) <- vars = translateBinaryOp "<=" lhs rhs
480− | (LSGt _) <- op
480+ | (LSGt _) <- op
481 , (lhs:rhs:_) <- vars = translateBinaryOp ">" lhs rhs
481 , (lhs:rhs:_) <- vars = translateBinaryOp ">" lhs rhs
482− | (LSGe _) <- op
482+ | (LSGe _) <- op
483 , (lhs:rhs:_) <- vars = translateBinaryOp ">=" lhs rhs
483 , (lhs:rhs:_) <- vars = translateBinaryOp ">=" lhs rhs
484 | (LAnd _) <- op
484 | (LAnd _) <- op
485 , (lhs:rhs:_) <- vars = translateBinaryOp "&" lhs rhs
485 , (lhs:rhs:_) <- vars = translateBinaryOp "&" lhs rhs
@@ -503,30 +503,30 @@ translateExpression (SOp op vars)
503 | LStrLen <- op
503 | LStrLen <- op
504 , (arg:_) <- vars = JSProj (JSVar arg) "length"
504 , (arg:_) <- vars = JSProj (JSVar arg) "length"
506− | (LStrInt ITNative) <- op
506+ | (LStrInt ITNative) <- op
507− , (arg:_) <- vars = jsCall "parseInt" [JSVar arg]
507+ , (arg:_) <- vars = jsCall "parseInt" [JSVar arg]
508− | (LIntStr ITNative) <- op
508+ | (LIntStr ITNative) <- op
509− , (arg:_) <- vars = jsCall "String" [JSVar arg]
509+ , (arg:_) <- vars = jsCall "String" [JSVar arg]
510− | (LSExt ITNative ITBig) <- op
510+ | (LSExt ITNative ITBig) <- op
511− , (arg:_) <- vars = jsBigInt $ JSVar arg
511+ , (arg:_) <- vars = jsBigInt $ JSVar arg
512 | (LTrunc ITBig ITNative) <- op
512 | (LTrunc ITBig ITNative) <- op
513− , (arg:_) <- vars = jsMeth (JSVar arg) "valueOf" []
513+ , (arg:_) <- vars = jsMeth (JSVar arg) "valueOf" []
514− | (LIntStr ITBig) <- op
514+ | (LIntStr ITBig) <- op
515− , (arg:_) <- vars = jsMeth (JSVar arg) "toString" []
515+ , (arg:_) <- vars = jsMeth (JSVar arg) "toString" []
516− | (LStrInt ITBig) <- op
516+ | (LStrInt ITBig) <- op
517− , (arg:_) <- vars = jsBigInt $ JSVar arg
517+ , (arg:_) <- vars = jsBigInt $ JSVar arg
518− | LFloatStr <- op
518+ | LFloatStr <- op
519− , (arg:_) <- vars = jsCall "String" [JSVar arg]
519+ , (arg:_) <- vars = jsCall "String" [JSVar arg]
520− | LStrFloat <- op
520+ | LStrFloat <- op
521− , (arg:_) <- vars = jsCall "parseFloat" [JSVar arg]
521+ , (arg:_) <- vars = jsCall "parseFloat" [JSVar arg]
522− | (LIntFloat ITNative) <- op
522+ | (LIntFloat ITNative) <- op
523− , (arg:_) <- vars = JSVar arg
523+ , (arg:_) <- vars = JSVar arg
524− | (LFloatInt ITNative) <- op
524+ | (LFloatInt ITNative) <- op
525− , (arg:_) <- vars = JSVar arg
525+ , (arg:_) <- vars = JSVar arg
526− | (LChInt ITNative) <- op
526+ | (LChInt ITNative) <- op
527− , (arg:_) <- vars = JSProj (JSVar arg) "charCodeAt(0)"
527+ , (arg:_) <- vars = JSProj (JSVar arg) "charCodeAt(0)"
528− | (LIntCh ITNative) <- op
528+ | (LIntCh ITNative) <- op
529− , (arg:_) <- vars = jsCall "String.fromCharCode" [JSVar arg]
529+ , (arg:_) <- vars = jsCall "String.fromCharCode" [JSVar arg]
531 | LFExp <- op
531 | LFExp <- op
532 , (arg:_) <- vars = jsCall "Math.exp" [JSVar arg]
532 , (arg:_) <- vars = jsCall "Math.exp" [JSVar arg]