function members($$$mptypes){
  var filter=[];
  if (extendsType({t:FunctionDeclaration$meta$declaration},$$$mptypes.Kind$members))filter.push('m');
  if (extendsType({t:ValueDeclaration$meta$declaration},$$$mptypes.Kind$members))filter.push('a','g','o', 's');
  if (extendsType({t:ClassDeclaration$meta$declaration},$$$mptypes.Kind$members))filter.push('c');
  if (extendsType({t:InterfaceDeclaration$meta$declaration},$$$mptypes.Kind$members))filter.push('i');
  if (extendsType({t:AliasDeclaration$meta$declaration},$$$mptypes.Kind$members))filter.push('als');
  var r=[];
  for (var mn in this._pkg) {
    var m = this._pkg[mn];
    var mt = m.mt;
    if (filter.indexOf(mt)>=0 && (m.pa&1)) {
      if (mt === 'm') {
        r.push(OpenFunction(this, m));
      } else if (mt==='c') {
        r.push(OpenClass$jsint(this, m));
      } else if (mt==='i') {
        r.push(OpenInterface$jsint(this, m));
      } else if (mt==='a'||mt==='g'||mt==='o') {
        r.push(OpenValue$jsint(this, m));
      } else if (mt==='s') {
        r.push(OpenSetter(OpenValue$jsint(this, m)));
      } else if (mt==='als') {
        r.push(OpenAlias$jsint(_findTypeFromModel(this,m)));
      }
    }
  }
  return r.length===0?getEmpty():ArraySequence(r,{Element$ArraySequence:$$$mptypes.Kind$members});
}

@@ -247,13 +247,8 @@
 'g',
-'o', 
 's')
@@ -345,16 +345,20 @@
 push('c'
+,'o'
 );%0A  if 
@@ -777,16 +777,26 @@
 mt==='c'
+%7C%7Cmt==='o'
 ) %7B%0A    
@@ -943,26 +943,16 @@
 mt==='g'
-%7C%7Cmt==='o'
 ) %7B%0A    

fix ceylon/ceylon-js#405