Not to pick on anybody but Common Lisp is not scheme! ((slot-value list 'push) new-element) is not Common Lisp. If anything it should be (funcall (slot-value list 'push) new-element) I'm not sure that (slot-value ...) is even a good idea, because JavaScript's objects can have new slots added willy nilly. How about two new forms? One for the current use of slot-value, and one for method calls? How about (object-path a b c d) for a.b.c.d? Of course, don't call it object-path but something really short, like 'o'. Then we wouldn't need a reader macro :-) Someone suggested using @ for method calls. Is that available already? [...]
I've been tasked with re-adding the shorthand syntax to parenscript [0] in the symbol-syntax if you need these features. Right now it only does (.method ...) syntax, but sometime today or tomorrow I'll have (foo.bar.baz) expanding to ((slot-value foo 'bar) 'baz). I'm not sure whether it is worthwhile keeping foo[bar] syntax; (aref foo bar) is not particularly less convenient.
foo.bar.baz expanding to (slot-value (slot-value foo 'bar) 'baz) is a bit weird. These are not really slots, as the aref example suggests . . . maybe gethash? On the other hand, slot-value is a good idiomatic conversion, so perhaps it's better to let this sleeping dog lie [...]