summaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/es6/unicode-escapes.js
blob: be269366cf1a1f74749159c95255ffa00e8dd367 (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
39
40
41
42
43
44
// Copyright 2014 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// ES6 extends the \uxxxx escape and also allows \u{xxxxx}.

// Unicode escapes in variable names.

(function TestVariableNames1() {
  var foobar = 1;
  assertEquals(foob\u0061r, 1);
  assertEquals(foob\u{0061}r, 1);
  assertEquals(foob\u{61}r, 1);
  assertEquals(foob\u{0000000061}r, 1);
})();

(function TestVariableNames2() {
  var foobar = 1;
  assertEquals(\u0066oobar, 1);
  assertEquals(\u{0066}oobar, 1);
  assertEquals(\u{66}oobar, 1);
  assertEquals(\u{0000000066}oobar, 1);
})();

// Unicode escapes in strings.

(function TestStrings() {
  var s1 = "foob\u0061r";
  assertEquals(s1, "foobar");
  var s2 = "foob\u{0061}r";
  assertEquals(s2, "foobar");
  var s3 = "foob\u{61}r";
  assertEquals(s3, "foobar");
  var s4 = "foob\u{0000000061}r";
  assertEquals(s4, "foobar");
})();


(function TestSurrogates() {
  // U+10E6D corresponds to the surrogate pair [U+D803, U+DE6D].
  var s1 = "foo\u{10e6d}";
  var s2 = "foo\u{d803}\u{de6d}";
  assertEquals(s1, s2);
})();