JS strings can contain unprintable characters. Since js_inspect_recursive() is a debug tool, it should replace non-printable characters with their hexadecimal representation before they are included in the output. The FIXME note in the code should also be addressed. Strings can also contain the null character, and it should not be treated as a C string terminator.