| OLD | NEW |
| (Empty) | |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 // ES6 extends the \uxxxx escape and also allows \u{xxxx}. |
| 6 |
| 7 // Unicode escapes in variable names. |
| 8 |
| 9 (function TestVariableNames1() { |
| 10 var foobar = 1; |
| 11 assertEquals(foob\u0061r, 1); |
| 12 assertEquals(foob\u{0061}r, 1); |
| 13 assertEquals(foob\u{61}r, 1); |
| 14 assertEquals(foob\u{0000000061}r, 1); |
| 15 })(); |
| 16 |
| 17 (function TestVariableNames2() { |
| 18 var foobar = 1; |
| 19 assertEquals(\u0066oobar, 1); |
| 20 assertEquals(\u{0066}oobar, 1); |
| 21 assertEquals(\u{66}oobar, 1); |
| 22 assertEquals(\u{0000000066}oobar, 1); |
| 23 })(); |
| 24 |
| 25 // Unicode escapes in strings. |
| 26 |
| 27 (function TestStrings() { |
| 28 var s1 = "foob\u0061r"; |
| 29 assertEquals(s1, "foobar"); |
| 30 var s2 = "foob\u{0061}r"; |
| 31 assertEquals(s2, "foobar"); |
| 32 var s3 = "foob\u{61}r"; |
| 33 assertEquals(s3, "foobar"); |
| 34 var s4 = "foob\u{0000000061}r"; |
| 35 assertEquals(s4, "foobar"); |
| 36 })(); |
| 37 |
| 38 |
| 39 (function TestSurrogates() { |
| 40 // U+10E6D corresponds to the surrogate pair [U+D803, U+DE6D]. |
| 41 var s1 = "foo\u{10e6d}"; |
| 42 var s2 = "foo\u{d803}\u{de6d}"; |
| 43 assertEquals(s1, s2); |
| 44 })(); |
| 45 |
| 46 // Unicode escapes in regexp body. Note that no escapes are allowed in regexp |
| 47 // flags. |
| 48 |
| 49 // FIXME: the test is not yet correct wrt the u regexp flag. The \u{xxxx} style |
| 50 // is only allowed when the flag is passed. |
| 51 |
| 52 (function TestRegexp1() { |
| 53 var r1 = /(\u0066|\u0062)oo/; |
| 54 assertTrue(r1.test("foo")); |
| 55 assertTrue(r1.test("boo")); |
| 56 assertFalse(r1.test("moo")); |
| 57 var r2 = /(\u{0066}|\u{0062})oo/; |
| 58 assertTrue(r2.test("foo")); |
| 59 assertTrue(r2.test("boo")); |
| 60 assertFalse(r2.test("moo")); |
| 61 var r3 = /(\u{66}|\u{000062})oo/; |
| 62 assertTrue(r3.test("foo")); |
| 63 assertTrue(r3.test("boo")); |
| 64 assertFalse(r3.test("moo")); |
| 65 })(); |
| 66 |
| 67 (function TestRegexp2() { |
| 68 var r1 = /[\u0062-\u0066]oo/; |
| 69 assertTrue(r1.test("foo")); |
| 70 assertTrue(r1.test("boo")); |
| 71 assertFalse(r1.test("moo")); |
| 72 var r2 = /[\u{0062}-\u{0066}]oo/; |
| 73 assertTrue(r2.test("foo")); |
| 74 assertTrue(r2.test("boo")); |
| 75 assertFalse(r2.test("moo")); |
| 76 var r3 = /[\u{62}-\u{00000066}]oo/; |
| 77 assertTrue(r3.test("foo")); |
| 78 assertTrue(r3.test("boo")); |
| 79 assertFalse(r3.test("moo")); |
| 80 }()); |
| OLD | NEW |