There are many existing frameworks and libraries in JavaScript that handle data-binding and application abstractions but none of them offer an integrated solution that works with hihger level languages (CoffeeScript, Haml). You could come close with CoffeeScript + hamlc + Knockout or something similar but it would always be a bit of a kludge because they were never designed to work together.
There are three major issues that should be solved in clientside JavaScript applications:
- Improved Language (CoffeeScript, or Dart, TypeScript, etc.)
- HTML Domain Specific Language (Haml, Jade, Slim, others)
- Data-Binding (React, Knockout, others)