Changeset 57955 in webkit for trunk/JavaScriptCore/bytecode
- Timestamp:
- Apr 20, 2010, 11:41:20 PM (15 years ago)
- Location:
- trunk/JavaScriptCore/bytecode
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/bytecode/CodeBlock.cpp
r57054 r57955 90 90 } 91 91 92 static UString regexpToSourceString(RegExp* regExp)93 {94 char postfix[5] = { '/', 0, 0, 0, 0 };95 int index = 1;96 if (regExp->global())97 postfix[index++] = 'g';98 if (regExp->ignoreCase())99 postfix[index++] = 'i';100 if (regExp->multiline())101 postfix[index] = 'm';102 103 return makeString("/", regExp->pattern(), postfix);104 }105 106 static CString regexpName(int re, RegExp* regexp)107 {108 return makeString(regexpToSourceString(regexp), "(@re", UString::from(re), ")").UTF8String();109 }110 111 92 static UString pointerToSourceString(void* p) 112 93 { … … 365 346 } 366 347 367 if (m_rareData && !m_rareData->m_regexps.isEmpty()) {368 printf("\nm_regexps:\n");369 size_t i = 0;370 do {371 printf(" re%u = %s\n", static_cast<unsigned>(i), regexpToSourceString(m_rareData->m_regexps[i].get()).ascii());372 ++i;373 } while (i < m_rareData->m_regexps.size());374 }375 376 348 #if ENABLE(JIT) 377 349 if (!m_globalResolveInfos.isEmpty() || !m_structureStubInfos.isEmpty()) … … 509 481 int argc = (++it)->u.operand; 510 482 printf("[%4d] new_array\t %s, %s, %d\n", location, registerName(exec, dst).data(), registerName(exec, argv).data(), argc); 511 break;512 }513 case op_new_regexp: {514 int r0 = (++it)->u.operand;515 int re0 = (++it)->u.operand;516 printf("[%4d] new_regexp\t %s, %s\n", location, registerName(exec, r0).data(), regexpName(re0, regexp(re0)).data());517 483 break; 518 484 } … … 1708 1674 if (m_rareData) { 1709 1675 m_rareData->m_exceptionHandlers.shrinkToFit(); 1710 m_rareData->m_regexps.shrinkToFit();1711 1676 m_rareData->m_immediateSwitchJumpTables.shrinkToFit(); 1712 1677 m_rareData->m_characterSwitchJumpTables.shrinkToFit(); -
trunk/JavaScriptCore/bytecode/CodeBlock.h
r57054 r57955 459 459 FunctionExecutable* functionExpr(int index) { return m_functionExprs[index].get(); } 460 460 461 unsigned addRegExp(RegExp* r) { createRareDataIfNecessary(); unsigned size = m_rareData->m_regexps.size(); m_rareData->m_regexps.append(r); return size; }462 RegExp* regexp(int index) const { ASSERT(m_rareData); return m_rareData->m_regexps[index].get(); }463 464 465 461 // Jump Tables 466 462 … … 557 553 Vector<HandlerInfo> m_exceptionHandlers; 558 554 559 // Rare Constants560 Vector<RefPtr<RegExp> > m_regexps;561 562 555 // Jump Tables 563 556 Vector<SimpleJumpTable> m_immediateSwitchJumpTables; -
trunk/JavaScriptCore/bytecode/Opcode.h
r55564 r57955 47 47 macro(op_new_object, 2) \ 48 48 macro(op_new_array, 4) \ 49 macro(op_new_regexp, 3) \50 49 macro(op_mov, 3) \ 51 50 \
Note:
See TracChangeset
for help on using the changeset viewer.