code: function init() {
        var _this = this;
  
        /** Store the keys originally belonging to the tag */
        this.one('update', function () {
          _this._ownPropKeys = getAllPropertyNames(_this);
          _this._ownOptsKeys = getAllPropertyNames(_this.opts);
        });
        /** Inherit the properties from parents on each update */
        this.on('update', function () {
          var ignoreProps = ['root', 'triggerDomEvent'];
          getAllPropertyNames(_this.parent)
          // TODO:
          //   Skipping 'triggerDomEvent' is a temporal workaround.
          //   In some cases function on the child would be overriden.
          //   This issue needs more study...
          .filter(function (key) {
            return ! ~_this._ownPropKeys.concat(ignoreProps).indexOf(key);
          }).forEach(function (key) {
            _this[key] = typeof _this.parent[key] != 'function' || _this.parent[key]._inherited ? _this.parent[key] : hook(_this.parent, key);
          });
          getAllPropertyNames(_this.parent.opts).filter(function (key) {
            return ! ~_this._ownOptsKeys.indexOf(key) && key != 'riotTag';
          }).forEach(function (key) {
            _this.opts[key] = typeof _this.parent.opts[key] != 'function' || _this.parent.opts[key]._inherited ? _this.parent.opts[key] : hook(_this.parent, key);
          });
        });
      }
docs: Inject properties from parents