summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/language/literals/regexp/u-null-character-escape.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/language/literals/regexp/u-null-character-escape.js')
-rw-r--r--js/src/tests/test262/language/literals/regexp/u-null-character-escape.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/literals/regexp/u-null-character-escape.js b/js/src/tests/test262/language/literals/regexp/u-null-character-escape.js
new file mode 100644
index 0000000000..4abd046000
--- /dev/null
+++ b/js/src/tests/test262/language/literals/regexp/u-null-character-escape.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2020 Alexey Shvayka. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: prod-CharacterEscape
+description: >
+ Null character escape is permitted in Unicode patterns.
+info: |
+ CharacterEscape[U] ::
+ ControlEscape
+ c ControlLetter
+ 0 [lookahead ∉ DecimalDigit]
+ HexEscapeSequence
+ RegExpUnicodeEscapeSequence[?U]
+ IdentityEscape[?U]
+
+ DecimalDigit :: one of
+ 0 1 2 3 4 5 6 7 8 9
+---*/
+
+var nullChar = String.fromCharCode(0);
+assert.sameValue(/\0/u.exec(nullChar)[0], nullChar);
+assert(/^\0a$/u.test('\0a'));
+assert.sameValue('\x00②'.match(/\0②/u)[0], '\x00②');
+assert.sameValue('\u0000፬'.search(/\0፬$/u), 0);
+
+reportCompare(0, 0);