angular/angular.js — pull request #9002 by Narretz (2014-09-09 20:07:16+00:00)
Title: fix(input): remove $$invalidModelValue and always set $modelValue to the...

... parser result

BREAKING CHANGE:

$modelValue is now always set to the result of $parsers, even if
validation fails. Setting it to undefined was a remnant of the old parsers-for-validation behavior. The new behavior is more consistent: if you modify the validity state of the control, the $modelValue itself is not changed.

If you relied on $modelValue becoming undefined when invalid, e.g. in
a $watch, you must now use the $valid property of ngModelController.