anchor.diff:  
   import '../_specs.dart';
   import 'dart:html' as dom;
  +
  +//-----------------------------------------------------------------------------
  +// Utility functions
  +
  +/* This function simulates typing the given text into the input field. The
  + * text will be added wherever the insertion point happens to be. This method
  + * has as side-effect to set the focus on the input (without setting the
  + * focus, the text dispatch may not work).
  + */
  +void simulateTypingText(InputElement input, String text) {
  +  input..focus()..dispatchEvent(new TextEvent('textInput', data: text));
  +}
  +
  +bool simulateTypingTextWithConfirmation(InputElement input, String text, 
  +                                        { bool shouldWorkForChrome : true }) {
  +  bool result;
  +  String val = input.value;
  +  try {
  +    simulateTypingText(input, text);
  +    result = input.value == val + text;
  +  } catch (e) {
  +    result = false;
  +  }
  +  if (!result && shouldWorkForChrome) expect(isBrowser('Chrome')).toBeFalsy();
  +  return result;
  +}
  +
  +bool isBrowser(String pattern) => dom.window.navigator.userAgent.indexOf(pattern) > 0;
  +
  +//-----------------------------------------------------------------------------
   
   void main() {
     describe('ng-model', () {
  
positive.code:         var modelFieldName = 'modelForNumFromInvalid1';
          var element = _.compile('<input type="number" ng-model="$modelFieldName">');
          dom.querySelector('body').append(element);
  
          // This test will progressively enter the text '1e1'
          // '1' is a valid number.
  
negative.code:       });
      });
  
      describe('type="number" or type="range"', () {
  
        it('should update model from the input value for type=number', () {
  