52b4fb00b3
The irregexp compiler expects RegExpCharacterClass instances to contain at least one range. This preserves that invariant when parsing the negated \P{Any} unicode property. Bug: chromium:793588 Change-Id: If71fdce014a7e64d8af559084ee88108303d694b Reviewed-on: https://chromium-review.googlesource.com/827010 Reviewed-by: Mathias Bynens <mathias@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Erik Corry <erikcorry@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#50146}
14 lines
612 B
JavaScript
14 lines
612 B
JavaScript
// Copyright 2017 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.
|
|
|
|
// Flags: --harmony-regexp-property
|
|
|
|
assertNull(/a\P{Any}a/u.exec("a\u{d83d}a"));
|
|
assertEquals(["a\u{d83d}a"], /a\p{Any}a/u.exec("a\u{d83d}a"));
|
|
assertEquals(["a\u{d83d}a"], /(?:a\P{Any}a|a\p{Any}a)/u.exec("a\u{d83d}a"));
|
|
assertNull(/a[\P{Any}]a/u.exec("a\u{d83d}a"));
|
|
assertEquals(["a\u{d83d}a"], /a[^\P{Any}]a/u.exec("a\u{d83d}a"));
|
|
assertEquals(["a\u{d83d}a"], /a[^\P{Any}x]a/u.exec("a\u{d83d}a"));
|
|
assertNull(/a[^\P{Any}x]a/u.exec("axa"));
|