Please open a ticket with these details: http://dev.clojure.org/jira/browse/CLJS

Thanks!

David

On Mon, Jul 2, 2012 at 10:37 PM, Robert Marianski <r...@marianski.com> wrote:
> I'm getting an error when trying to call a multimethod in a certain
> scenario. I'm unfortunately not able to reproduce this when running it
> as a test case with v8. But, I was able to trim it down to the following
> test case which fails for me in a browser (with a connected repl).
>
>
> (defmulti  foo (fn [a b] [(:foo a) (:foo b)]))
> (defmethod foo [:foo :bar] [a b] :foobar)
> (defmethod foo :default [a b] :default)
>
> ;; this fails with an error - expecting default case
> (foo {} {})
> ;; succeeds -> :foobar
> (foo {:foo :foo} {:foo :bar})
>
> However, with slight modifications, it works for me.
>
> (defmulti  bar (fn [& args] (vec (map :foo args))))
> (defmethod bar [:foo :bar] [a b] :foobar)
> (defmethod bar :default [a b] :default)
>
> ;; succeeds -> default case
> (bar {} {})
>
> Interestingly enough, it works with this variation too:
> (defmulti  baz (fn [a b] (vector (:foo a) (:foo b))))
> (defmethod baz [:foo :bar] [a b] :foobar)
> (defmethod baz :default [a b] :default)
>
> ;; also succeeds -> default case
> (baz {} {})
>
>
> The error that I'm getting when it fails is:
> obj is undefined
> return obj[goog.UID_PROPERTY_] || (obj[goog.UID_PROPERTY_] = 
> ++goog.uidCounter_
>
> (This is in the definition of goog.getUid)
>
>
> I tried to debug a little bit, and it looks like it's failing when
> looking up the multimethod in the cache.  The obj is undefined at that
> point.
>
>
> Robert
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to