mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
deps: cherry-pick a51f429 from V8 upstream
Original commit message: [regexp] Fix case-insensitive matching for one-byte subjects. The bug occurs because we do not canonicalize character class ranges before adding case equivalents. While adding case equivalents, we abort early for one-byte subject strings, assuming that the ranges are sorted. Which they are not. R=marja@chromium.org BUG=v8:5199 Review-Url: https://codereview.chromium.org/2159683002 Cr-Commit-Position: refs/heads/master@{#37833} Fixes: https://github.com/nodejs/node/issues/7708 PR-URL: https://github.com/nodejs/node/pull/7833 Reviewed-By: targos - Michaël Zasso <mic.besace@gmail.com> Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: ofrobots - Ali Ijaz Sheikh <ofrobots@google.com>
This commit is contained in:
committed by
Ali Ijaz Sheikh
parent
b4258bba11
commit
60d46b4e70
2
deps/v8/include/v8-version.h
vendored
2
deps/v8/include/v8-version.h
vendored
@@ -11,7 +11,7 @@
|
||||
#define V8_MAJOR_VERSION 5
|
||||
#define V8_MINOR_VERSION 1
|
||||
#define V8_BUILD_NUMBER 281
|
||||
#define V8_PATCH_LEVEL 77
|
||||
#define V8_PATCH_LEVEL 78
|
||||
|
||||
// Use 1 for candidates and 0 otherwise.
|
||||
// (Boolean macro values are not supported by all preprocessors.)
|
||||
|
||||
1
deps/v8/src/regexp/jsregexp.cc
vendored
1
deps/v8/src/regexp/jsregexp.cc
vendored
@@ -5879,6 +5879,7 @@ Vector<const int> CharacterRange::GetWordBounds() {
|
||||
void CharacterRange::AddCaseEquivalents(Isolate* isolate, Zone* zone,
|
||||
ZoneList<CharacterRange>* ranges,
|
||||
bool is_one_byte) {
|
||||
CharacterRange::Canonicalize(ranges);
|
||||
int range_count = ranges->length();
|
||||
for (int i = 0; i < range_count; i++) {
|
||||
CharacterRange range = ranges->at(i);
|
||||
|
||||
5
deps/v8/test/mjsunit/regress/regress-5199.js
vendored
Normal file
5
deps/v8/test/mjsunit/regress/regress-5199.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
// Copyright 2016 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.
|
||||
|
||||
assertTrue(/(a[\u1000A])+/i.test('aa'));
|
||||
Reference in New Issue
Block a user