Changeset 189504 in webkit for trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
- Timestamp:
- Sep 8, 2015, 12:43:58 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
r189336 r189504 488 488 } 489 489 490 Re gisterID*value = generator.emitNode(node->m_assign);490 RefPtr<RegisterID> value = generator.emitNode(node->m_assign); 491 491 bool isClassProperty = node->needsSuperBinding(); 492 492 if (isClassProperty) 493 emitPutHomeObject(generator, value, dst); 493 emitPutHomeObject(generator, value.get(), dst); 494 unsigned attribute = isClassProperty ? (Accessor | DontEnum) : Accessor; 494 495 495 496 ASSERT(node->m_type & (PropertyNode::Getter | PropertyNode::Setter)); … … 497 498 // This is a get/set property which may be overridden by a computed property later. 498 499 if (hasComputedProperty) { 500 // Computed accessors. 501 if (node->m_type & PropertyNode::Computed) { 502 RefPtr<RegisterID> propertyName = generator.emitNode(node->m_expression); 503 if (node->m_type & PropertyNode::Getter) 504 generator.emitPutGetterByVal(dst, propertyName.get(), attribute, value.get()); 505 else 506 generator.emitPutSetterByVal(dst, propertyName.get(), attribute, value.get()); 507 continue; 508 } 509 499 510 if (node->m_type & PropertyNode::Getter) 500 generator.emitPutGetterById(dst, *node->name(), Accessor, value);511 generator.emitPutGetterById(dst, *node->name(), attribute, value.get()); 501 512 else 502 generator.emitPutSetterById(dst, *node->name(), Accessor, value);513 generator.emitPutSetterById(dst, *node->name(), attribute, value.get()); 503 514 continue; 504 515 } … … 545 556 emitPutHomeObject(generator, secondReg, dst); 546 557 547 generator.emitPutGetterSetter(dst, *node->name(), isClassProperty ? (Accessor | DontEnum) : Accessor, getterReg.get(), setterReg.get());558 generator.emitPutGetterSetter(dst, *node->name(), attribute, getterReg.get(), setterReg.get()); 548 559 } 549 560 }
Note:
See TracChangeset
for help on using the changeset viewer.