anchor.diff:    static const _ajaxFormError = const EventStreamProvider('ajax-form-error');
     static const _ajaxFormComplete = const EventStreamProvider('ajax-form-complete');
   
  -  Stream<CustomEvent> get onAjaxFormResponse => _ajaxFormResponse.forElement(this);
  -  Stream<CustomEvent> get onAjaxFormError => _ajaxFormError.forElement(this);
  +  Stream<CustomEvent> get onFormResponse => _ajaxFormResponse.forElement(this);
  +  Stream<CustomEvent> get onFormError => _ajaxFormError.forElement(this);
  +  /// An error handler
     Stream<CustomEvent> get onFormComplete => _ajaxFormComplete.forElement(this);
   
     /// The URI of a program that processes the form information.
  
positive.code: 
  @CustomTag('ajax-form')
  class AjaxFormElement extends FormElement with Polymer, Observable {
  // TODO:
  // - bind to <input type=submit> elements
  // -
    static final _VALID_ENCTYPES = <String, _REQUEST_FACTORY>{
        'application/x-www-form-urlencoded': (fields) => new UrlencodedRequest(fields),
        'multipart/form-data': (fields) => new MultipartRequest(fields),
  
negative.code:   set handleAs(String value) => writeValue(#handleAs, value);
  
    ContentElement get _content => shadowRoot.querySelector('content');
    CoreAjax get _ajax => shadowRoot.querySelector('core-ajax-dart');
  
    PathObserver _inputObserver;
  
    AjaxFormElement.created(): super.created() {
      polymerCreated();
    }
  
    void attached() {
      _ajax.onCoreResponse.listen((evt) {
  