diff options
Diffstat (limited to 'deps/v8/test/mjsunit/es6/unicode-escapes.js')
-rw-r--r-- | deps/v8/test/mjsunit/es6/unicode-escapes.js | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/es6/unicode-escapes.js b/deps/v8/test/mjsunit/es6/unicode-escapes.js new file mode 100644 index 0000000000..be269366cf --- /dev/null +++ b/deps/v8/test/mjsunit/es6/unicode-escapes.js @@ -0,0 +1,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); +})(); |