Changeset 44844 in webkit for trunk/JavaScriptCore/bytecode
- Timestamp:
- Jun 19, 2009, 12:10:49 AM (16 years ago)
- Location:
- trunk/JavaScriptCore/bytecode
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/bytecode/CodeBlock.cpp
r44076 r44844 1266 1266 } 1267 1267 1268 CodeBlock::CodeBlock(ScopeNode* ownerNode) 1269 : m_numCalleeRegisters(0) 1270 , m_numConstants(0) 1271 , m_numVars(0) 1272 , m_numParameters(0) 1273 , m_ownerNode(ownerNode) 1274 , m_globalData(0) 1275 #ifndef NDEBUG 1276 , m_instructionCount(0) 1277 #endif 1278 , m_needsFullScopeChain(false) 1279 , m_usesEval(false) 1280 , m_isNumericCompareFunction(false) 1281 , m_codeType(NativeCode) 1282 , m_source(0) 1283 , m_sourceOffset(0) 1284 , m_exceptionInfo(0) 1285 { 1286 #if DUMP_CODE_BLOCK_STATISTICS 1287 liveCodeBlockSet.add(this); 1288 #endif 1289 } 1268 1290 1269 1291 CodeBlock::CodeBlock(ScopeNode* ownerNode, CodeType codeType, PassRefPtr<SourceProvider> sourceProvider, unsigned sourceOffset) … … 1343 1365 void CodeBlock::derefStructures(Instruction* vPC) const 1344 1366 { 1367 ASSERT(m_codeType != NativeCode); 1345 1368 Interpreter* interpreter = m_globalData->interpreter; 1346 1369 … … 1388 1411 void CodeBlock::refStructures(Instruction* vPC) const 1389 1412 { 1413 ASSERT(m_codeType != NativeCode); 1390 1414 Interpreter* interpreter = m_globalData->interpreter; 1391 1415 … … 1442 1466 void CodeBlock::reparseForExceptionInfoIfNecessary(CallFrame* callFrame) 1443 1467 { 1468 ASSERT(m_codeType != NativeCode); 1444 1469 if (m_exceptionInfo) 1445 1470 return; … … 1512 1537 HandlerInfo* CodeBlock::handlerForBytecodeOffset(unsigned bytecodeOffset) 1513 1538 { 1539 ASSERT(m_codeType != NativeCode); 1514 1540 ASSERT(bytecodeOffset < m_instructionCount); 1515 1541 … … 1530 1556 int CodeBlock::lineNumberForBytecodeOffset(CallFrame* callFrame, unsigned bytecodeOffset) 1531 1557 { 1558 ASSERT(m_codeType != NativeCode); 1532 1559 ASSERT(bytecodeOffset < m_instructionCount); 1533 1560 … … 1555 1582 int CodeBlock::expressionRangeForBytecodeOffset(CallFrame* callFrame, unsigned bytecodeOffset, int& divot, int& startOffset, int& endOffset) 1556 1583 { 1584 ASSERT(m_codeType != NativeCode); 1557 1585 ASSERT(bytecodeOffset < m_instructionCount); 1558 1586 … … 1594 1622 bool CodeBlock::getByIdExceptionInfoForBytecodeOffset(CallFrame* callFrame, unsigned bytecodeOffset, OpcodeID& opcodeID) 1595 1623 { 1624 ASSERT(m_codeType != NativeCode); 1596 1625 ASSERT(bytecodeOffset < m_instructionCount); 1597 1626 … … 1622 1651 bool CodeBlock::functionRegisterForBytecodeOffset(unsigned bytecodeOffset, int& functionRegisterIndex) 1623 1652 { 1653 ASSERT(m_codeType != NativeCode); 1624 1654 ASSERT(bytecodeOffset < m_instructionCount); 1625 1655 … … 1648 1678 bool CodeBlock::hasGlobalResolveInstructionAtBytecodeOffset(unsigned bytecodeOffset) 1649 1679 { 1680 ASSERT(m_codeType != NativeCode); 1650 1681 if (m_globalResolveInstructions.isEmpty()) 1651 1682 return false; … … 1668 1699 bool CodeBlock::hasGlobalResolveInfoAtBytecodeOffset(unsigned bytecodeOffset) 1669 1700 { 1701 ASSERT(m_codeType != NativeCode); 1670 1702 if (m_globalResolveInfos.isEmpty()) 1671 1703 return false; … … 1690 1722 void CodeBlock::setJITCode(JITCode jitCode) 1691 1723 { 1724 ASSERT(m_codeType != NativeCode); 1692 1725 ownerNode()->setJITCode(jitCode); 1693 1726 #if !ENABLE(OPCODE_SAMPLING) -
trunk/JavaScriptCore/bytecode/CodeBlock.h
r44711 r44844 50 50 class ExecState; 51 51 52 enum CodeType { GlobalCode, EvalCode, FunctionCode };52 enum CodeType { GlobalCode, EvalCode, FunctionCode, NativeCode }; 53 53 54 54 static ALWAYS_INLINE int missingThisObjectMarker() { return std::numeric_limits<int>::max(); } … … 218 218 friend class JIT; 219 219 public: 220 CodeBlock(ScopeNode* ownerNode); 220 221 CodeBlock(ScopeNode* ownerNode, CodeType, PassRefPtr<SourceProvider>, unsigned sourceOffset); 221 222 ~CodeBlock(); … … 340 341 CodeType codeType() const { return m_codeType; } 341 342 342 SourceProvider* source() const { return m_source.get(); }343 unsigned sourceOffset() const { return m_sourceOffset; }343 SourceProvider* source() const { ASSERT(m_codeType != NativeCode); return m_source.get(); } 344 unsigned sourceOffset() const { ASSERT(m_codeType != NativeCode); return m_sourceOffset; } 344 345 345 346 size_t numberOfJumpTargets() const { return m_jumpTargets.size(); } … … 433 434 SymbolTable& symbolTable() { return m_symbolTable; } 434 435 435 EvalCodeCache& evalCodeCache() { createRareDataIfNecessary(); return m_rareData->m_evalCodeCache; }436 EvalCodeCache& evalCodeCache() { ASSERT(m_codeType != NativeCode); createRareDataIfNecessary(); return m_rareData->m_evalCodeCache; } 436 437 437 438 void shrinkToFit(); … … 457 458 void createRareDataIfNecessary() 458 459 { 460 ASSERT(m_codeType != NativeCode); 459 461 if (!m_rareData) 460 462 m_rareData.set(new RareData);
Note:
See TracChangeset
for help on using the changeset viewer.