# HG changeset patch # User Adam Chlipala # Date 1405497971 14400 # Node ID 3d10ae22abd6a2965fcbbd773aa17c324903ea1d # Parent ec2c7a22df0dd678166574311ea44c12e5ed86ae Default 'jsFunc' for less-safe FFI diff -r ec2c7a22df0d -r 3d10ae22abd6 doc/manual.tex --- a/doc/manual.tex Sun Jul 13 06:14:23 2014 -0400 +++ b/doc/manual.tex Wed Jul 16 04:06:11 2014 -0400 @@ -2552,6 +2552,8 @@ \item \texttt{jsFunc "putJsFuncNameHere"} \end{itemize} +When no \texttt{jsFunc} directive is present, the function is assumed to map to a JavaScript function of the same name, if used in a client-side context. + \section{Compiler Phases} diff -r ec2c7a22df0d -r 3d10ae22abd6 src/corify.sml --- a/src/corify.sml Sun Jul 13 06:14:23 2014 -0400 +++ b/src/corify.sml Wed Jul 16 04:06:11 2014 -0400 @@ -1221,6 +1221,11 @@ | Source.ServerOnly => Settings.addServerOnly name | Source.JsFunc s => Settings.addJsFunc (name, s)) modes; + if List.exists (fn Source.JsFunc _ => true | _ => false) modes then + () + else + Settings.addJsFunc (name, #2 name); + if isTrans andalso not (Settings.isBenignEffectful name) then Settings.addEffectful name else diff -r ec2c7a22df0d -r 3d10ae22abd6 tests/lessSafeFfi.ur --- a/tests/lessSafeFfi.ur Sun Jul 13 06:14:23 2014 -0400 +++ b/tests/lessSafeFfi.ur Wed Jul 16 04:06:11 2014 -0400 @@ -4,13 +4,15 @@ ffi adder : int -> int -> int ffi bup jsFunc "alert" : string -> transaction unit +ffi alert : string -> transaction unit fun other () : transaction page = (*bar 17; q <- baz;*) return (*{[foo 42]}, {[q]}*) -