// Compiled by ClojureScript 1.9.293 {} goog.provide('javelin.core'); goog.require('cljs.core'); goog.require('tailrecursion.priority_map'); javelin.core._STAR_tx_STAR_ = null; javelin.core.last_rank = cljs.core.atom.call(null,(0)); /** * Like tree-seq but traversal is breadth-first instead of depth-first. */ javelin.core.bf_seq = (function javelin$core$bf_seq(branch_QMARK_,children,root){ var walk = (function javelin$core$bf_seq_$_walk(queue){ var temp__4657__auto__ = cljs.core.peek.call(null,queue); if(cljs.core.truth_(temp__4657__auto__)){ var node = temp__4657__auto__; return (new cljs.core.LazySeq(null,((function (node,temp__4657__auto__){ return (function (){ return cljs.core.cons.call(null,node,javelin$core$bf_seq_$_walk.call(null,cljs.core.into.call(null,cljs.core.pop.call(null,queue),(cljs.core.truth_(branch_QMARK_.call(null,node))?children.call(null,node):null)))); });})(node,temp__4657__auto__)) ,null,null)); } else { return null; } }); return walk.call(null,cljs.core.conj.call(null,cljs.core.PersistentQueue.EMPTY,root)); }); javelin.core.propagate_STAR_ = (function javelin$core$propagate_STAR_(pri_map){ while(true){ var temp__4657__auto__ = cljs.core.first.call(null,cljs.core.peek.call(null,pri_map)); if(cljs.core.truth_(temp__4657__auto__)){ var next = temp__4657__auto__; var popq = cljs.core.pop.call(null,pri_map); var old = next.prev; var new$ = (function (){var temp__4655__auto__ = next.thunk; if(cljs.core.truth_(temp__4655__auto__)){ var f = temp__4655__auto__; return f.call(null); } else { return next.state; } })(); var diff_QMARK_ = cljs.core.not_EQ_.call(null,new$,old); if(diff_QMARK_){ next.prev = new$; cljs.core._notify_watches.call(null,next,old,new$); } else { } var G__26943 = ((!(diff_QMARK_))?popq:cljs.core.reduce.call(null,((function (pri_map,popq,old,new$,diff_QMARK_,next,temp__4657__auto__){ return (function (p1__26941_SHARP_,p2__26942_SHARP_){ return cljs.core.assoc.call(null,p1__26941_SHARP_,p2__26942_SHARP_,p2__26942_SHARP_.rank); });})(pri_map,popq,old,new$,diff_QMARK_,next,temp__4657__auto__)) ,popq,next.sinks)); pri_map = G__26943; continue; } else { return null; } break; } }); javelin.core.deref_STAR_ = (function javelin$core$deref_STAR_(x){ if(cljs.core.truth_(javelin.core.cell_QMARK_.call(null,x))){ return cljs.core.deref.call(null,x); } else { return x; } }); javelin.core.next_rank = (function javelin$core$next_rank(){ return cljs.core.swap_BANG_.call(null,javelin.core.last_rank,cljs.core.inc); }); javelin.core.cell__GT_pm = (function javelin$core$cell__GT_pm(c){ return tailrecursion.priority_map.priority_map.call(null,c,c.rank); }); javelin.core.add_sync_BANG_ = (function javelin$core$add_sync_BANG_(c){ return cljs.core.swap_BANG_.call(null,javelin.core._STAR_tx_STAR_,cljs.core.assoc,c,c.rank); }); javelin.core.safe_nth = (function javelin$core$safe_nth(c,i){ try{return cljs.core.nth.call(null,c,i); }catch (e26945){if((e26945 instanceof Error)){ var _ = e26945; return null; } else { throw e26945; } }}); javelin.core.propagate_BANG_ = (function javelin$core$propagate_BANG_(c){ if(cljs.core.truth_(javelin.core._STAR_tx_STAR_)){ var G__26948 = c; javelin.core.add_sync_BANG_.call(null,G__26948); return G__26948; } else { var G__26949 = c; javelin.core.propagate_STAR_.call(null,javelin.core.cell__GT_pm.call(null,G__26949)); return G__26949; } }); javelin.core.destroy_cell_BANG_ = (function javelin$core$destroy_cell_BANG_(var_args){ var args__26159__auto__ = []; var len__26152__auto___26960 = arguments.length; var i__26153__auto___26961 = (0); while(true){ if((i__26153__auto___26961 < len__26152__auto___26960)){ args__26159__auto__.push((arguments[i__26153__auto___26961])); var G__26962 = (i__26153__auto___26961 + (1)); i__26153__auto___26961 = G__26962; continue; } else { } break; } var argseq__26160__auto__ = ((((1) < args__26159__auto__.length))?(new cljs.core.IndexedSeq(args__26159__auto__.slice((1)),(0),null)):null); return javelin.core.destroy_cell_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__26160__auto__); }); javelin.core.destroy_cell_BANG_.cljs$core$IFn$_invoke$arity$variadic = (function (this$,p__26952){ var vec__26953 = p__26952; var keep_watches_QMARK_ = cljs.core.nth.call(null,vec__26953,(0),null); var srcs = this$.sources; this$.sources = cljs.core.PersistentVector.EMPTY; this$.update = null; this$.thunk = null; if(cljs.core.truth_(keep_watches_QMARK_)){ } else { this$.watches = cljs.core.PersistentArrayMap.EMPTY; } var seq__26956 = cljs.core.seq.call(null,srcs); var chunk__26957 = null; var count__26958 = (0); var i__26959 = (0); while(true){ if((i__26959 < count__26958)){ var src = cljs.core._nth.call(null,chunk__26957,i__26959); if(cljs.core.truth_(javelin.core.cell_QMARK_.call(null,src))){ src.sinks = cljs.core.disj.call(null,src.sinks,this$); } else { } var G__26963 = seq__26956; var G__26964 = chunk__26957; var G__26965 = count__26958; var G__26966 = (i__26959 + (1)); seq__26956 = G__26963; chunk__26957 = G__26964; count__26958 = G__26965; i__26959 = G__26966; continue; } else { var temp__4657__auto__ = cljs.core.seq.call(null,seq__26956); if(temp__4657__auto__){ var seq__26956__$1 = temp__4657__auto__; if(cljs.core.chunked_seq_QMARK_.call(null,seq__26956__$1)){ var c__25858__auto__ = cljs.core.chunk_first.call(null,seq__26956__$1); var G__26967 = cljs.core.chunk_rest.call(null,seq__26956__$1); var G__26968 = c__25858__auto__; var G__26969 = cljs.core.count.call(null,c__25858__auto__); var G__26970 = (0); seq__26956 = G__26967; chunk__26957 = G__26968; count__26958 = G__26969; i__26959 = G__26970; continue; } else { var src = cljs.core.first.call(null,seq__26956__$1); if(cljs.core.truth_(javelin.core.cell_QMARK_.call(null,src))){ src.sinks = cljs.core.disj.call(null,src.sinks,this$); } else { } var G__26971 = cljs.core.next.call(null,seq__26956__$1); var G__26972 = null; var G__26973 = (0); var G__26974 = (0); seq__26956 = G__26971; chunk__26957 = G__26972; count__26958 = G__26973; i__26959 = G__26974; continue; } } else { return null; } } break; } }); javelin.core.destroy_cell_BANG_.cljs$lang$maxFixedArity = (1); javelin.core.destroy_cell_BANG_.cljs$lang$applyTo = (function (seq26950){ var G__26951 = cljs.core.first.call(null,seq26950); var seq26950__$1 = cljs.core.next.call(null,seq26950); return javelin.core.destroy_cell_BANG_.cljs$core$IFn$_invoke$arity$variadic(G__26951,seq26950__$1); }); javelin.core.set_formula_BANG_ = (function javelin$core$set_formula_BANG_(var_args){ var args__26159__auto__ = []; var len__26152__auto___26995 = arguments.length; var i__26153__auto___26996 = (0); while(true){ if((i__26153__auto___26996 < len__26152__auto___26995)){ args__26159__auto__.push((arguments[i__26153__auto___26996])); var G__26997 = (i__26153__auto___26996 + (1)); i__26153__auto___26996 = G__26997; continue; } else { } break; } var argseq__26160__auto__ = ((((1) < args__26159__auto__.length))?(new cljs.core.IndexedSeq(args__26159__auto__.slice((1)),(0),null)):null); return javelin.core.set_formula_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__26160__auto__); }); javelin.core.set_formula_BANG_.cljs$core$IFn$_invoke$arity$variadic = (function (this$,p__26979){ var vec__26980 = p__26979; var f = cljs.core.nth.call(null,vec__26980,(0),null); var sources = cljs.core.nth.call(null,vec__26980,(1),null); javelin.core.destroy_cell_BANG_.call(null,this$,true); if(cljs.core.truth_(f)){ this$.sources = cljs.core.conj.call(null,cljs.core.vec.call(null,sources),f); var seq__26983_26998 = cljs.core.seq.call(null,this$.sources); var chunk__26984_26999 = null; var count__26985_27000 = (0); var i__26986_27001 = (0); while(true){ if((i__26986_27001 < count__26985_27000)){ var source_27002 = cljs.core._nth.call(null,chunk__26984_26999,i__26986_27001); if(cljs.core.truth_(javelin.core.cell_QMARK_.call(null,source_27002))){ source_27002.sinks = cljs.core.conj.call(null,source_27002.sinks,this$); if((source_27002.rank > this$.rank)){ var seq__26987_27003 = cljs.core.seq.call(null,javelin.core.bf_seq.call(null,cljs.core.identity,((function (seq__26983_26998,chunk__26984_26999,count__26985_27000,i__26986_27001,source_27002,vec__26980,f,sources){ return (function (p1__26975_SHARP_){ return p1__26975_SHARP_.sinks; });})(seq__26983_26998,chunk__26984_26999,count__26985_27000,i__26986_27001,source_27002,vec__26980,f,sources)) ,source_27002)); var chunk__26988_27004 = null; var count__26989_27005 = (0); var i__26990_27006 = (0); while(true){ if((i__26990_27006 < count__26989_27005)){ var dep_27007 = cljs.core._nth.call(null,chunk__26988_27004,i__26990_27006); dep_27007.rank = javelin.core.next_rank.call(null); var G__27008 = seq__26987_27003; var G__27009 = chunk__26988_27004; var G__27010 = count__26989_27005; var G__27011 = (i__26990_27006 + (1)); seq__26987_27003 = G__27008; chunk__26988_27004 = G__27009; count__26989_27005 = G__27010; i__26990_27006 = G__27011; continue; } else { var temp__4657__auto___27012 = cljs.core.seq.call(null,seq__26987_27003); if(temp__4657__auto___27012){ var seq__26987_27013__$1 = temp__4657__auto___27012; if(cljs.core.chunked_seq_QMARK_.call(null,seq__26987_27013__$1)){ var c__25858__auto___27014 = cljs.core.chunk_first.call(null,seq__26987_27013__$1); var G__27015 = cljs.core.chunk_rest.call(null,seq__26987_27013__$1); var G__27016 = c__25858__auto___27014; var G__27017 = cljs.core.count.call(null,c__25858__auto___27014); var G__27018 = (0); seq__26987_27003 = G__27015; chunk__26988_27004 = G__27016; count__26989_27005 = G__27017; i__26990_27006 = G__27018; continue; } else { var dep_27019 = cljs.core.first.call(null,seq__26987_27013__$1); dep_27019.rank = javelin.core.next_rank.call(null); var G__27020 = cljs.core.next.call(null,seq__26987_27013__$1); var G__27021 = null; var G__27022 = (0); var G__27023 = (0); seq__26987_27003 = G__27020; chunk__26988_27004 = G__27021; count__26989_27005 = G__27022; i__26990_27006 = G__27023; continue; } } else { } } break; } } else { } } else { } var G__27024 = seq__26983_26998; var G__27025 = chunk__26984_26999; var G__27026 = count__26985_27000; var G__27027 = (i__26986_27001 + (1)); seq__26983_26998 = G__27024; chunk__26984_26999 = G__27025; count__26985_27000 = G__27026; i__26986_27001 = G__27027; continue; } else { var temp__4657__auto___27028 = cljs.core.seq.call(null,seq__26983_26998); if(temp__4657__auto___27028){ var seq__26983_27029__$1 = temp__4657__auto___27028; if(cljs.core.chunked_seq_QMARK_.call(null,seq__26983_27029__$1)){ var c__25858__auto___27030 = cljs.core.chunk_first.call(null,seq__26983_27029__$1); var G__27031 = cljs.core.chunk_rest.call(null,seq__26983_27029__$1); var G__27032 = c__25858__auto___27030; var G__27033 = cljs.core.count.call(null,c__25858__auto___27030); var G__27034 = (0); seq__26983_26998 = G__27031; chunk__26984_26999 = G__27032; count__26985_27000 = G__27033; i__26986_27001 = G__27034; continue; } else { var source_27035 = cljs.core.first.call(null,seq__26983_27029__$1); if(cljs.core.truth_(javelin.core.cell_QMARK_.call(null,source_27035))){ source_27035.sinks = cljs.core.conj.call(null,source_27035.sinks,this$); if((source_27035.rank > this$.rank)){ var seq__26991_27036 = cljs.core.seq.call(null,javelin.core.bf_seq.call(null,cljs.core.identity,((function (seq__26983_26998,chunk__26984_26999,count__26985_27000,i__26986_27001,source_27035,seq__26983_27029__$1,temp__4657__auto___27028,vec__26980,f,sources){ return (function (p1__26975_SHARP_){ return p1__26975_SHARP_.sinks; });})(seq__26983_26998,chunk__26984_26999,count__26985_27000,i__26986_27001,source_27035,seq__26983_27029__$1,temp__4657__auto___27028,vec__26980,f,sources)) ,source_27035)); var chunk__26992_27037 = null; var count__26993_27038 = (0); var i__26994_27039 = (0); while(true){ if((i__26994_27039 < count__26993_27038)){ var dep_27040 = cljs.core._nth.call(null,chunk__26992_27037,i__26994_27039); dep_27040.rank = javelin.core.next_rank.call(null); var G__27041 = seq__26991_27036; var G__27042 = chunk__26992_27037; var G__27043 = count__26993_27038; var G__27044 = (i__26994_27039 + (1)); seq__26991_27036 = G__27041; chunk__26992_27037 = G__27042; count__26993_27038 = G__27043; i__26994_27039 = G__27044; continue; } else { var temp__4657__auto___27045__$1 = cljs.core.seq.call(null,seq__26991_27036); if(temp__4657__auto___27045__$1){ var seq__26991_27046__$1 = temp__4657__auto___27045__$1; if(cljs.core.chunked_seq_QMARK_.call(null,seq__26991_27046__$1)){ var c__25858__auto___27047 = cljs.core.chunk_first.call(null,seq__26991_27046__$1); var G__27048 = cljs.core.chunk_rest.call(null,seq__26991_27046__$1); var G__27049 = c__25858__auto___27047; var G__27050 = cljs.core.count.call(null,c__25858__auto___27047); var G__27051 = (0); seq__26991_27036 = G__27048; chunk__26992_27037 = G__27049; count__26993_27038 = G__27050; i__26994_27039 = G__27051; continue; } else { var dep_27052 = cljs.core.first.call(null,seq__26991_27046__$1); dep_27052.rank = javelin.core.next_rank.call(null); var G__27053 = cljs.core.next.call(null,seq__26991_27046__$1); var G__27054 = null; var G__27055 = (0); var G__27056 = (0); seq__26991_27036 = G__27053; chunk__26992_27037 = G__27054; count__26993_27038 = G__27055; i__26994_27039 = G__27056; continue; } } else { } } break; } } else { } } else { } var G__27057 = cljs.core.next.call(null,seq__26983_27029__$1); var G__27058 = null; var G__27059 = (0); var G__27060 = (0); seq__26983_26998 = G__27057; chunk__26984_26999 = G__27058; count__26985_27000 = G__27059; i__26986_27001 = G__27060; continue; } } else { } } break; } var compute_27061 = ((function (vec__26980,f,sources){ return (function (p1__26976_SHARP_){ return cljs.core.apply.call(null,javelin.core.deref_STAR_.call(null,cljs.core.peek.call(null,p1__26976_SHARP_)),cljs.core.map.call(null,javelin.core.deref_STAR_,cljs.core.pop.call(null,p1__26976_SHARP_))); });})(vec__26980,f,sources)) ; this$.thunk = ((function (compute_27061,vec__26980,f,sources){ return (function (){ return this$.state = compute_27061.call(null,this$.sources); });})(compute_27061,vec__26980,f,sources)) ; } else { } return javelin.core.propagate_BANG_.call(null,this$); }); javelin.core.set_formula_BANG_.cljs$lang$maxFixedArity = (1); javelin.core.set_formula_BANG_.cljs$lang$applyTo = (function (seq26977){ var G__26978 = cljs.core.first.call(null,seq26977); var seq26977__$1 = cljs.core.next.call(null,seq26977); return javelin.core.set_formula_BANG_.cljs$core$IFn$_invoke$arity$variadic(G__26978,seq26977__$1); }); /** * @constructor * @implements {cljs.core.IWatchable} * @implements {cljs.core.IReset} * @implements {cljs.core.ISwap} * @implements {cljs.core.IMeta} * @implements {cljs.core.IDeref} * @implements {cljs.core.IPrintWithWriter} * @implements {cljs.core.IWithMeta} */ javelin.core.Cell = (function (meta,state,rank,prev,sources,sinks,thunk,watches,update){ this.meta = meta; this.state = state; this.rank = rank; this.prev = prev; this.sources = sources; this.sinks = sinks; this.thunk = thunk; this.watches = watches; this.update = update; this.cljs$lang$protocol_mask$partition0$ = 2147909632; this.cljs$lang$protocol_mask$partition1$ = 98306; }) javelin.core.Cell.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (this$,w,_){ var self__ = this; var this$__$1 = this; return cljs.core.write_all.call(null,w,"#<Cell: ",cljs.core.pr_str.call(null,self__.state),">"); }); javelin.core.Cell.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this$,meta__$1){ var self__ = this; var this$__$1 = this; return (new javelin.core.Cell(meta__$1,self__.state,self__.rank,self__.prev,self__.sources,self__.sinks,self__.thunk,self__.watches,self__.update)); }); javelin.core.Cell.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this$){ var self__ = this; var this$__$1 = this; return self__.meta; }); javelin.core.Cell.prototype.cljs$core$IDeref$_deref$arity$1 = (function (this$){ var self__ = this; var this$__$1 = this; return this$__$1.state; }); javelin.core.Cell.prototype.cljs$core$IReset$_reset_BANG_$arity$2 = (function (this$,x){ var self__ = this; var this$__$1 = this; if(cljs.core.truth_(javelin.core.lens_QMARK_.call(null,this$__$1))){ this$__$1.update.call(null,x); } else { if(cljs.core.truth_(javelin.core.input_QMARK_.call(null,this$__$1))){ this$__$1.state = x; javelin.core.propagate_BANG_.call(null,this$__$1); } else { throw (new Error("can't swap! or reset! formula cell")); } } return this$__$1.state; }); javelin.core.Cell.prototype.cljs$core$ISwap$_swap_BANG_$arity$2 = (function (this$,f){ var self__ = this; var this$__$1 = this; return cljs.core.reset_BANG_.call(null,this$__$1,f.call(null,this$__$1.state)); }); javelin.core.Cell.prototype.cljs$core$ISwap$_swap_BANG_$arity$3 = (function (this$,f,a){ var self__ = this; var this$__$1 = this; return cljs.core.reset_BANG_.call(null,this$__$1,f.call(null,this$__$1.state,a)); }); javelin.core.Cell.prototype.cljs$core$ISwap$_swap_BANG_$arity$4 = (function (this$,f,a,b){ var self__ = this; var this$__$1 = this; return cljs.core.reset_BANG_.call(null,this$__$1,f.call(null,this$__$1.state,a,b)); }); javelin.core.Cell.prototype.cljs$core$ISwap$_swap_BANG_$arity$5 = (function (this$,f,a,b,xs){ var self__ = this; var this$__$1 = this; return cljs.core.reset_BANG_.call(null,this$__$1,cljs.core.apply.call(null,f,this$__$1.state,a,b,xs)); }); javelin.core.Cell.prototype.cljs$core$IWatchable$_notify_watches$arity$3 = (function (this$,o,n){ var self__ = this; var this$__$1 = this; var seq__27062 = cljs.core.seq.call(null,self__.watches); var chunk__27063 = null; var count__27064 = (0); var i__27065 = (0); while(true){ if((i__27065 < count__27064)){ var vec__27066 = cljs.core._nth.call(null,chunk__27063,i__27065); var key = cljs.core.nth.call(null,vec__27066,(0),null); var f = cljs.core.nth.call(null,vec__27066,(1),null); f.call(null,key,this$__$1,o,n); var G__27072 = seq__27062; var G__27073 = chunk__27063; var G__27074 = count__27064; var G__27075 = (i__27065 + (1)); seq__27062 = G__27072; chunk__27063 = G__27073; count__27064 = G__27074; i__27065 = G__27075; continue; } else { var temp__4657__auto__ = cljs.core.seq.call(null,seq__27062); if(temp__4657__auto__){ var seq__27062__$1 = temp__4657__auto__; if(cljs.core.chunked_seq_QMARK_.call(null,seq__27062__$1)){ var c__25858__auto__ = cljs.core.chunk_first.call(null,seq__27062__$1); var G__27076 = cljs.core.chunk_rest.call(null,seq__27062__$1); var G__27077 = c__25858__auto__; var G__27078 = cljs.core.count.call(null,c__25858__auto__); var G__27079 = (0); seq__27062 = G__27076; chunk__27063 = G__27077; count__27064 = G__27078; i__27065 = G__27079; continue; } else { var vec__27069 = cljs.core.first.call(null,seq__27062__$1); var key = cljs.core.nth.call(null,vec__27069,(0),null); var f = cljs.core.nth.call(null,vec__27069,(1),null); f.call(null,key,this$__$1,o,n); var G__27080 = cljs.core.next.call(null,seq__27062__$1); var G__27081 = null; var G__27082 = (0); var G__27083 = (0); seq__27062 = G__27080; chunk__27063 = G__27081; count__27064 = G__27082; i__27065 = G__27083; continue; } } else { return null; } } break; } }); javelin.core.Cell.prototype.cljs$core$IWatchable$_add_watch$arity$3 = (function (this$,k,f){ var self__ = this; var this$__$1 = this; return this$__$1.watches = cljs.core.assoc.call(null,self__.watches,k,f); }); javelin.core.Cell.prototype.cljs$core$IWatchable$_remove_watch$arity$2 = (function (this$,k){ var self__ = this; var this$__$1 = this; return this$__$1.watches = cljs.core.dissoc.call(null,self__.watches,k); }); javelin.core.Cell.getBasis = (function (){ return new cljs.core.PersistentVector(null, 9, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"meta","meta",-1154898805,null),new cljs.core.Symbol(null,"state","state",-348086572,null),new cljs.core.Symbol(null,"rank","rank",-66196975,null),new cljs.core.Symbol(null,"prev","prev",43462301,null),new cljs.core.Symbol(null,"sources","sources",1319365103,null),new cljs.core.Symbol(null,"sinks","sinks",-1243609492,null),new cljs.core.Symbol(null,"thunk","thunk",74255732,null),new cljs.core.Symbol(null,"watches","watches",1367433992,null),new cljs.core.Symbol(null,"update","update",-1608859373,null)], null); }); javelin.core.Cell.cljs$lang$type = true; javelin.core.Cell.cljs$lang$ctorStr = "javelin.core/Cell"; javelin.core.Cell.cljs$lang$ctorPrWriter = (function (this__25650__auto__,writer__25651__auto__,opt__25652__auto__){ return cljs.core._write.call(null,writer__25651__auto__,"javelin.core/Cell"); }); javelin.core.__GT_Cell = (function javelin$core$__GT_Cell(meta,state,rank,prev,sources,sinks,thunk,watches,update){ return (new javelin.core.Cell(meta,state,rank,prev,sources,sinks,thunk,watches,update)); }); javelin.core.cell_QMARK_ = (function javelin$core$cell_QMARK_(c){ if(cljs.core._EQ_.call(null,cljs.core.type.call(null,c),javelin.core.Cell)){ return c; } else { return null; } }); javelin.core.formula_QMARK_ = (function javelin$core$formula_QMARK_(c){ if(cljs.core.truth_((function (){var and__25032__auto__ = javelin.core.cell_QMARK_.call(null,c); if(cljs.core.truth_(and__25032__auto__)){ return c.thunk; } else { return and__25032__auto__; } })())){ return c; } else { return null; } }); javelin.core.lens_QMARK_ = (function javelin$core$lens_QMARK_(c){ if(cljs.core.truth_((function (){var and__25032__auto__ = javelin.core.cell_QMARK_.call(null,c); if(cljs.core.truth_(and__25032__auto__)){ return c.update; } else { return and__25032__auto__; } })())){ return c; } else { return null; } }); javelin.core.input_QMARK_ = (function javelin$core$input_QMARK_(c){ if(cljs.core.truth_((function (){var and__25032__auto__ = javelin.core.cell_QMARK_.call(null,c); if(cljs.core.truth_(and__25032__auto__)){ return cljs.core.not.call(null,javelin.core.formula_QMARK_.call(null,c)); } else { return and__25032__auto__; } })())){ return c; } else { return null; } }); javelin.core.set_cell_BANG_ = (function javelin$core$set_cell_BANG_(c,x){ c.state = x; return javelin.core.set_formula_BANG_.call(null,c); }); javelin.core.formula = (function javelin$core$formula(f){ return (function() { var G__27084__delegate = function (sources){ return javelin.core.set_formula_BANG_.call(null,javelin.core.cell.call(null,new cljs.core.Keyword("javelin.core","none","javelin.core/none",1150337088)),f,sources); }; var G__27084 = function (var_args){ var sources = null; if (arguments.length > 0) { var G__27085__i = 0, G__27085__a = new Array(arguments.length - 0); while (G__27085__i < G__27085__a.length) {G__27085__a[G__27085__i] = arguments[G__27085__i + 0]; ++G__27085__i;} sources = new cljs.core.IndexedSeq(G__27085__a,0); } return G__27084__delegate.call(this,sources);}; G__27084.cljs$lang$maxFixedArity = 0; G__27084.cljs$lang$applyTo = (function (arglist__27086){ var sources = cljs.core.seq(arglist__27086); return G__27084__delegate(sources); }); G__27084.cljs$core$IFn$_invoke$arity$variadic = G__27084__delegate; return G__27084; })() ; }); javelin.core.lens = (function javelin$core$lens(c,f){ var c__$1 = javelin.core.formula.call(null,cljs.core.identity).call(null,c); c__$1.update = f; return c__$1; }); javelin.core.cell = (function javelin$core$cell(var_args){ var args27087 = []; var len__26152__auto___27095 = arguments.length; var i__26153__auto___27096 = (0); while(true){ if((i__26153__auto___27096 < len__26152__auto___27095)){ args27087.push((arguments[i__26153__auto___27096])); var G__27097 = (i__26153__auto___27096 + (1)); i__26153__auto___27096 = G__27097; continue; } else { } break; } var G__27091 = args27087.length; switch (G__27091) { case 1: return javelin.core.cell.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); break; default: var argseq__26171__auto__ = (new cljs.core.IndexedSeq(args27087.slice((1)),(0),null)); return javelin.core.cell.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__26171__auto__); } }); javelin.core.cell.cljs$core$IFn$_invoke$arity$1 = (function (x){ return javelin.core.set_formula_BANG_.call(null,(new javelin.core.Cell(null,x,javelin.core.next_rank.call(null),x,cljs.core.PersistentVector.EMPTY,cljs.core.PersistentHashSet.EMPTY,null,cljs.core.PersistentArrayMap.EMPTY,null))); }); javelin.core.cell.cljs$core$IFn$_invoke$arity$variadic = (function (x,p__27092){ var map__27093 = p__27092; var map__27093__$1 = ((((!((map__27093 == null)))?((((map__27093.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__27093.cljs$core$ISeq$)))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__27093):map__27093); var meta = cljs.core.get.call(null,map__27093__$1,new cljs.core.Keyword(null,"meta","meta",1499536964)); return javelin.core.set_formula_BANG_.call(null,(new javelin.core.Cell(meta,x,javelin.core.next_rank.call(null),x,cljs.core.PersistentVector.EMPTY,cljs.core.PersistentHashSet.EMPTY,null,cljs.core.PersistentArrayMap.EMPTY,null))); }); javelin.core.cell.cljs$lang$applyTo = (function (seq27088){ var G__27089 = cljs.core.first.call(null,seq27088); var seq27088__$1 = cljs.core.next.call(null,seq27088); return javelin.core.cell.cljs$core$IFn$_invoke$arity$variadic(G__27089,seq27088__$1); }); javelin.core.cell.cljs$lang$maxFixedArity = (1); javelin.core.lift = javelin.core.formula; javelin.core.dosync_STAR_ = (function javelin$core$dosync_STAR_(thunk){ var bind = (function (p1__27099_SHARP_){ var _STAR_tx_STAR_27102 = javelin.core._STAR_tx_STAR_; javelin.core._STAR_tx_STAR_ = cljs.core.atom.call(null,tailrecursion.priority_map.priority_map.call(null)); try{return p1__27099_SHARP_.call(null); }finally {javelin.core._STAR_tx_STAR_ = _STAR_tx_STAR_27102; }}); var prop = ((function (bind){ return (function (){ var tx = cljs.core.deref.call(null,javelin.core._STAR_tx_STAR_); var _STAR_tx_STAR_27103 = javelin.core._STAR_tx_STAR_; javelin.core._STAR_tx_STAR_ = null; try{return javelin.core.propagate_STAR_.call(null,tx); }finally {javelin.core._STAR_tx_STAR_ = _STAR_tx_STAR_27103; }});})(bind)) ; if(cljs.core.truth_(javelin.core._STAR_tx_STAR_)){ return thunk.call(null); } else { return bind.call(null,((function (bind,prop){ return (function (){ thunk.call(null); return prop.call(null); });})(bind,prop)) ); } }); javelin.core.alts_BANG_ = (function javelin$core$alts_BANG_(var_args){ var args__26159__auto__ = []; var len__26152__auto___27110 = arguments.length; var i__26153__auto___27111 = (0); while(true){ if((i__26153__auto___27111 < len__26152__auto___27110)){ args__26159__auto__.push((arguments[i__26153__auto___27111])); var G__27112 = (i__26153__auto___27111 + (1)); i__26153__auto___27111 = G__27112; continue; } else { } break; } var argseq__26160__auto__ = ((((0) < args__26159__auto__.length))?(new cljs.core.IndexedSeq(args__26159__auto__.slice((0)),(0),null)):null); return javelin.core.alts_BANG_.cljs$core$IFn$_invoke$arity$variadic(argseq__26160__auto__); }); javelin.core.alts_BANG_.cljs$core$IFn$_invoke$arity$variadic = (function (cells){ var olds = cljs.core.atom.call(null,cljs.core.repeat.call(null,cljs.core.count.call(null,cells),new cljs.core.Keyword("javelin.core","none","javelin.core/none",1150337088))); var tag_neq = ((function (olds){ return (function (p1__27104_SHARP_,p2__27105_SHARP_){ return (new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[cljs.core.not_EQ_.call(null,p1__27104_SHARP_,p2__27105_SHARP_),p2__27105_SHARP_],null)); });})(olds)) ; var diff = ((function (olds,tag_neq){ return (function (p1__27107_SHARP_,p2__27106_SHARP_){ return cljs.core.distinct.call(null,cljs.core.map.call(null,cljs.core.second,cljs.core.filter.call(null,cljs.core.first,cljs.core.map.call(null,tag_neq,p1__27107_SHARP_,p2__27106_SHARP_)))); });})(olds,tag_neq)) ; var proc = ((function (olds,tag_neq,diff){ return (function() { var G__27113__delegate = function (rest__27108_SHARP_){ var news = diff.call(null,cljs.core.deref.call(null,olds),rest__27108_SHARP_); cljs.core.reset_BANG_.call(null,olds,rest__27108_SHARP_); return news; }; var G__27113 = function (var_args){ var rest__27108_SHARP_ = null; if (arguments.length > 0) { var G__27114__i = 0, G__27114__a = new Array(arguments.length - 0); while (G__27114__i < G__27114__a.length) {G__27114__a[G__27114__i] = arguments[G__27114__i + 0]; ++G__27114__i;} rest__27108_SHARP_ = new cljs.core.IndexedSeq(G__27114__a,0); } return G__27113__delegate.call(this,rest__27108_SHARP_);}; G__27113.cljs$lang$maxFixedArity = 0; G__27113.cljs$lang$applyTo = (function (arglist__27115){ var rest__27108_SHARP_ = cljs.core.seq(arglist__27115); return G__27113__delegate(rest__27108_SHARP_); }); G__27113.cljs$core$IFn$_invoke$arity$variadic = G__27113__delegate; return G__27113; })() ;})(olds,tag_neq,diff)) ; return cljs.core.apply.call(null,javelin.core.formula.call(null,proc),cells); }); javelin.core.alts_BANG_.cljs$lang$maxFixedArity = (0); javelin.core.alts_BANG_.cljs$lang$applyTo = (function (seq27109){ return javelin.core.alts_BANG_.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq.call(null,seq27109)); }); javelin.core.cell_map = (function javelin$core$cell_map(f,c){ var cseq = javelin.core.formula.call(null,cljs.core.seq).call(null,c); return cljs.core.map.call(null,((function (cseq){ return (function (p1__27116_SHARP_){ return javelin.core.formula.call(null,cljs.core.comp.call(null,f,javelin.core.safe_nth)).call(null,cseq,p1__27116_SHARP_); });})(cseq)) ,cljs.core.range.call(null,(0),cljs.core.count.call(null,cljs.core.deref.call(null,cseq)))); }); javelin.core.cell_doseq_STAR_ = (function javelin$core$cell_doseq_STAR_(items_seq,f){ var pool_size = javelin.core.cell.call(null,(0)); var cur_count = javelin.core.formula.call(null,cljs.core.count).call(null,items_seq); var ith_item = ((function (pool_size,cur_count){ return (function (p1__27117_SHARP_){ return javelin.core.formula.call(null,javelin.core.safe_nth).call(null,items_seq,p1__27117_SHARP_); });})(pool_size,cur_count)) ; return javelin.core.formula.call(null,((function (pool_size,cur_count,ith_item){ return (function (pool_size__$1,cur_count__$1,f__$1,ith_item__$1,reset_pool_size_BANG_){ if((pool_size__$1 < cur_count__$1)){ var seq__27122_27126 = cljs.core.seq.call(null,cljs.core.range.call(null,pool_size__$1,cur_count__$1)); var chunk__27123_27127 = null; var count__27124_27128 = (0); var i__27125_27129 = (0); while(true){ if((i__27125_27129 < count__27124_27128)){ var i_27130 = cljs.core._nth.call(null,chunk__27123_27127,i__27125_27129); f__$1.call(null,ith_item__$1.call(null,i_27130)); var G__27131 = seq__27122_27126; var G__27132 = chunk__27123_27127; var G__27133 = count__27124_27128; var G__27134 = (i__27125_27129 + (1)); seq__27122_27126 = G__27131; chunk__27123_27127 = G__27132; count__27124_27128 = G__27133; i__27125_27129 = G__27134; continue; } else { var temp__4657__auto___27135 = cljs.core.seq.call(null,seq__27122_27126); if(temp__4657__auto___27135){ var seq__27122_27136__$1 = temp__4657__auto___27135; if(cljs.core.chunked_seq_QMARK_.call(null,seq__27122_27136__$1)){ var c__25858__auto___27137 = cljs.core.chunk_first.call(null,seq__27122_27136__$1); var G__27138 = cljs.core.chunk_rest.call(null,seq__27122_27136__$1); var G__27139 = c__25858__auto___27137; var G__27140 = cljs.core.count.call(null,c__25858__auto___27137); var G__27141 = (0); seq__27122_27126 = G__27138; chunk__27123_27127 = G__27139; count__27124_27128 = G__27140; i__27125_27129 = G__27141; continue; } else { var i_27142 = cljs.core.first.call(null,seq__27122_27136__$1); f__$1.call(null,ith_item__$1.call(null,i_27142)); var G__27143 = cljs.core.next.call(null,seq__27122_27136__$1); var G__27144 = null; var G__27145 = (0); var G__27146 = (0); seq__27122_27126 = G__27143; chunk__27123_27127 = G__27144; count__27124_27128 = G__27145; i__27125_27129 = G__27146; continue; } } else { } } break; } return reset_pool_size_BANG_.call(null,cur_count__$1); } else { return null; } });})(pool_size,cur_count,ith_item)) ).call(null,pool_size,cur_count,f,ith_item,cljs.core.partial.call(null,cljs.core.reset_BANG_,pool_size)); }); //# sourceMappingURL=core.js.map