2014-01-04 10:35:23 +00:00
|
|
|
Elm.Native.Trampoline = {};
|
|
|
|
Elm.Native.Trampoline.make = function(elm) {
|
|
|
|
elm.Native = elm.Native || {};
|
|
|
|
elm.Native.Trampoline = elm.Native.Trampoline || {};
|
|
|
|
if (elm.Native.Trampoline.values) return elm.Native.Trampoline.values;
|
|
|
|
|
|
|
|
// trampoline : Trampoline a -> a
|
2014-02-19 21:03:52 +00:00
|
|
|
function trampoline(t) {
|
2014-01-04 10:35:23 +00:00
|
|
|
var tramp = t;
|
|
|
|
while(true) {
|
2014-01-20 20:38:12 +00:00
|
|
|
switch(tramp.ctor) {
|
|
|
|
case "Done":
|
|
|
|
return tramp._0;
|
|
|
|
case "Continue":
|
|
|
|
tramp = tramp._0({ctor: "_Tuple0"});
|
2014-01-04 10:35:23 +00:00
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2014-02-19 21:03:52 +00:00
|
|
|
return elm.Native.Trampoline.values = {
|
|
|
|
trampoline:trampoline
|
|
|
|
};
|
2014-01-04 10:35:23 +00:00
|
|
|
};
|