mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1081175 - Replace vector instead of appending to it in ChoiceNode::FilterASCII to fix a bad performance issue. r=bhackett
This commit is contained in:
parent
38a5145346
commit
2c8ec11d7f
@ -1001,7 +1001,7 @@ ChoiceNode::FilterASCII(int depth, bool ignore_case)
|
||||
}
|
||||
}
|
||||
|
||||
alternatives_.appendAll(new_alternatives);
|
||||
alternatives_ = Move(new_alternatives);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
20
js/src/jit-test/tests/basic/bug1081175.js
Normal file
20
js/src/jit-test/tests/basic/bug1081175.js
Normal file
@ -0,0 +1,20 @@
|
||||
var input = "webkit-search-cancel-button-aaaaaaa-bbbbb-ccccccc-dddddddd,"
|
||||
var bad_regex = '([a-u-]|\\u0080|\\u0100)*[d]';
|
||||
|
||||
function forceUnicode(s) {
|
||||
return ('\uffff' + s).replace(/^\uffff/, '');
|
||||
}
|
||||
function testRegex(input) {
|
||||
for (var i = 0; i < input.length; i++) {
|
||||
var sub = input.substring(0, i + 1);
|
||||
var res = sub.match(bad_regex);
|
||||
if (i >= 50) {
|
||||
assertEq(res.length, 2);
|
||||
assertEq(res[1], sub.substr(-2, 1));
|
||||
} else {
|
||||
assertEq(res, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
testRegex(input);
|
||||
testRegex(forceUnicode(input));
|
Loading…
Reference in New Issue
Block a user