diff options
author | 2012-12-11 15:58:23 -0500 | |
---|---|---|
committer | 2012-12-11 15:58:23 -0500 | |
commit | 92b7e9f1eda84b05bc50f3052913d33b20e067b7 (patch) | |
tree | a3420f76f92ec80cb6ca0d78438ea7ec9cfae0df /src | |
parent | 7ee7be7c9fcb86e63aadb8f3a21439961f17b63d (diff) |
Ignore polymorphism in JavaScript calls to custom FFI functions, allowing a kind of simple dynamic typing (unsafe, of course)
Diffstat (limited to 'src')
-rw-r--r-- | src/monoize.sml | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/monoize.sml b/src/monoize.sml index b1cef64b..39e4853b 100644 --- a/src/monoize.sml +++ b/src/monoize.sml @@ -4087,7 +4087,15 @@ fun monoExp (env, st, fm) (all as (e, loc)) = in ((L'.EAbs (x, monoType env dom, monoType env ran, e), loc), fm) end - | L.ECApp _ => poly () + + | L.ECApp (e, _) => + let + val (e, fm) = monoExp (env, st, fm) e + in + case #1 e of + L'.EFfi _ => (e, fm) + | _ => poly () + end | L.ECAbs _ => poly () | L.EFfi mx => ((L'.EFfi mx, loc), fm) |