code: @Override
      public void writeObject(Map<Object, Object> map) {
          log.debug("writeObject: {}", map);
          writeAMF3();
          buf.put(AMF3.TYPE_OBJECT);
          if (hasReference(map)) {
              putInteger(getReferenceId(map) << 1);
              return;
          }
          storeReference(map);
          // we have an inline class that is not a reference, store the properties using key/value pairs
          int type = AMF3.TYPE_OBJECT_VALUE << 2 | 1 << 1 | 1;
          putInteger(type);
          // no classname
          putString("");
          // store key/value pairs
          amf3_mode += 1;
          for (Map.Entry<Object, Object> entry : map.entrySet()) {
              putString(entry.getKey().toString());
              Serializer.serialize(this, entry.getValue());
          }
          amf3_mode -= 1;
          // end of object marker
          putString("");
      }
docs: {@inheritDoc}