OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include "vm/longjump.h" | 5 #include "vm/longjump.h" |
6 #include "vm/object_store.h" | 6 #include "vm/object_store.h" |
7 #include "vm/regexp_parser.h" | 7 #include "vm/regexp_parser.h" |
8 | 8 |
9 namespace dart { | 9 namespace dart { |
10 | 10 |
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
210 multiline_(multiline), | 210 multiline_(multiline), |
211 simple_(false), | 211 simple_(false), |
212 contains_anchor_(false), | 212 contains_anchor_(false), |
213 is_scanned_for_captures_(false), | 213 is_scanned_for_captures_(false), |
214 failed_(false) { | 214 failed_(false) { |
215 Advance(); | 215 Advance(); |
216 } | 216 } |
217 | 217 |
218 | 218 |
219 bool RegExpParser::ParseFunction(ParsedFunction *parsed_function) { | 219 bool RegExpParser::ParseFunction(ParsedFunction *parsed_function) { |
220 VMTagScope tagScope(Thread::Current()->isolate(), | 220 VMTagScope tagScope(parsed_function->thread(), |
221 VMTag::kCompileParseRegExpTagId); | 221 VMTag::kCompileParseRegExpTagId); |
222 Zone* zone = parsed_function->zone(); | 222 Zone* zone = parsed_function->zone(); |
223 JSRegExp& regexp = JSRegExp::Handle(parsed_function->function().regexp()); | 223 JSRegExp& regexp = JSRegExp::Handle(parsed_function->function().regexp()); |
224 | 224 |
225 const String& pattern = String::Handle(regexp.pattern()); | 225 const String& pattern = String::Handle(regexp.pattern()); |
226 const bool multiline = regexp.is_multi_line(); | 226 const bool multiline = regexp.is_multi_line(); |
227 | 227 |
228 RegExpCompileData* compile_data = new(zone) RegExpCompileData(); | 228 RegExpCompileData* compile_data = new(zone) RegExpCompileData(); |
229 if (!RegExpParser::ParseRegExp(pattern, multiline, compile_data)) { | 229 if (!RegExpParser::ParseRegExp(pattern, multiline, compile_data)) { |
230 // Parsing failures are handled in the JSRegExp factory constructor. | 230 // Parsing failures are handled in the JSRegExp factory constructor. |
(...skipping 840 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1071 String::Concat(result->error, input)); | 1071 String::Concat(result->error, input)); |
1072 const Array& args = Array::Handle(Array::New(1)); | 1072 const Array& args = Array::Handle(Array::New(1)); |
1073 args.SetAt(0, message); | 1073 args.SetAt(0, message); |
1074 | 1074 |
1075 Exceptions::ThrowByType(Exceptions::kFormat, args); | 1075 Exceptions::ThrowByType(Exceptions::kFormat, args); |
1076 } | 1076 } |
1077 return !parser.failed(); | 1077 return !parser.failed(); |
1078 } | 1078 } |
1079 | 1079 |
1080 } // namespace dart | 1080 } // namespace dart |
OLD | NEW |