Js dataclasses complete

Added `hashCode`, `toString` and `equals`, fixed the dispatch bugs, squashed all the commits, everything seems to work fine now.