code: function(name) {
              var data, dataOwner, parent = this.findElement();
              while (parent) {
                  dataOwner = parent;
                  if (dataOwner.$data && name in dataOwner.$data) {
                      break;
                  }
                  if (dataOwner.nodeName.toLowerCase() == 'html') {
                      break;
                  }
                  parent = dataOwner.parentNode;
              }
              data = dataOwner.$data[name];
              if (typeof data === 'undefined') {
                  data = ["", []];
                  dataOwner.$data[name] = data;
              }
              return data;
          }
docs: @description
  Databindings are scoped and stored in the `$data` property of a DOM element.
  We always take data from the nearest parent element.
  
  @param {string} name name of the data binding.
  @return  object representing  data bindings.  The key  is the
  name of  the data and the  value is a two-items  array. First
  item is the current value for this data, and second item is a
  list of all listeners.
  Each listener is an object with these attributes:
  * `obj`: the real listener object.
  * `slot`: the method of `obj` to call with a value as unique argument, when datat has changed.
  * `getter`: the method of `obj` to call in order to get the value to pass to `slot`.
  @memberof WTag