leonoel/missionary

Cannot set properties of undefined (setting 'parent')

mjmeintjes opened this issue · 2 comments

I just upgraded to the latest version of missionary, and am now getting these errors when one of my flows are cancelled. This is on clojurescript side.

Looking at the code (Ambiguous.cljs:299:43), I can't see where pr is defined.

missionary_utils.cljc:511 TypeError: Cannot set properties of undefined (setting 'parent')
    at Object.missionary$impl$Ambiguous$ready [as ready] (Ambiguous.cljs:299:43)
    at Function.G__234226__0 [as cljs$core$IFn$_invoke$arity$0] (Ambiguous.cljs:330:28)
    at missionary$impl$Ambiguous$transfer (Ambiguous.cljs:251:8)
    at Object.eval [as cljs$core$IDeref$_deref$arity$1] (Ambiguous.cljs:11:19)
    at Object.cljs$core$_deref [as _deref] (core.cljs:688:12)
    at Object.cljs$core$deref [as deref] (core.cljs:1477:4)
    at Object.missionary$impl$Ambiguous$backtrack [as backtrack] (Ambiguous.cljs:33:8)
    at Object.missionary$impl$Ambiguous$branch [as branch] (Ambiguous.cljs:73:8)
    at Object.missionary$impl$Ambiguous$ready [as ready] (Ambiguous.cljs:307:44)
    at Function.G__234223__0 [as cljs$core$IFn$_invoke$arity$0] (Ambiguous.cljs:323:28)

do you have a repro ?

[missionary/missionary "b.27"]

scratch.cljs

(ns main.scratch
  (:require [missionary.core :as ms]))
(comment
  (do
    (def input! (atom true))
    (def task
      (ms/reduce
       (constantly nil)
       (ms/ap
        (let [visible? (ms/?< (ms/watch input!) )]
          (println visible?)
          (if visible?
            (try
              (ms/?> (ms/ap
                      (let [n (ms/?> (ms/seed (range 100)))]
                        (ms/? (ms/sleep 1000))
                        (println "TICK: " n))))
              (catch missionary.Cancelled e
                (ms/amb>)))
            nil)))))
    (when (resolve 'cancel) (cancel))
    (def cancel (task println #(js/console.error %))))

  ;; wait a moment, then run
  (reset! input! false)

;; VM1246:400 TypeError: Cannot set properties of undefined (setting 'parent')
;;     at Object.missionary$impl$Ambiguous$ready [as ready] (Ambiguous.cljs:299:43)
;;     at Function.G__17106__0 [as cljs$core$IFn$_invoke$arity$0] (Ambiguous.cljs:330:28)
;;     at missionary$impl$Ambiguous$transfer (Ambiguous.cljs:251:8)
;;     at Object.eval [as cljs$core$IDeref$_deref$arity$1] (Ambiguous.cljs:11:19)
;;     at Object.cljs$core$_deref [as _deref] (core.cljs:688:12)
;;     at Object.cljs$core$deref [as deref] (core.cljs:1477:4)
;;     at Object.missionary$impl$Ambiguous$backtrack [as backtrack] (Ambiguous.cljs:33:8)
;;     at Object.missionary$impl$Ambiguous$branch [as branch] (Ambiguous.cljs:73:8)
;;     at Object.missionary$impl$Ambiguous$ready [as ready] (Ambiguous.cljs:307:44)
;;     at Function.G__17103__0 [as cljs$core$IFn$_invoke$arity$0] (Ambiguous.cljs:323:28)

  )