Changeset 199927 in webkit for trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
- Timestamp:
- Apr 22, 2016, 4:04:55 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
r199724 r199927 499 499 500 500 RefPtr<RegisterID> value = generator.emitNode(node->m_assign); 501 bool isClassProperty= node->needsSuperBinding();502 if ( isClassProperty)501 bool needsSuperBinding = node->needsSuperBinding(); 502 if (needsSuperBinding) 503 503 emitPutHomeObject(generator, value.get(), dst); 504 unsigned attribute = isClassProperty ? (Accessor | DontEnum) : Accessor; 504 505 unsigned attributes = node->isClassProperty() ? (Accessor | DontEnum) : Accessor; 505 506 506 507 ASSERT(node->m_type & (PropertyNode::Getter | PropertyNode::Setter)); … … 513 514 generator.emitSetFunctionNameIfNeeded(node->m_assign, value.get(), propertyName.get()); 514 515 if (node->m_type & PropertyNode::Getter) 515 generator.emitPutGetterByVal(dst, propertyName.get(), attribute , value.get());516 generator.emitPutGetterByVal(dst, propertyName.get(), attributes, value.get()); 516 517 else 517 generator.emitPutSetterByVal(dst, propertyName.get(), attribute , value.get());518 generator.emitPutSetterByVal(dst, propertyName.get(), attributes, value.get()); 518 519 continue; 519 520 } 520 521 521 522 if (node->m_type & PropertyNode::Getter) 522 generator.emitPutGetterById(dst, *node->name(), attribute , value.get());523 generator.emitPutGetterById(dst, *node->name(), attributes, value.get()); 523 524 else 524 generator.emitPutSetterById(dst, *node->name(), attribute , value.get());525 generator.emitPutSetterById(dst, *node->name(), attributes, value.get()); 525 526 continue; 526 527 } … … 563 564 } 564 565 565 ASSERT(!pair.second || isClassProperty== pair.second->needsSuperBinding());566 if ( isClassProperty&& pair.second)566 ASSERT(!pair.second || needsSuperBinding == pair.second->needsSuperBinding()); 567 if (needsSuperBinding && pair.second) 567 568 emitPutHomeObject(generator, secondReg, dst); 568 569 569 generator.emitPutGetterSetter(dst, *node->name(), attribute , getterReg.get(), setterReg.get());570 generator.emitPutGetterSetter(dst, *node->name(), attributes, getterReg.get(), setterReg.get()); 570 571 } 571 572 } … … 586 587 propertyNameRegister = generator.emitNode(node.m_expression); 587 588 589 unsigned attributes = BytecodeGenerator::PropertyConfigurable | BytecodeGenerator::PropertyWritable; 590 if (!node.isClassProperty()) 591 attributes |= BytecodeGenerator::PropertyEnumerable; 592 generator.emitSetFunctionNameIfNeeded(node.m_assign, value.get(), propertyNameRegister.get()); 588 593 generator.emitCallDefineProperty(newObj, propertyNameRegister.get(), 589 value.get(), nullptr, nullptr, BytecodeGenerator::PropertyConfigurable | BytecodeGenerator::PropertyWritable, m_position);594 value.get(), nullptr, nullptr, attributes, m_position); 590 595 return; 591 596 }
Note:
See TracChangeset
for help on using the changeset viewer.