Changeset 225861 in webkit for trunk/Source/JavaScriptCore/runtime/RegExp.cpp
- Timestamp:
- Dec 13, 2017, 11:38:51 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/runtime/RegExp.cpp
r225695 r225861 272 272 } 273 273 274 275 static std::unique_ptr<Yarr::BytecodePattern> byteCodeCompilePattern(VM* vm, Yarr::YarrPattern& pattern)276 {277 return Yarr::byteCompile(pattern, &vm->m_regExpAllocator, &vm->m_regExpAllocatorLock);278 }279 280 void RegExp::byteCodeCompileIfNecessary(VM* vm)281 {282 if (m_regExpBytecode)283 return;284 285 Yarr::YarrPattern pattern(m_patternString, m_flags, &m_constructionError, vm->stackLimit());286 if (m_constructionError) {287 RELEASE_ASSERT_NOT_REACHED();288 #if COMPILER_QUIRK(CONSIDERS_UNREACHABLE_CODE)289 m_state = ParseError;290 return;291 #endif292 }293 ASSERT(m_numSubpatterns == pattern.m_numSubpatterns);294 295 m_regExpBytecode = byteCodeCompilePattern(vm, pattern);296 }297 298 274 void RegExp::compile(VM* vm, Yarr::YarrCharSize charSize) 299 275 { … … 328 304 #endif 329 305 330 if (Options::dumpCompiledRegExpPatterns())331 dataLog("Can't JIT this regular expression: \"", m_patternString, "\"\n");332 333 306 m_state = ByteCode; 334 m_regExpBytecode = byteCodeCompilePattern(vm, pattern);307 m_regExpBytecode = Yarr::byteCompile(pattern, &vm->m_regExpAllocator, &vm->m_regExpAllocatorLock); 335 308 } 336 309 … … 384 357 #endif 385 358 386 if (Options::dumpCompiledRegExpPatterns())387 dataLog("Can't JIT this regular expression: \"", m_patternString, "\"\n");388 389 359 m_state = ByteCode; 390 m_regExpBytecode = byteCodeCompilePattern(vm, pattern);360 m_regExpBytecode = Yarr::byteCompile(pattern, &vm->m_regExpAllocator, &vm->m_regExpAllocatorLock); 391 361 } 392 362
Note:
See TracChangeset
for help on using the changeset viewer.