Dependency injection (through InversifyJS)
RobotlegsJS-Macrobot: extends commands, adding support to async and macro commands.
There are plenty of frameworks and patterns out there that helps you to write DOM-based applications. There is no scalable solution yet to architecture a canvas-based application though.
Robotlegs has proven itself of being a mature solution from the ActionScript community for interactive experiences.