function defaultAttrConcat(attrValue, attrSpaces) {
  return "" + attrSpaces.before + attrValue + attrSpaces.after;
}
Before 3.0, the value had to be set to an escaped value including any wrapped
quote marks. In 3.0, the semantics of `Attribute.value` changed so that the value
is unescaped during parsing and any quote marks are removed.

Because the ambiguity of this semantic change, if you set `attr.value = newValue`,
a deprecation warning is raised when the new value contains any characters that would
require escaping (including if it contains wrapped quotes).

Instead, you should call `attr.setValue(newValue, opts)` and pass options that describe
how the new value is quoted.