on master help sign in
javascript: remove broken optimization
commitb875c2f33bfa443af4136ec6b8d7e36fabfcdc73 authorraichoo <raichoo@googlemail.com> dateSat 13 Jul 2013, 01:55 (13 years ago) parent93af028
1 file changed−70
src/IRTS/CodegenJavaScript.hs−70
src/IRTS/CodegenJavaScript.hs−70
@@ -149,76 +149,6 @@ translateParameterlist =
149149 translateParameter (UN name) = translateIdentifier name
150150
151151translateDeclaration :: (String, SDecl) -> String
152−translateDeclaration (path@"__IDR__", SFun name@(UN op) _ _ _)
153− | "prim__addBigInt" <- op =
154− translateBinaryPrim $ \op0 op1 -> op0 ++ ".add(" ++ op1 ++ ")"
155− | "prim__subBigInt" <- op =
156− translateBinaryPrim $ \op0 op1 -> op0 ++ ".minus(" ++ op1 ++ ")"
157− | "prim__divBigInt" <- op =
158− translateBinaryPrim $ \op0 op1 -> op0 ++ ".divide(" ++ op1 ++ ")"
159− | "prim__sremBigInt" <- op =
160− translateBinaryPrim $ \op0 op1 -> op0 ++ ".mod(" ++ op1 ++ ")"
161− | "prim__mulBigInt" <- op =
162− translateBinaryPrim $ \op0 op1 -> op0 ++ ".times(" ++ op1 ++ ")"
163− | "prim__ltBigInt" <- op =
164− translateBinaryPrim $ \op0 op1 -> op0 ++ ".lesser(" ++ op1 ++ ")"
165− | "prim__lteBigInt" <- op =
166− translateBinaryPrim $ \op0 op1 -> op0 ++ ".lesserOrEquals(" ++ op1 ++ ")"
167− | "prim__gtBigInt" <- op =
168− translateBinaryPrim $ \op0 op1 -> op0 ++ ".greater(" ++ op1 ++ ")"
169− | "prim__gteBigInt" <- op =
170− translateBinaryPrim $ \op0 op1 -> op0 ++ ".greaterOrEquals(" ++ op1 ++ ")"
171− | "prim__eqBigInt" <- op =
172− translateBinaryPrim $ \op0 op1 -> op0 ++ ".equals(" ++ op1 ++ ")"
173−
174− | "prim__addInt" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ "+" ++ op1
175− | "prim__subInt" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ "-" ++ op1
176− | "prim__divInt" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ "/" ++ op1
177− | "prim__mulInt" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ "*" ++ op1
178− | "prim__ltInt" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ "<" ++ op1
179− | "prim__lteInt" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ "<=" ++ op1
180− | "prim__gtInt" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ ">" ++ op1
181− | "prim__gteInt" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ ">=" ++ op1
182− | "prim__eqInt" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ "==" ++ op1
183−
184− | "prim__addFloat" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ "+" ++ op1
185− | "prim__subFloat" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ "-" ++ op1
186− | "prim__divFloat" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ "/" ++ op1
187− | "prim__mulFloat" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ "*" ++ op1
188− | "prim__ltFloat" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ "<" ++ op1
189− | "prim__lteFloat" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ "<=" ++ op1
190− | "prim__gtFloat" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ ">" ++ op1
191− | "prim__gteFloat" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ ">=" ++ op1
192− | "prim__eqFloat" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ "==" ++ op1
193−
194− | "prim__ltChar" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ "<" ++ op1
195− | "prim__lteChar" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ "<=" ++ op1
196− | "prim__gtChar" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ ">" ++ op1
197− | "prim__gteChar" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ ">=" ++ op1
198− | "prim__eqChar" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ "==" ++ op1
199−
200− | "prim__concat" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ "+" ++ op1
201− | "prim__ltString" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ "<" ++ op1
202− | "prim__eqString" <- op = translateBinaryPrim $ \op0 op1 -> op0 ++ "==" ++ op1
203− | "prim__lenString" <- op = translateUnaryPrim $ \op0 -> op0 ++ ".length"
204−
205− where translateBinaryPrim :: (String -> String -> String) -> String
206− translateBinaryPrim op =
207− "var " ++ path ++ translateName name
208− ++ " = function(op0, op1){return "
209− ++ op (primArg 0) (primArg 1)
210− ++ ";};\n"
211−
212− translateUnaryPrim :: (String -> String) -> String
213− translateUnaryPrim op =
214− "var " ++ path ++ translateName name
215− ++ " = function(op0){return "
216− ++ op (primArg 0)
217− ++ ";};\n"
218−
219− primArg :: Int -> String
220− primArg n = idrNamespace ++ "EVAL0(op" ++ show n ++ ")"
221−
222152translateDeclaration (path, SFun name params stackSize body) =
223153 "var " ++ concat (path ++ [translateName name])
224154 ++ " = function("