var p=ptype, c, m, f;
do{
c = p.constructor;
m = c.mixin;
// find method by name in our mixin ancestorif(m &&(m=this._findMethod(name, method, m, has))){return m;}// if we found a named method that either exactly-is or exactly-is-not 'method'if((f=p[name])&&(has==(f==method))){return p;}// ascend chain
p = c.superclass;
}while(p);
// if we couldn't find an ancestor in our primary chain, try a mixin chainreturn!has &&(p=this._findMixin(ptype))&&this._findMethod(name, method, p, has);