docs: public static Object[] getPropertyIds(Scriptable obj)
      {
          if (obj == null) {
              return ScriptRuntime.emptyArgs;
          }
          Object[] result = obj.getIds();
          ObjToIntMap map = null;
          for (;;) {
              obj = obj.getPrototype();
              if (obj == null) {
                  break;
              }
              Object[] ids = obj.getIds();
              if (ids.length == 0) {
                  continue;
              }
              if (map == null) {
                  if (result.length == 0) {
                      result = ids;
                      continue;
                  }
                  map = new ObjToIntMap(result.length + ids.length);
                  for (int i = 0; i != result.length; ++i) {
                      map.intern(result[i]);
                  }
                  result = null; // Allow to GC the result
              }
              for (int i = 0; i != ids.length; ++i) {
                  map.intern(ids[i]);
              }
          }
          if (map != null) {
              result = map.getKeys();
          }
          return result;
      }