Hi all,

I'm trying to get simple ClojureScript application to work.

I have a simple protocol Map here:
https://github.com/piranha/cj-locations/blob/master/src/map.cljs

And an implementation of it here (I tried with extend-type as well):
https://github.com/piranha/cj-locations/blob/master/src/google.cljs

The thing is that this code is not working at all:
https://github.com/piranha/cj-locations/blob/master/src/core.cljs#L13

By not working I mean that 'satisfies?' call returns 'false', and code
throws exception:

    Uncaught Error: No protocol method Map.init defined for type
object: [object Object]

Interesting fact is that if I put Map protocol and Google record in
the same file, it starts to work. It does that because generated
method names are becoming the same, while they are different when in
different files. `map/init` searches for
`locations$map$Map$init$arity$4` method, but Google record has
`locations$google$Map$init$arity$4` method. `satisfies?` returns false
anyway though.

Is this a bug in my code? Do I miss something here?

I also looked at what cljs.core.type_satisfies_ does: it checks
`protocol[goog.typeOf(record)]` there. goog.typeOf() returns `object`
to me, and `protocol` looks like empty object. I'm not sure I
understand how this is supposed to work.

-- 
Alexander

-- 
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