on master help sign in
javascript: optimize case for trampolines
caa3193raichoo
src/IRTS/CodegenJavaScript.hs+7
@@ -233,6 +233,13 @@ optimizeJS (JSApp (JSFunction [arg] (JSReturn ret)) [val])
233 JSReturn $ JSApp fun (jsSubst arg vars (optimizeJS val))
233 JSReturn $ JSApp fun (jsSubst arg vars (optimizeJS val))
234 )]
234 )]
235
235
236+ | JSApp (JSRaw "__IDRRT__tailcall") [JSFunction [] (
237+ JSReturn (JSApp fun args)
238+ )] <- ret =
239+ JSApp (JSRaw "__IDRRT__tailcall") [JSFunction [] (
240+ JSReturn $ JSApp fun (jsSubst arg args (optimizeJS val))
241+ )]
242+
236optimizeJS (JSSeq seq) =
243optimizeJS (JSSeq seq) =
237 JSSeq (map optimizeJS seq)
244 JSSeq (map optimizeJS seq)
238
245