Reviewers: ulan,
Description:
Correctly initialize regexp global cache.
[email protected]
BUG=148378
Please review this at https://chromiumcodereview.appspot.com/10905239/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files:
M src/jsregexp.cc
A + test/mjsunit/regress/regress-148378.js
Index: src/jsregexp.cc
diff --git a/src/jsregexp.cc b/src/jsregexp.cc
index
ae25432a587d19b9adb1c0d9f9bdc206ed161bda..e59170d5a315caa6feda341b6d6bb28103e152fe
100644
--- a/src/jsregexp.cc
+++ b/src/jsregexp.cc
@@ -706,16 +706,17 @@ Handle<JSArray>
RegExpImpl::SetLastMatchInfo(Handle<JSArray> last_match_info,
RegExpImpl::GlobalCache::GlobalCache(Handle<JSRegExp> regexp,
Handle<String> subject,
bool is_global,
- Isolate* isolate) {
+ Isolate* isolate)
+ : register_array_(NULL),
+ register_array_size_(0),
+ regexp_(regexp),
+ subject_(subject) {
#ifdef V8_INTERPRETED_REGEXP
bool interpreted = true;
#else
bool interpreted = false;
#endif // V8_INTERPRETED_REGEXP
- regexp_ = regexp;
- subject_ = subject;
-
if (regexp_->TypeTag() == JSRegExp::ATOM) {
static const int kAtomRegistersPerMatch = 2;
registers_per_match_ = kAtomRegistersPerMatch;
Index: test/mjsunit/regress/regress-148378.js
diff --git a/test/mjsunit/regress/regress-2185.js
b/test/mjsunit/regress/regress-148378.js
similarity index 90%
copy from test/mjsunit/regress/regress-2185.js
copy to test/mjsunit/regress/regress-148378.js
index
895f322fc63880b2a5c3f0480673d6f01cace9cd..d37cea1cf75b02888ec59231c65b5b6ac436d45c
100644
--- a/test/mjsunit/regress/regress-2185.js
+++ b/test/mjsunit/regress/regress-148378.js
@@ -25,12 +25,14 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-var a = [];
+"a".replace(/a/g, function() { return "c"; });
-for (var i = 0; i < 2; i++) {
- for (var j = 0; j < 30000; j++) {
- a.push(j);
+function test() {
+ try {
+ test();
+ } catch(e) {
+ "b".replace(/(b)/g, function() { return "c"; });
}
}
-a.sort(function(a, b) { return a - b; } );
+test();
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev