docs: public static Set<String> getFieldsName(Object instance, Runnable fieldsMarker) {
      JsPropertyMap<Any> map = cast(instance);
      JsObject jsObject = cast(instance);
      map.forEach(key -> {
        if (!jsObject.hasOwnProperty(key)) {
          return;
        }
  
        try {
          Any val = asAny(map.get(key));
          if (isTripleEqual(val, null) ||
              isTripleEqual(val, asAny(1)) ||
              isTripleEqual(val, asAny(true))) {
            map.delete(key);
          }
        } catch (Exception e) {
  
        }
      });
  
      fieldsMarker.run();
  
      Set<String> dataFields = new HashSet<>();
      map.forEach(key -> {
        if (!jsObject.hasOwnProperty(key)) {
          return;
        }
  
        try {
          Any val = asAny(map.get(key));
          if (isTripleEqual(val, null) ||
              isTripleEqual(val, asAny(1)) ||
              isTripleEqual(val, asAny(true))) {
            dataFields.add(key);
          }
        } catch (Exception e) {
  
        }
      });
  
      return dataFields;
    }