code: function () {
              /*  determine parameters  */
              var params = $cs.params("listen", arguments, {
                  name:    { pos: 0,     req: true },
                  ctx:     {             def: this },
                  func:    { pos: 1,     req: true },
                  args:    { pos: "...", def: []   },
                  spec:    {             def: null } /* customized matching */
              });
  
              /*  attach listener information  */
              var id = _cs.cid();
              this.__listener[id] = params;
              return id;
          }
docs: /*  attach a listener