mirror of
https://github.com/openjdk/jdk.git
synced 2026-03-12 08:53:12 +00:00
8012460: RegExp regression
Reviewed-by: jlaskey, sundar
This commit is contained in:
parent
649b7e005b
commit
4239700710
@ -287,7 +287,10 @@ class Parser extends Lexer {
|
||||
|
||||
if (syntax.allowDoubleRangeOpInCC()) {
|
||||
env.ccEscWarn("-");
|
||||
parseCharClassSbChar(cc, arg); // goto sb_char /* [0-9-a] is allowed as [0-9\-a] */
|
||||
arg.inType = CCVALTYPE.SB;
|
||||
arg.v = '-';
|
||||
arg.vIsRaw = false;
|
||||
parseCharClassValEntry2(cc, arg); // goto val_entry2 /* [0-9-a] is allowed as [0-9\-a] */
|
||||
break;
|
||||
}
|
||||
newSyntaxException(ERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS);
|
||||
|
||||
59
nashorn/test/script/basic/JDK-8012460.js
Normal file
59
nashorn/test/script/basic/JDK-8012460.js
Normal file
@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
/**
|
||||
* JDK-8012460: RegExp regression
|
||||
*
|
||||
* @test
|
||||
* @run
|
||||
*/
|
||||
|
||||
|
||||
var semver = "\\s*[v=]*\\s*([0-9]+)" // major
|
||||
+ "\\.([0-9]+)" // minor
|
||||
+ "\\.([0-9]+)" // patch
|
||||
+ "(-[0-9]+-?)?" // build
|
||||
+ "([a-zA-Z-+][a-zA-Z0-9-\.:]*)?" // tag
|
||||
, exprComparator = "^((<|>)?=?)\s*("+semver+")$|^$";
|
||||
var validComparator = new RegExp("^"+exprComparator+"$");
|
||||
|
||||
|
||||
print(exprComparator);
|
||||
print(">=0.6.0-".match(validComparator));
|
||||
print("=0.6.0-".match(validComparator));
|
||||
print("0.6.0-".match(validComparator));
|
||||
print("<=0.6.0-".match(validComparator));
|
||||
print(">=0.6.0-a:b-c.d".match(validComparator));
|
||||
print("=0.6.0-a:b-c.d".match(validComparator));
|
||||
print("0.6.0+a:b-c.d".match(validComparator));
|
||||
print("<=0.6.0+a:b-c.d".match(validComparator));
|
||||
|
||||
print(/[a-zA-Z-+]/.exec("a"));
|
||||
print(/[a-zA-Z-+]/.exec("b"));
|
||||
print(/[a-zA-Z-+]/.exec("y"));
|
||||
print(/[a-zA-Z-+]/.exec("z"));
|
||||
print(/[a-zA-Z-+]/.exec("B"));
|
||||
print(/[a-zA-Z-+]/.exec("Y"));
|
||||
print(/[a-zA-Z-+]/.exec("Z"));
|
||||
print(/[a-zA-Z-+]/.exec("-"));
|
||||
print(/[a-zA-Z-+]/.exec("+"));
|
||||
18
nashorn/test/script/basic/JDK-8012460.js.EXPECTED
Normal file
18
nashorn/test/script/basic/JDK-8012460.js.EXPECTED
Normal file
@ -0,0 +1,18 @@
|
||||
^((<|>)?=?)s*(\s*[v=]*\s*([0-9]+)\.([0-9]+)\.([0-9]+)(-[0-9]+-?)?([a-zA-Z-+][a-zA-Z0-9-.:]*)?)$|^$
|
||||
>=0.6.0-,>=,>,0.6.0-,0,6,0,,-
|
||||
=0.6.0-,=,,0.6.0-,0,6,0,,-
|
||||
0.6.0-,,,0.6.0-,0,6,0,,-
|
||||
<=0.6.0-,<=,<,0.6.0-,0,6,0,,-
|
||||
>=0.6.0-a:b-c.d,>=,>,0.6.0-a:b-c.d,0,6,0,,-a:b-c.d
|
||||
=0.6.0-a:b-c.d,=,,0.6.0-a:b-c.d,0,6,0,,-a:b-c.d
|
||||
0.6.0+a:b-c.d,,,0.6.0+a:b-c.d,0,6,0,,+a:b-c.d
|
||||
<=0.6.0+a:b-c.d,<=,<,0.6.0+a:b-c.d,0,6,0,,+a:b-c.d
|
||||
a
|
||||
b
|
||||
y
|
||||
z
|
||||
B
|
||||
Y
|
||||
Z
|
||||
-
|
||||
+
|
||||
Loading…
x
Reference in New Issue
Block a user