| Index: src/parser.cc
 | 
| diff --git a/src/parser.cc b/src/parser.cc
 | 
| index dafab10c1cc4194ec8da5d71c7a7cc5a8fcdcc0d..087b6bd9b8c7645f53566f5d2376ee0378d7aebf 100644
 | 
| --- a/src/parser.cc
 | 
| +++ b/src/parser.cc
 | 
| @@ -111,7 +111,7 @@ void RegExpBuilder::FlushTerms() {
 | 
|    int num_terms = terms_.length();
 | 
|    RegExpTree* alternative;
 | 
|    if (num_terms == 0) {
 | 
| -    alternative = RegExpEmpty::GetInstance();
 | 
| +    alternative = new (zone()) RegExpEmpty();
 | 
|    } else if (num_terms == 1) {
 | 
|      alternative = terms_.last();
 | 
|    } else {
 | 
| @@ -126,12 +126,8 @@ void RegExpBuilder::FlushTerms() {
 | 
|  RegExpTree* RegExpBuilder::ToRegExp() {
 | 
|    FlushTerms();
 | 
|    int num_alternatives = alternatives_.length();
 | 
| -  if (num_alternatives == 0) {
 | 
| -    return RegExpEmpty::GetInstance();
 | 
| -  }
 | 
| -  if (num_alternatives == 1) {
 | 
| -    return alternatives_.last();
 | 
| -  }
 | 
| +  if (num_alternatives == 0) return new (zone()) RegExpEmpty();
 | 
| +  if (num_alternatives == 1) return alternatives_.last();
 | 
|    return new(zone()) RegExpDisjunction(alternatives_.GetList(zone()));
 | 
|  }
 | 
|  
 | 
| 
 |