Updated with changes from Dart up to version
8d4b5156d69ce7c9f529042b3a66ec5f99fc612c