I am running into a problem with memoized functions in ClojureScript. Functions which take a single argument work okay but functions of two args throw an error.
I haven't been able to isolate the bug (I am able to hash vectors and nested vectors just fine). Any hints on the root cause or workarounds is greatly appreciated. Repl transcript follows. > ~/tools/clojurescript/script/repljs "Type: " :cljs/quit " to quit" ClojureScript:cljs.user> (defn foo [a] a) #< function foo(a) { return a; } > ClojureScript:cljs.user> (defn bar [a b] [a b]) #< function bar(a, b) { return cljs.core.Vector.fromArray([a, b]); } > ClojureScript:cljs.user> (def foo-m (memoize foo)) #< function (var_args) { var args = null; if (goog.isDef(var_args)) { args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0); } return G__4512__delegate.call(this, args); } > ClojureScript:cljs.user> (def bar-m (memoize bar)) #< function (var_args) { var args = null; if (goog.isDef(var_args)) { args = cljs.core.array_seq(Array.prototype.slice.call(arguments, 0), 0); } return G__4512__delegate.call(this, args); } > ClojureScript:cljs.user> (foo 1) 1 ClojureScript:cljs.user> (foo-m 1) 1 ClojureScript:cljs.user> (bar 1 2) [1 2] ClojureScript:cljs.user> (bar-m 1 2) "Error evaluating:" (bar-m 1 2) :as "cljs.user.bar_m.call(null,1,2); \n" org.mozilla.javascript.JavaScriptException: Error: Index out of bounds (cljs/core.cljs#974) at cljs/core.cljs:974 (anonymous) at cljs/core.cljs:991 (anonymous) at cljs/core.cljs:115 (anonymous) at cljs/core.cljs:161 (anonymous) at cljs/core.cljs:319 (anonymous) at cljs/core.cljs:338 (anonymous) at cljs/core.cljs:307 (anonymous) at cljs/core.cljs:314 (anonymous) at cljs/core.cljs:181 (anonymous) at cljs/core.cljs:204 (anonymous) at cljs/core.cljs:733 (anonymous) at cljs/core.cljs:740 (anonymous) at cljs/core.cljs:1035 (hash_coll) at cljs/core.cljs:296 (anonymous) at cljs/core.cljs:158 (_hash) at cljs/core.cljs:525 (hash) at cljs/core.cljs:2167 (anonymous) at cljs/core.cljs:148 (_assoc) at cljs/core.cljs:472 (anonymous) at cljs/core.cljs:519 (anonymous) at cljs/core.cljs:2191 (anonymous) at cljs/core.cljs:2207 (anonymous) at cljs/core.cljs:2100 (anonymous) at cljs/core.cljs:148 (_assoc) at cljs/core.cljs:472 (anonymous) at cljs/core.cljs:519 (anonymous) at cljs/core.cljs:2841 (anonymous) at cljs/core.cljs:2878 (anonymous) at cljs/core.cljs:3013 (anonymous) at cljs/core.cljs:3022 (anonymous) at <cljs repl>:9 (anonymous) at <cljs repl>:9 nil ClojureScript:cljs.user> -- 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