Changeset 64790 in webkit for trunk/JavaScriptCore/interpreter
- Timestamp:
- Aug 5, 2010, 3:22:49 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/interpreter/Interpreter.cpp
r63267 r64790 145 145 { 146 146 int dst = vPC[1].u.operand; 147 JSGlobalObject* globalObject = static_cast<JSGlobalObject*>(vPC[2].u.jsCell); 147 CodeBlock* codeBlock = callFrame->codeBlock(); 148 JSGlobalObject* globalObject = codeBlock->globalObject(); 148 149 ASSERT(globalObject->isGlobalObject()); 149 int property = vPC[ 3].u.operand;150 Structure* structure = vPC[ 4].u.structure;151 int offset = vPC[ 5].u.operand;150 int property = vPC[2].u.operand; 151 Structure* structure = vPC[3].u.structure; 152 int offset = vPC[4].u.operand; 152 153 153 154 if (structure == globalObject->structure()) { … … 156 157 } 157 158 158 CodeBlock* codeBlock = callFrame->codeBlock();159 159 Identifier& ident = codeBlock->identifier(property); 160 160 PropertySlot slot(globalObject); … … 162 162 JSValue result = slot.getValue(callFrame, ident); 163 163 if (slot.isCacheableValue() && !globalObject->structure()->isUncacheableDictionary() && slot.slotBase() == globalObject) { 164 if (vPC[ 4].u.structure)165 vPC[ 4].u.structure->deref();164 if (vPC[3].u.structure) 165 vPC[3].u.structure->deref(); 166 166 globalObject->structure()->ref(); 167 vPC[ 4] = globalObject->structure();168 vPC[ 5] = slot.cachedOffset();167 vPC[3] = globalObject->structure(); 168 vPC[4] = slot.cachedOffset(); 169 169 callFrame->r(dst) = JSValue(result); 170 170 return true; … … 185 185 { 186 186 int dst = vPC[1].u.operand; 187 JSGlobalObject* globalObject = static_cast<JSGlobalObject*>(vPC[2].u.jsCell); 187 CodeBlock* codeBlock = callFrame->codeBlock(); 188 JSGlobalObject* globalObject = codeBlock->globalObject(); 188 189 ASSERT(globalObject->isGlobalObject()); 189 int property = vPC[3].u.operand; 190 Structure* structure = vPC[4].u.structure; 191 int offset = vPC[5].u.operand; 192 CodeBlock* codeBlock = callFrame->codeBlock(); 193 int skip = vPC[6].u.operand; 190 int property = vPC[2].u.operand; 191 Structure* structure = vPC[3].u.structure; 192 int offset = vPC[4].u.operand; 193 int skip = vPC[5].u.operand; 194 194 195 195 ScopeChainNode* scopeChain = callFrame->scopeChain(); … … 232 232 JSValue result = slot.getValue(callFrame, ident); 233 233 if (slot.isCacheableValue() && !globalObject->structure()->isUncacheableDictionary() && slot.slotBase() == globalObject) { 234 if (vPC[ 4].u.structure)235 vPC[ 4].u.structure->deref();234 if (vPC[3].u.structure) 235 vPC[3].u.structure->deref(); 236 236 globalObject->structure()->ref(); 237 vPC[ 4] = globalObject->structure();238 vPC[ 5] = slot.cachedOffset();237 vPC[3] = globalObject->structure(); 238 vPC[4] = slot.cachedOffset(); 239 239 callFrame->r(dst) = JSValue(result); 240 240 return true; … … 2285 2285 */ 2286 2286 int dst = vPC[1].u.operand; 2287 JSGlobalObject* scope = static_cast<JSGlobalObject*>(vPC[2].u.jsCell);2287 JSGlobalObject* scope = codeBlock->globalObject(); 2288 2288 ASSERT(scope->isGlobalObject()); 2289 int index = vPC[ 3].u.operand;2289 int index = vPC[2].u.operand; 2290 2290 2291 2291 callFrame->r(dst) = scope->registerAt(index); … … 2298 2298 Puts value into global slot index. 2299 2299 */ 2300 JSGlobalObject* scope = static_cast<JSGlobalObject*>(vPC[1].u.jsCell);2300 JSGlobalObject* scope = codeBlock->globalObject(); 2301 2301 ASSERT(scope->isGlobalObject()); 2302 int index = vPC[ 2].u.operand;2303 int value = vPC[ 3].u.operand;2302 int index = vPC[1].u.operand; 2303 int value = vPC[2].u.operand; 2304 2304 2305 2305 scope->registerAt(index) = JSValue(callFrame->r(value).jsValue());
Note:
See TracChangeset
for help on using the changeset viewer.