07df5129

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

JSONLD: tolerate unescaped control characters in script bodies

Some sites emit literal newlines (and other control characters) inside
JSON string values in their ld+json scripts, which is invalid JSON that
JSON.decode rejects, causing the whole event to be silently dropped.

Escape control characters and re-try decoding. This is a pure repair:
valid JSON never contains raw control characters inside a string, so it
is a no-op on well-formed input and only ever rescues otherwise
unparseable input.