1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 13:28:11 +00:00

LibJS: Fix JSON.stringify with stale surrogate codepoints

This fix this test262 test:
built-ins/JSON/stringify/value-string-escape-unicode.js
This commit is contained in:
Jorropo 2022-02-06 22:22:06 +01:00 committed by Linus Groh
parent 5aa803f7f2
commit dc42ca37bd
2 changed files with 10 additions and 2 deletions

View file

@ -63,6 +63,14 @@ describe("correct behavior", () => {
o[sym] = "qux";
expect(JSON.stringify(o)).toBe('{"foo":"bar"}');
});
test("escape surrogate codepoints in strings", () => {
expect(JSON.stringify("\ud83d\ude04")).toBe('"😄"');
expect(JSON.stringify("\ud83d")).toBe('"\\ud83d"');
expect(JSON.stringify("\ude04")).toBe('"\\ude04"');
expect(JSON.stringify("\ud83d\ud83d\ude04\ud83d\ude04\ude04")).toBe('"\\ud83d😄😄\\ude04"');
expect(JSON.stringify("\ude04\ud83d\ude04\ud83d\ude04\ud83d")).toBe('"\\ude04😄😄\\ud83d"');
});
});
describe("errors", () => {