// 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 non-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: [0x000060], ranges: [ [0x00DC00, 0x00DFFF], [0x000000, 0x00002F], [0x00003A, 0x000040], [0x00005B, 0x00005E], [0x00007B, 0x00DBFF], [0x00E000, 0x10FFFF], ], }); 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(',') ); reportCompare(0, 0);