elm/libraries/Native/Trampoline.js

25 lines
667 B
JavaScript
Raw Normal View History

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) {
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"});
continue;
}
}
}
2014-02-19 21:03:52 +00:00
return elm.Native.Trampoline.values = {
trampoline:trampoline
};
};