Changeset 128534 in webkit for trunk/Source/JavaScriptCore/bytecompiler
- Timestamp:
- Sep 13, 2012, 5:43:04 PM (13 years ago)
- Location:
- trunk/Source/JavaScriptCore/bytecompiler
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp
r128400 r128534 1658 1658 return dst; 1659 1659 1660 default: 1661 ASSERT_NOT_REACHED(); 1662 return 0; 1663 } 1664 } 1665 1666 RegisterID* BytecodeGenerator::emitInitGlobalConst(const ResolveResult& resolveResult, const Identifier& identifier, RegisterID* value) 1667 { 1668 ASSERT(m_codeType == GlobalCode); 1669 switch (resolveResult.type()) { 1670 case ResolveResult::IndexedGlobal: 1671 case ResolveResult::ReadOnlyIndexedGlobal: 1672 emitOpcode(op_init_global_const); 1673 instructions().append(resolveResult.registerPointer()); 1674 instructions().append(value->index()); 1675 return value; 1676 1677 case ResolveResult::WatchedIndexedGlobal: 1678 emitOpcode(op_init_global_const_check); 1679 instructions().append(resolveResult.registerPointer()); 1680 instructions().append(value->index()); 1681 instructions().append(jsCast<JSGlobalObject*>(resolveResult.globalObject())->symbolTable()->get(identifier.impl()).addressOfIsWatched()); 1682 instructions().append(addConstant(identifier)); 1683 return value; 1684 1660 1685 default: 1661 1686 ASSERT_NOT_REACHED(); -
trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h
r128260 r128534 463 463 RegisterID* emitGetStaticVar(RegisterID* dst, const ResolveResult&, const Identifier&); 464 464 RegisterID* emitPutStaticVar(const ResolveResult&, const Identifier&, RegisterID* value); 465 RegisterID* emitInitGlobalConst(const ResolveResult&, const Identifier&, RegisterID* value); 465 466 466 467 RegisterID* emitResolve(RegisterID* dst, const ResolveResult&, const Identifier& property); -
trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
r127958 r128534 1388 1388 RefPtr<RegisterID> value = m_init ? generator.emitNode(m_init) : generator.emitLoad(0, jsUndefined()); 1389 1389 1390 if (resolveResult.isStatic()) 1390 if (resolveResult.isStatic()) { 1391 if (generator.codeType() == GlobalCode) 1392 return generator.emitInitGlobalConst(resolveResult, m_ident, value.get()); 1391 1393 return generator.emitPutStaticVar(resolveResult, m_ident, value.get()); 1392 1394 } 1393 1395 if (generator.codeType() != EvalCode) 1394 1396 return value.get();
Note:
See TracChangeset
for help on using the changeset viewer.