code: function describeWithoutUnderscores(properties, nameProperty) {
    var html = "";
    for (var key in properties) {
      if (properties.hasOwnProperty(key)) {
        if (key === nameProperty || simpleStyleIdentifiers.indexOf(key) !== -1) {
          continue;
        }
        var value = properties[key];
        if (typeof value === "object") {
          value = describeWithoutUnderscores(value);
        } else {
          value = formatPropertyValue(value);
        }
        key = key.replace(/_/g, " ");
        if (defined(value)) {
          html += "<tr><th>" + key + "</th><td>" + value + "</td></tr>";
        }
      }
    }
    if (html.length > 0) {
      html =
        '<table class="cesium-infoBox-defaultTable"><tbody>' +
        html +
        "</tbody></table>";
    }
    return html;
  }
docs: This next function modelled on Cesium.geoJsonDataSource's defaultDescribe.