@@ -224,14 +224,14 @@ jsSubst var (x@(JSVar old) : xs) new
224224jsSubst _ xs _ = xs
225225
226226optimizeJS :: JS -> JS
227−optimizeJS (JSApp
228− (JSFunction [arg] (JSReturn ret))
229− [val]
230− )
227+optimizeJS (JSApp (JSFunction [arg] (JSReturn ret)) [val])
231228 | JSNew con [tag, JSArray vals] <- ret =
232− JSNew con [tag, JSArray $ jsSubst arg vals (optimizeJS val)]
233− | JSApp (JSRaw tc@"__IDRRT__tailcall") [fun, JSArray args] <- ret =
234− JSApp (JSRaw tc) [fun, JSArray $ jsSubst arg args (optimizeJS val)]
229+ JSNew con [tag, JSArray $ jsSubst arg vals (optimizeJS val)]
230+
231+ | JSNew con [JSFunction [] (JSReturn (JSApp fun vars))] <- ret =
232+ JSNew con [JSFunction [] (
233+ JSReturn $ JSApp fun (jsSubst arg vars (optimizeJS val))
234+ )]
235235
236236optimizeJS (JSSeq seq) =
237237 JSSeq (map optimizeJS seq)