Several compromises were made to reduce the footprint of the library:

  1. The parser isn’t strict and accepts some invalid inputs. For example:
    • It doesn’t reject malformed UTF-16 surrogate pairs, like \ud83d\ud83d
    • It only checks the first character and the length of constants (e.g., n0n3 is treated as null)
  2. Strings containing NUL characters (ASCII code 0, or \u0000) are not supported and get truncated.