Changeset 35533 in webkit for trunk/JavaScriptCore/VM/Machine.cpp
- Timestamp:
- Aug 3, 2008, 2:58:21 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/VM/Machine.cpp
r35454 r35533 41 41 #include "JSNotAnObject.h" 42 42 #include "JSPropertyNameIterator.h" 43 #include "JSStaticScopeObject.h" 43 44 #include "JSString.h" 44 45 #include "ObjectPrototype.h" … … 999 1000 } 1000 1001 1002 static NEVER_INLINE ScopeChainNode* createExceptionScope(ExecState* exec, CodeBlock* codeBlock, const Instruction* vPC, Register* r, ScopeChainNode* scopeChain) 1003 { 1004 int dst = (++vPC)->u.operand; 1005 Identifier& property = codeBlock->identifiers[(++vPC)->u.operand]; 1006 JSValue* value = r[(++vPC)->u.operand].jsValue(exec); 1007 JSObject* scope = new (exec) JSStaticScopeObject(property, value, DontDelete); 1008 r[dst] = scope; 1009 return scopeChain->push(scope); 1010 } 1011 1001 1012 JSValue* Machine::privateExecute(ExecutionFlag flag, ExecState* exec, RegisterFile* registerFile, Register* r, ScopeChainNode* scopeChain, CodeBlock* codeBlock, JSValue** exception) 1002 1013 { … … 2603 2614 NEXT_OPCODE; 2604 2615 } 2616 #if HAVE(COMPUTED_GOTO) 2617 // Appease GCC 2618 goto *(&&skip_new_scope); 2619 #endif 2620 BEGIN_OPCODE(op_push_new_scope) { 2621 /* new_scope dst(r) property(id) value(r) 2622 2623 Constructs a new StaticScopeObject with property set to value. That scope 2624 object is then pushed onto the ScopeChain. The scope object is then stored 2625 in dst for GC. 2626 */ 2627 setScopeChain(exec, scopeChain, createExceptionScope(exec, codeBlock, vPC, r, scopeChain)); 2628 vPC += 4; 2629 NEXT_OPCODE; 2630 } 2631 #if HAVE(COMPUTED_GOTO) 2632 skip_new_scope: 2633 #endif 2605 2634 BEGIN_OPCODE(op_catch) { 2606 2635 /* catch ex(r)
Note:
See TracChangeset
for help on using the changeset viewer.