summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/built-ins/JSON/stringify/value-string-escape-unicode.js
blob: a333bcc996cf56cdd45acc638cd3b1b2b6a55c98 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Copyright (c) 2018 Ecma International.  All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-quotejsonstring
description: >
    JSON.stringify strings containing surrogate code units
features: [well-formed-json-stringify]
---*/

assert.sameValue(JSON.stringify("\uD834"), '"\\ud834"',
  'JSON.stringify("\\uD834")');
assert.sameValue(JSON.stringify("\uDF06"), '"\\udf06"',
  'JSON.stringify("\\uDF06")');

assert.sameValue(JSON.stringify("\uD834\uDF06"), '"𝌆"',
  'JSON.stringify("\\uD834\\uDF06")');
assert.sameValue(JSON.stringify("\uD834\uD834\uDF06\uD834"), '"\\ud834𝌆\\ud834"',
  'JSON.stringify("\\uD834\\uD834\\uDF06\\uD834")');
assert.sameValue(JSON.stringify("\uD834\uD834\uDF06\uDF06"), '"\\ud834𝌆\\udf06"',
  'JSON.stringify("\\uD834\\uD834\\uDF06\\uDF06")');
assert.sameValue(JSON.stringify("\uDF06\uD834\uDF06\uD834"), '"\\udf06𝌆\\ud834"',
  'JSON.stringify("\\uDF06\\uD834\\uDF06\\uD834")');
assert.sameValue(JSON.stringify("\uDF06\uD834\uDF06\uDF06"), '"\\udf06𝌆\\udf06"',
  'JSON.stringify("\\uDF06\\uD834\\uDF06\\uDF06")');

assert.sameValue(JSON.stringify("\uDF06\uD834"), '"\\udf06\\ud834"',
  'JSON.stringify("\\uDF06\\uD834")');
assert.sameValue(JSON.stringify("\uD834\uDF06\uD834\uD834"), '"𝌆\\ud834\\ud834"',
  'JSON.stringify("\\uD834\\uDF06\\uD834\\uD834")');
assert.sameValue(JSON.stringify("\uD834\uDF06\uD834\uDF06"), '"𝌆𝌆"',
  'JSON.stringify("\\uD834\\uDF06\\uD834\\uDF06")');
assert.sameValue(JSON.stringify("\uDF06\uDF06\uD834\uD834"), '"\\udf06\\udf06\\ud834\\ud834"',
  'JSON.stringify("\\uDF06\\uDF06\\uD834\\uD834")');
assert.sameValue(JSON.stringify("\uDF06\uDF06\uD834\uDF06"), '"\\udf06\\udf06𝌆"',
  'JSON.stringify("\\uDF06\\uDF06\\uD834\\uDF06")');

reportCompare(0, 0);