find method with given name from base classes
function superMethod(methodname) {
  var func = null;
  var p = this.__proto__;
  if(!p) throw new Error('invalid parameters');
  for(p = p.__proto__; !isEmpty(p); p = p.__proto__) {
    var method = p[methodname];
    if(typeof method === 'function') {
      func = method;
      break;
    }
  }
  if(! func) throw new Error('super method not found: ' + methodname);
  return func;
}