diff --git a/test/annexB/built-ins/RegExp/prototype/flags/order-after-compile.js b/test/annexB/built-ins/RegExp/prototype/flags/order-after-compile.js new file mode 100644 index 0000000000..068b00d7bd --- /dev/null +++ b/test/annexB/built-ins/RegExp/prototype/flags/order-after-compile.js @@ -0,0 +1,35 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-get-regexp.prototype.flags +description: > + The flags come in the same order in a new instance produced by RegExp.prototype.compile +info: | + B.2.5.1 RegExp.prototype.compile ( pattern, flags ) + + ... + 5. Return ? RegExpInitialize(O, P, F). + + 21.2.5.3 get RegExp.prototype.flags + + ... + 4. Let global be ToBoolean(? Get(R, "global")). + 5. If global is true, append "g" as the last code unit of result. + 6. Let ignoreCase be ToBoolean(? Get(R, "ignoreCase")). + 7. If ignoreCase is true, append "i" as the last code unit of result. + 8. Let multiline be ToBoolean(? Get(R, "multiline")). + 9. If multiline is true, append "m" as the last code unit of result. + 10. Let dotAll be ToBoolean(? Get(R, "dotAll")). + 11. If dotAll is true, append "s" as the last code unit of result. + 12. Let unicode be ToBoolean(? Get(R, "unicode")). + 13. If unicode is true, append "u" as the last code unit of result. + 14. Let sticky be ToBoolean(? Get(R, "sticky")). + 15. If sticky is true, append "y" as the last code unit of result. + 14. Return result. +features: [regexp-dotall] +---*/ + +let re = /(?:)/; +re.compile("(?:)", "imsuyg"); +assert.sameValue(re.flags, "gimsuy"); diff --git a/test/built-ins/RegExp/named-groups/lookbehind.js b/test/built-ins/RegExp/named-groups/lookbehind.js index 0009bc5008..e3926bc97e 100644 --- a/test/built-ins/RegExp/named-groups/lookbehind.js +++ b/test/built-ins/RegExp/named-groups/lookbehind.js @@ -3,7 +3,7 @@ /*--- description: Named groups can be used in conjunction with lookbehind -esid: pending +esid: prod-GroupSpecifier features: [regexp-named-groups, regexp-lookbehind] includes: [compareArray.js] ---*/ diff --git a/test/built-ins/RegExp/named-groups/non-unicode-malformed.js b/test/built-ins/RegExp/named-groups/non-unicode-malformed.js index 6a6d7bd9ec..993ff17616 100644 --- a/test/built-ins/RegExp/named-groups/non-unicode-malformed.js +++ b/test/built-ins/RegExp/named-groups/non-unicode-malformed.js @@ -5,7 +5,7 @@ description: > Named groups in Unicode RegExps have some syntax errors and some compatibility escape fallback behavior. -esid: pending +esid: prod-GroupSpecifier features: [regexp-named-groups, regexp-lookbehind] includes: [compareArray.js] ---*/ diff --git a/test/built-ins/RegExp/named-groups/non-unicode-match.js b/test/built-ins/RegExp/named-groups/non-unicode-match.js index 4e29bb24a4..7904c75e43 100644 --- a/test/built-ins/RegExp/named-groups/non-unicode-match.js +++ b/test/built-ins/RegExp/named-groups/non-unicode-match.js @@ -3,7 +3,7 @@ /*--- description: Basic matching cases with non-Unicode groups -esid: pending +esid: prod-GroupSpecifier features: [regexp-named-groups] includes: [compareArray.js] ---*/ diff --git a/test/built-ins/RegExp/named-groups/non-unicode-property-names.js b/test/built-ins/RegExp/named-groups/non-unicode-property-names.js index fea50314a4..9c02d0b517 100644 --- a/test/built-ins/RegExp/named-groups/non-unicode-property-names.js +++ b/test/built-ins/RegExp/named-groups/non-unicode-property-names.js @@ -3,7 +3,7 @@ /*--- description: Exotic named group names in non-Unicode RegExps -esid: pending +esid: prod-GroupSpecifier features: [regexp-named-groups] includes: [compareArray.js] ---*/ @@ -13,7 +13,7 @@ assert.throws(SyntaxError, () => eval('/(?<\\u{03C0}>a)/'), "\\u{} escapes allow assert.sameValue("a", /(?<π>a)/.exec("bab").groups.\u03C0); assert.sameValue("a", /(?<$>a)/.exec("bab").groups.$); assert.sameValue("a", /(?<_>a)/.exec("bab").groups._); -assert.throws(SyntaxError, () => eval('/(?<$𐒤>a)/'), "Individual surrogates not in ID_Continue); +assert.throws(SyntaxError, () => eval('/(?<$𐒤>a)/'), "Individual surrogates not in ID_Continue"); assert.sameValue("a", /(?<_\u200C>a)/.exec("bab").groups._\u200C); assert.sameValue("a", /(?<_\u200D>a)/.exec("bab").groups._\u200D); assert.sameValue("a", /(?<ಠ_ಠ>a)/.exec("bab").groups.ಠ_ಠ); @@ -30,7 +30,6 @@ assert.throws(SyntaxError, () => eval("/(?.)/")); assert.throws(SyntaxError, () => eval("/(?.)/"), "Lea"); assert.throws(SyntaxError, () => eval("/(?.)/"), "Trai"); assert(RegExp("(?<\u{0041}>.)").test("a"), "Non-surrogate"); -assert(RegExp("(?.)").test("a"), "Surrogate, ID_Continue"); // Bracketed escapes are not allowed; // 4-char escapes must be the proper ID_Start/ID_Continue diff --git a/test/built-ins/RegExp/named-groups/non-unicode-references.js b/test/built-ins/RegExp/named-groups/non-unicode-references.js index bbf7a0fa5a..33d62a3f0a 100644 --- a/test/built-ins/RegExp/named-groups/non-unicode-references.js +++ b/test/built-ins/RegExp/named-groups/non-unicode-references.js @@ -3,7 +3,7 @@ /*--- description: Named backreferences in non-Unicode RegExps -esid: pending +esid: prod-GroupSpecifier features: [regexp-named-groups] includes: [compareArray.js] ---*/ diff --git a/test/built-ins/RegExp/named-groups/string-replace-nocaptures.js b/test/built-ins/RegExp/named-groups/string-replace-nocaptures.js index 03fccdc87a..39a5887069 100644 --- a/test/built-ins/RegExp/named-groups/string-replace-nocaptures.js +++ b/test/built-ins/RegExp/named-groups/string-replace-nocaptures.js @@ -18,7 +18,7 @@ info: > // @@replace with a string replacement argument (no named captures). let source = "(.)(.)|(x)"; -for (let flags of ["", "u", "g", "gu"]) { +for (let flags of ["", "u"]) { let re = new RegExp(source, flags); assert.sameValue("$$cd", "abcd".replace(re, "$$")); assert.sameValue("bacd", "abcd".replace(re, "$2$1")); diff --git a/test/built-ins/RegExp/named-groups/unicode-malformed.js b/test/built-ins/RegExp/named-groups/unicode-malformed.js index f0f08a8ed4..33a09a2689 100644 --- a/test/built-ins/RegExp/named-groups/unicode-malformed.js +++ b/test/built-ins/RegExp/named-groups/unicode-malformed.js @@ -3,7 +3,7 @@ /*--- description: Various syntax errors for Unicode RegExps containing named groups -esid: pending +esid: prod-GroupSpecifier features: [regexp-named-groups] ---*/ diff --git a/test/built-ins/RegExp/named-groups/unicode-match.js b/test/built-ins/RegExp/named-groups/unicode-match.js index f840d4cfe2..a8e1059bdb 100644 --- a/test/built-ins/RegExp/named-groups/unicode-match.js +++ b/test/built-ins/RegExp/named-groups/unicode-match.js @@ -3,7 +3,7 @@ /*--- description: Basic matching cases with Unicode groups -esid: pending +esid: prod-GroupSpecifier features: [regexp-named-groups] includes: [compareArray.js] ---*/ diff --git a/test/built-ins/RegExp/named-groups/unicode-property-names.js b/test/built-ins/RegExp/named-groups/unicode-property-names.js index 149322bb2d..24e4a6ade9 100644 --- a/test/built-ins/RegExp/named-groups/unicode-property-names.js +++ b/test/built-ins/RegExp/named-groups/unicode-property-names.js @@ -3,7 +3,7 @@ /*--- description: Exotic named group names in Unicode RegExps -esid: pending +esid: prod-GroupSpecifier features: [regexp-named-groups] ---*/ diff --git a/test/built-ins/RegExp/prototype/flags/order.js b/test/built-ins/RegExp/prototype/flags/order.js index 141cf21342..004b538b4b 100644 --- a/test/built-ins/RegExp/prototype/flags/order.js +++ b/test/built-ins/RegExp/prototype/flags/order.js @@ -1,5 +1,6 @@ // Copyright (C) 2017 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. + /*--- esid: sec-get-regexp.prototype.flags description: > @@ -20,9 +21,5 @@ info: > features: [regexp-dotall] ---*/ -assert.sameValue("gimsuy", new RegExp("", "gimsuy").flags); -assert.sameValue("gimsuy", new RegExp("", "yusmig").flags); - -let re = /(?:)/; -re.compile("(?:)", "imsuyg"); -assert.sameValue("gimsuy", re.flags); +assert.sameValue(new RegExp("", "gimsuy").flags, "gimsuy", "gimsuy => gimsuy"); +assert.sameValue(new RegExp("", "yusmig").flags, "gimsuy", "yusmig => gimsuy");