As for being able to commit back to Dart, we had initially intended to do just that, but after digging deeper into their implementation, it became clear that it was tied too deeply to Dartium and .dart files for us to be able to contribute directly back as patches.  Unfortunately, in order to avoid pulling in giant piles of dependencies, we had to extract some classes out of other bundles, thereby making a 1:1 mapping unfeasible without piles of overhead.

That said, we are still following their APIs such that any improvements we can make should be simple enough for anyone familiar on the Dart end to drop in and borrow.

One such upgrade is something Ray Cromwell is guiding us on: mapping of fieldnames, and more specifically, how to retrieve the correct scope for a fieldname from a javascript heap object.  The idea Ray proposed will work, but may require an upgrade to how the sourcemap api stores information (we have to encode scope data to map a js object to a line of java).  So, if we are successful, our implementation may lead to an increment in the version of the sourcemap API, in which case the Dart team would have a leg up on implementing this new version.

We do eventually intend to support CoffeeScript, Closure, TypeScript and other transpiled friends, however, each language will need to expose a helper method for translating heap objects (in gwt, the seedId of classes and the names of global functions are our mapping mechanism).  This is extra experimental, and will be explored more in the coming weeks.  I'll probably start with a spec and design doc so I can get Ray to review it before moving forward.