value-string-escape-unicode.js (1798B)
1 // Copyright (c) 2018 Ecma International. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 4 /*--- 5 esid: sec-quotejsonstring 6 description: > 7 JSON.stringify strings containing surrogate code units 8 features: [well-formed-json-stringify] 9 ---*/ 10 11 assert.sameValue(JSON.stringify("\uD834"), '"\\ud834"', 12 'JSON.stringify("\\uD834")'); 13 assert.sameValue(JSON.stringify("\uDF06"), '"\\udf06"', 14 'JSON.stringify("\\uDF06")'); 15 16 assert.sameValue(JSON.stringify("\uD834\uDF06"), '"𝌆"', 17 'JSON.stringify("\\uD834\\uDF06")'); 18 assert.sameValue(JSON.stringify("\uD834\uD834\uDF06\uD834"), '"\\ud834𝌆\\ud834"', 19 'JSON.stringify("\\uD834\\uD834\\uDF06\\uD834")'); 20 assert.sameValue(JSON.stringify("\uD834\uD834\uDF06\uDF06"), '"\\ud834𝌆\\udf06"', 21 'JSON.stringify("\\uD834\\uD834\\uDF06\\uDF06")'); 22 assert.sameValue(JSON.stringify("\uDF06\uD834\uDF06\uD834"), '"\\udf06𝌆\\ud834"', 23 'JSON.stringify("\\uDF06\\uD834\\uDF06\\uD834")'); 24 assert.sameValue(JSON.stringify("\uDF06\uD834\uDF06\uDF06"), '"\\udf06𝌆\\udf06"', 25 'JSON.stringify("\\uDF06\\uD834\\uDF06\\uDF06")'); 26 27 assert.sameValue(JSON.stringify("\uDF06\uD834"), '"\\udf06\\ud834"', 28 'JSON.stringify("\\uDF06\\uD834")'); 29 assert.sameValue(JSON.stringify("\uD834\uDF06\uD834\uD834"), '"𝌆\\ud834\\ud834"', 30 'JSON.stringify("\\uD834\\uDF06\\uD834\\uD834")'); 31 assert.sameValue(JSON.stringify("\uD834\uDF06\uD834\uDF06"), '"𝌆𝌆"', 32 'JSON.stringify("\\uD834\\uDF06\\uD834\\uDF06")'); 33 assert.sameValue(JSON.stringify("\uDF06\uDF06\uD834\uD834"), '"\\udf06\\udf06\\ud834\\ud834"', 34 'JSON.stringify("\\uDF06\\uDF06\\uD834\\uD834")'); 35 assert.sameValue(JSON.stringify("\uDF06\uDF06\uD834\uDF06"), '"\\udf06\\udf06𝌆"', 36 'JSON.stringify("\\uDF06\\uDF06\\uD834\\uDF06")'); 37 38 reportCompare(0, 0);