code: public synchronized Object[] getIds() {
          String[] keys = getAllKeys();
          int size = keys.length + indexedProps.size();
          Object[] res = new Object[size];
          System.arraycopy(keys, 0, res, 0, keys.length);
          int i = keys.length;
          // now add all indexed properties
          for (Object index : indexedProps.keySet()) {
              res[i++] = index;
          }
          return res;
      }
docs: Get an array of property ids.
  
  Not all property ids need be returned. Those properties
  whose ids are not returned are considered non-enumerable.
  
  @return an array of Objects. Each entry in the array is either
  a java.lang.String or a java.lang.Number