@@ -95,6 +95,9 @@ tco' = everywhereOnJS convert
9595 collectSelfCallArgs allArgumentValues (JSApp fn args') = collectSelfCallArgs (args' : allArgumentValues) fn
9696 collectSelfCallArgs allArgumentValues _ = allArgumentValues
9797 isSelfCall :: String -> JS -> Bool
98− isSelfCall ident (JSApp (JSVar ident') _) | ident == ident' = True
99− isSelfCall ident (JSApp fn _) = isSelfCall ident fn
98+ isSelfCall ident (JSApp (JSVar ident') args) | ident == ident' && not (any isFunction args) = True
99+ isSelfCall ident (JSApp fn args) | not (any isFunction args) = isSelfCall ident fn
100100 isSelfCall _ _ = False
101+ isFunction :: JS -> Bool
102+ isFunction (JSFunction _ _ _) = True
103+ isFunction _ = False