private Object[] getChildren(IType type) throws JavaScriptModelException {
    IParent parent;
    if (type.isBinary()) parent = type.getClassFile();
    else {
      parent = type.getJavaScriptUnit();
    }
    if (type.getDeclaringType() != null) return type.getChildren();

    // Add import declarations
    IJavaScriptElement[] members = parent.getChildren();
    ArrayList tempResult = new ArrayList(members.length);
    for (int i = 0; i < members.length; i++)
      if ((members[i] instanceof IImportContainer)) tempResult.add(members[i]);
    tempResult.addAll(Arrays.asList(type.getChildren()));
    return tempResult.toArray();
  }