code: function() {
      // determine if cpt supports template arguments
      if (this.template) {
        // as template can be changed dynamically we have to sync the constructor
        this.ctlConstuctor=this.template.controllerConstructor;
      }
      var ctlProto=this.ctlConstuctor.prototype;
      this.ctlAttributes=ctlProto.$attributes;
      this.ctlElements=ctlProto.$elements;
  
      // load template arguments
      this.loadCptAttElements();
  
      // load child elements before processing the template
      var cptArgs={
        nodeInstance:this,
        $attributes:{},
        $content:null
      };
      var attributes=cptArgs.$attributes, att;
  
      if (this.atts) {
        // some attributes have been passed to this instance - so we push them to cptArgs
        // so that they are set on the controller when the template are rendered
        var atts = this.atts, eh = this.eh, pvs = this.vscope, nm;
        if (atts) {
          for (var i = 0, sz = this.atts.length; sz > i; i++) {
            att = atts[i];
            nm = att.name;
            if (this.ctlAttributes[nm].type!=="template") {
              attributes[nm]=att.getValue(eh, pvs, null);
            }
          }
        }
      }
  
      if (this.tplAttributes) {
        var tpa=this.tplAttributes;
        for (var k in tpa) {
          // set the template attribute value on the controller
          if (tpa.hasOwnProperty(k)) {
            attributes[k]=tpa[k];
          }
        }
      }
      if (this.childElements) {
        cptArgs.$content=this.getControllerContent();
      }
      return cptArgs;
    }
docs: Process and retrieve the component arguments that are needed to init the component template