The main issue I see it as solving that of creating large, multi-developer applications.
In Javascript, I can write the perfectly valid code:
function x(y) {
return y*y;
}
document.write(x(3,4,5));
And this will execute fine, but it’s blatantly an error.
Now separate the function definition and the function call by several developers and several months over a codebase of several thousand lines of code.
The original function x(y) could have originally been function x(y,z,a) but has since been refactored over time. This is where javascript fails for me, and this is what dart will help resolve.
Edit (May 2013) In addition to my answer above, which I believe still holds true, I think that the performance story is also getting pretty compelling. Lars Bak and Kasper Lund’s talk from Google I/O provides some evidence.