@@ -857,7 +857,8 @@ unfoldLookupTable input =
857 adaptRuntime $ expandCons evals applys js
857 adaptRuntime $ expandCons evals applys js
859 adaptRuntime :: [JS] -> [JS]
859 adaptRuntime :: [JS] -> [JS]
860− adaptRuntime js = (adaptApply . adaptCon) js
861+ (adaptEval . adaptApply . adaptCon) js
863 adaptApply :: [JS] -> [JS]
864 adaptApply :: [JS] -> [JS]
@@ -885,6 +886,30 @@ unfoldLookupTable input =
889+ adaptEval :: [JS] -> [JS]
890+ adaptEval js = adaptEval' [] js
892+ adaptEval' :: [JS] -> [JS] -> [JS]
893+ adaptEval' front ((JSAlloc "__IDR__mEVAL0" (Just _)):back) =
896+ adaptEval' front (next:back) =
897+ adaptEval' (front ++ [next]) back
899+ adaptEval' front [] = front
902+ JSAlloc "__IDR__mEVAL0" (Just $ JSFunction ["marg0"] (JSReturn $
904+ (JSIdent "marg0" `jsInstanceOf` jsCon) `jsAnd`
905+ (JSProj (JSIdent "marg0") "eval")
907+ (JSProj (JSIdent "marg0") "eval")
888 adaptCon js =
913 adaptCon js =
889 adaptCon' [] js
914 adaptCon' [] js