annotate tests/jsinj.ur @ 592:a8be5a2068a5

Injecting strings and bools
author Adam Chlipala <adamc@hcoop.net>
date Thu, 01 Jan 2009 16:11:42 -0500
parents 8f8771f32909
children f277f5faebcd
rev   line source
adamc@590 1 fun getOpt (t ::: Type) (o : option t) (v : t) : t =
adamc@590 2 case o of
adamc@590 3 None => v
adamc@590 4 | Some x => x
adamc@590 5
adamc@591 6 cookie int : int
adamc@591 7 cookie float : float
adamc@592 8 cookie string : string
adamc@592 9 cookie bool : bool
adamc@591 10
adamc@590 11 fun main () : transaction page =
adamc@590 12 n <- getCookie int;
adamc@591 13 n <- return (getOpt n 7);
adamc@591 14 sn <- source 6;
adamc@591 15
adamc@591 16 f <- getCookie float;
adamc@591 17 f <- return (getOpt f 1.23);
adamc@591 18 sf <- source 4.56;
adamc@591 19
adamc@592 20 s <- getCookie string;
adamc@592 21 s <- return (getOpt s "Hi");
adamc@592 22 ss <- source "Bye";
adamc@592 23
adamc@592 24 b <- getCookie bool;
adamc@592 25 b <- return (getOpt b True);
adamc@592 26 sb <- source False;
adamc@592 27
adamc@590 28 return <xml><body>
adamc@590 29 <dyn signal={n <- signal sn; return <xml>{[n]}</xml>}/>
adamc@591 30 <a onclick={set sn n}>CHANGE</a><br/>
adamc@591 31
adamc@591 32 <dyn signal={f <- signal sf; return <xml>{[f]}</xml>}/>
adamc@591 33 <a onclick={set sf f}>CHANGE</a><br/>
adamc@592 34
adamc@592 35 <dyn signal={s <- signal ss; return <xml>{[s]}</xml>}/>
adamc@592 36 <a onclick={set ss s}>CHANGE</a><br/>
adamc@592 37
adamc@592 38 <dyn signal={b <- signal sb; return <xml>{[b]}</xml>}/>
adamc@592 39 <a onclick={set sb b}>CHANGE</a><br/>
adamc@590 40 </body></xml>