The biggest problem for me was conflicting versions of SLIME.
Installing swank-js is a breeze with npm, but the installation instructions tell you to get the newest version of SLIME from their svn. That didn't work so well, since my clojure-swank already relied on an older version.
Simply installing slime-js from marmalade instead made all the difference.
From what I can understand, it doesn't. Backwards compatability is usually good. However, there was a breaking change in 2011 sometime. The slime-js in marmalade relies on the SLIME in marmalade, which is from 2010.04.04 - and works with that. Same for clojure-swank. So by removing the newest SLIME, it worked for me.
This thread is a little stale but magnars' .emacs.d repo isn't quite sufficient to explain what's going on. Follow his instructions for installing slime-js and swank-js, then you'll need the ``setup-slime-js.el``.
I modified his version of it to decouple it from what I gather are a couple of his other repos (specifically js2-refactor, and another unknown). You can get it here:
Simply put that file somewhere on your ``load-path``, then add ``(require 'setup-slime-js)`` to your .emacs/init.el. Reload everything, and you should be good to go.
Note that the in-emacs REPL is still pretty broken for me vis a vis entering code directly at the prompt. e.g. trying to enter an array causes swank-js to throw an exception. Not sure if that's because of my setup or not.
I see that you're actually creating your own slime-js-minor-mode-map. I'm guessing that was necessary because you didn't require slime-js before requiring setup-slime-js.
Maybe it will resolve your issue of you put this at the top of the file?
(require 'slime)
(require 'slime-js)
The swank-js documentation says it depends on js2-mode too. Are you using that? At least I have no issues with entering arrays in the repl.