| // Copyright (C) 2018 Leo Balter. All rights reserved. |
| // This code is governed by the BSD license found in the LICENSE file. |
| |
| /*--- |
| esid: prod-CharacterClassEscape |
| description: > |
| Compare range for word class escape \w with flags ug |
| info: | |
| This is a generated test. Please check out |
| https://github.com/bocoup/test262-regexp-generator |
| for any changes. |
| |
| CharacterClassEscape[U] :: |
| d |
| D |
| s |
| S |
| w |
| W |
| |
| 21.2.2.12 CharacterClassEscape |
| |
| The production CharacterClassEscape :: d evaluates as follows: |
| Return the ten-element set of characters containing the characters 0 through 9 inclusive. |
| The production CharacterClassEscape :: D evaluates as follows: |
| Return the set of all characters not included in the set returned by CharacterClassEscape :: d. |
| The production CharacterClassEscape :: s evaluates as follows: |
| Return the set of characters containing the characters that are on the right-hand side of |
| the WhiteSpace or LineTerminator productions. |
| The production CharacterClassEscape :: S evaluates as follows: |
| Return the set of all characters not included in the set returned by CharacterClassEscape :: s. |
| The production CharacterClassEscape :: w evaluates as follows: |
| Return the set of all characters returned by WordCharacters(). |
| The production CharacterClassEscape :: W evaluates as follows: |
| Return the set of all characters not included in the set returned by CharacterClassEscape :: w. |
| features: [String.fromCodePoint] |
| includes: [regExpUtils.js] |
| ---*/ |
| |
| const str = buildString({ |
| loneCodePoints: [0x00005F], |
| ranges: [ |
| [0x000030, 0x000039], |
| [0x000041, 0x00005A], |
| [0x000061, 0x00007A], |
| ], |
| }); |
| |
| const re = /\w/ug; |
| |
| const errors = []; |
| |
| if (!re.test(str)) { |
| // Error, let's find out where |
| for (const char of str) { |
| if (!re.test(char)) { |
| errors.push('0x' + char.codePointAt(0).toString(16)); |
| } |
| } |
| } |
| |
| assert.sameValue( |
| errors.length, |
| 0, |
| 'Expected matching code points, but received: ' + errors.join(',') |
| ); |