anchor.diff:   *
    * Using `<button disabled="{{false}}">` does not work since it would result
    * in `<button disabled="false">` rather than `<button>`.
  - * Browsers change behavior based on presence/absence of attribute rather the
  + * Browsers change behavior based on presence/absence of the attribute rather
    * its value.
    *
    * For this reason we provide alternate `ng-`attribute directives to
  
positive.code: @NgDirective(selector: '[ng-required]', map: const {'ng-required': '=>required'})
  @NgDirective(selector: '[ng-selected]', map: const {'ng-selected': '=>selected'})
  class NgBooleanAttribute {
    final NodeAttrs attrs;
    NgBooleanAttribute(this.attrs);
  
    _setBooleanAttribute(name, value) => attrs[name] = (toBool(value) ? '' : null);
  
    set checked(value)   => _setBooleanAttribute('checked',  value);
    set disabled(value)  => _setBooleanAttribute('disabled', value);
    set multiple(value)  => _setBooleanAttribute('multiple', value);
    set open(value)      => _setBooleanAttribute('open',     value);
    set readonly(value)  => _setBooleanAttribute('readonly', value);
    set required(value)  => _setBooleanAttribute('required', value);
    set selected(value)  => _setBooleanAttribute('selected', value);
  }
  
  /**
  
negative.code: @NgDirective(selector: '[ng-href]',   map: const {'ng-href':   '@href'})
  @NgDirective(selector: '[ng-src]',    map: const {'ng-src':    '@src'})
  @NgDirective(selector: '[ng-srcset]', map: const {'ng-srcset': '@srcset'})
  class NgSource {
    final NgElement _ngElement;
    NgSource(this._ngElement);
  
    void set href(value)   => _ngElement.setAttribute('href', value);
    void set src(value)    => _ngElement.setAttribute('src', value);
    void set srcset(value) => _ngElement.setAttribute('srcset', value);
  
  }
  
  