internal void AddOverloadedMembers(MemberInfoList mems, ClassScope scope, BindingFlags attrs){
JSMemberField field = this;
while (field != null){
MethodInfo meth = ((JSMemberField)field).GetAsMethod(scope);
if (meth.IsStatic){
if ((attrs & BindingFlags.Static) == 0) goto next;
}else{
if ((attrs & BindingFlags.Instance) == 0) goto next;
}
if (meth.IsPublic){
if ((attrs & BindingFlags.Public) == 0) goto next;
}else{
if ((attrs & BindingFlags.NonPublic) == 0) goto next;
}
mems.Add(meth);
next:
field = field.nextOverload;
}
if ((attrs & BindingFlags.DeclaredOnly) != 0 && (attrs&BindingFlags.FlattenHierarchy) == 0) return;
IReflect superClass = scope.GetSuperType();
MemberInfo[] supMembers = superClass.GetMember(this.Name, attrs&~BindingFlags.DeclaredOnly);
foreach (MemberInfo supMember in supMembers)
if (supMember.MemberType == MemberTypes.Method)
mems.Add(supMember);
}