Skip to content

Instantly share code, notes, and snippets.

@oskarth
Created December 5, 2012 19:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save oskarth/4218942 to your computer and use it in GitHub Desktop.
Save oskarth/4218942 to your computer and use it in GitHub Desktop.
clojurescript reflex computed-observables
;; using reflex clojurescript library
;; works
(def a (atom 0))
(def b (computed-observable (inc @a)))
(def c (computed-observable (dec @a)))
(def d (computed-observable (str @b)))
;; doesn't
;; maximum call stack exceeded
(def a (atom 0))
(def b (computed-observable (inc @a)))
(def c (computed-observable (dec @a)))
(def d (computed-observable [@b @c]))
Uncaught RangeError: Maximum call stack size exceeded
tail_off
array_for
chunked_seq__3
chunked_seq
cljs.core.PersistentVector.cljs$core$ISeqable$_seq$arity$1
_seq
seq
first
(anonymous function)
lazy_seq_value
cljs.core.LazySeq.cljs$core$ISeqable$_seq$arity$1
_seq
seq
keys
cljs.core.PersistentHashSet.cljs$core$ISeqable$_seq$arity$1
_seq
seq
rest
next
every_QMARK_
cljs.core.PersistentHashSet.cljs$core$IEquiv$_equiv$arity$2
_equiv
_EQ___2
_EQ_
(anonymous function)
(anonymous function)
lazy_seq_value
cljs.core.LazySeq.cljs$core$ISeqable$_seq$arity$1
_seq
seq
every_QMARK_
equiv_map
(anonymous function)
reflex.core.ComputedObservable.cljs$core$IEquiv$_equiv$arity$2
_equiv
_EQ___2
_EQ_
key_test
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
cljs.core.BitmapIndexedNode.inode_assoc
create_node__6
create_node
@lynaghk
Copy link

lynaghk commented Dec 5, 2012

This is a problem with computed observables themselves:

(def b (computed-observable 2))
(def c (computed-observable 1))
(computed-observable [@b @c])

still blows up

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment