f67dd50a16
Capture group names were extended in https://github.com/tc39/ecma262/pull/1869/files https://github.com/tc39/ecma262/pull/1932/files RegExpIdentifierName now explicitly enables unicode (+U) for unicode escape sequences; likewise, surrogate pairs are now allowed unconditionally. The implementation simply switches on unicode temporarily while parsing a capture group name. Good news everyone, /(?<𝒜>.)/ is now a legal pattern. Bug: v8:10384 Change-Id: Ida805998eb91ed717b2e05d81d52c1ed61104e3f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3233234 Auto-Submit: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#77722}
13 lines
567 B
JavaScript
13 lines
567 B
JavaScript
// Copyright 2021 the V8 project authors. All rights reserved.
|
||
// Use of this source code is governed by a BSD-style license that can be
|
||
// found in the LICENSE file.
|
||
|
||
const s = "x";
|
||
|
||
assertEquals(/(?<\ud835\udc9c>.)/.exec(s).groups["\u{1d49c}"], s);
|
||
assertEquals(/(?<\ud835\udc9c>.)/u.exec(s).groups["\u{1d49c}"], s);
|
||
assertEquals(/(?<\u{1d49c}>.)/.exec(s).groups["\u{1d49c}"], s);
|
||
assertEquals(/(?<\u{1d49c}>.)/u.exec(s).groups["\u{1d49c}"], s);
|
||
assertEquals(/(?<𝒜>.)/.exec(s).groups["\u{1d49c}"], s);
|
||
assertEquals(/(?<𝒜>.)/u.exec(s).groups["\u{1d49c}"], s);
|