Lines Matching refs:property
1154 Property* property = expr->AsProperty();
1155 LhsKind assign_type = Property::GetAssignType(property);
1167 Register object = VisitForRegisterValue(property->obj());
1168 Handle<String> name = property->key()->AsLiteral()->AsPropertyName();
1178 Register object = VisitForRegisterValue(property->obj());
1179 Register key = VisitForRegisterValue(property->key());
1190 property->obj()->AsSuperPropertyReference();
1194 ->LoadLiteral(property->key()->AsLiteral()->AsPropertyName())
1204 property->obj()->AsSuperPropertyReference();
1207 VisitForRegisterValue(property->key(), args[2]);
1444 ClassLiteral::Property* property = expr->properties()->at(i);
1447 Register new_receiver = property->is_static() ? literal : prototype;
1453 VisitForAccumulatorValue(property->key());
1456 if (property->is_static() && property->is_computed_name()) {
1457 // The static prototype property is read only. We handle the non computed
1458 // property name case in the parser. Since this is the only case where we
1459 // need to check for an own read only property we special case this so we
1460 // do not need to do this for every property.
1470 VisitForRegisterValue(property->value(), value);
1471 VisitSetHomeObject(value, receiver, property);
1480 switch (property->kind()) {
1481 case ClassLiteral::Property::METHOD: {
1483 ->LoadLiteral(Smi::FromInt(property->NeedsSetFunctionName()))
1488 case ClassLiteral::Property::GETTER: {
1493 case ClassLiteral::Property::SETTER: {
1498 case ClassLiteral::Property::FIELD: {
1588 ObjectLiteral::Property* property = expr->properties()->at(property_index);
1589 if (property->is_computed_name()) break;
1590 if (property->IsCompileTimeValue()) continue;
1593 Literal* key = property->key()->AsLiteral();
1594 switch (property->kind()) {
1595 case ObjectLiteral::Property::CONSTANT:
1597 case ObjectLiteral::Property::MATERIALIZED_LITERAL:
1598 DCHECK(!CompileTimeValue::IsCompileTimeValue(property->value()));
1600 case ObjectLiteral::Property::COMPUTED: {
1605 if (property->emit_store()) {
1606 VisitForAccumulatorValue(property->value());
1607 if (FunctionLiteral::NeedsHomeObject(property->value())) {
1613 feedback_index(property->GetSlot(0)), language_mode());
1614 VisitSetHomeObject(value, literal, property, 1);
1618 feedback_index(property->GetSlot(0)), language_mode());
1621 VisitForEffect(property->value());
1627 VisitForRegisterValue(property->key(), args[1]);
1628 VisitForRegisterValue(property->value(), args[2]);
1629 if (property->emit_store()) {
1635 VisitSetHomeObject(value, literal, property);
1640 case ObjectLiteral::Property::PROTOTYPE: {
1641 DCHECK(property->emit_store());
1644 VisitForRegisterValue(property->value(), args[1]);
1648 case ObjectLiteral::Property::GETTER:
1649 if (property->emit_store()) {
1650 accessor_table.lookup(key)->second->getter = property;
1653 case ObjectLiteral::Property::SETTER:
1654 if (property->emit_store()) {
1655 accessor_table.lookup(key)->second->setter = property;
1678 // computed property names, and so we can compute its map ahead of time; see
1680 // with the first computed property name and continues with all properties to
1687 ObjectLiteral::Property* property = expr->properties()->at(property_index);
1690 if (property->kind() == ObjectLiteral::Property::PROTOTYPE) {
1691 DCHECK(property->emit_store());
1694 VisitForRegisterValue(property->value(), args[1]);
1699 switch (property->kind()) {
1700 case ObjectLiteral::Property::CONSTANT:
1701 case ObjectLiteral::Property::COMPUTED:
1702 case ObjectLiteral::Property::MATERIALIZED_LITERAL: {
1705 VisitForAccumulatorValue(property->key());
1707 VisitForRegisterValue(property->value(), args[2]);
1708 VisitSetHomeObject(args[2], literal, property);
1712 .LoadLiteral(Smi::FromInt(property->NeedsSetFunctionName()))
1717 case ObjectLiteral::Property::GETTER:
1718 case ObjectLiteral::Property::SETTER: {
1721 VisitForAccumulatorValue(property->key());
1723 VisitForRegisterValue(property->value(), args[2]);
1724 VisitSetHomeObject(args[2], literal, property);
1729 property->kind() == ObjectLiteral::Property::GETTER
1735 case ObjectLiteral::Property::PROTOTYPE:
2058 // Left-hand side can only be a property, a global or a variable slot.
2059 Property* property = expr->target()->AsProperty();
2060 LhsKind assign_type = Property::GetAssignType(property);
2068 object = VisitForRegisterValue(property->obj());
2069 name = property->key()->AsLiteral()->AsPropertyName();
2073 object = VisitForRegisterValue(property->obj());
2074 key = VisitForRegisterValue(property->key());
2080 property->obj()->AsSuperPropertyReference();
2085 ->LoadLiteral(property->key()->AsLiteral()->AsPropertyName())
2092 property->obj()->AsSuperPropertyReference();
2096 VisitForRegisterValue(property->key(), super_property_args[2]);
2114 FeedbackVectorSlot slot = property->PropertyFeedbackSlot();
2123 FeedbackVectorSlot slot = property->PropertyFeedbackSlot();
2269 void BytecodeGenerator::VisitPropertyLoad(Register obj, Property* expr) {
2270 LhsKind property_kind = Property::GetAssignType(expr);
2297 Property* expr,
2304 void BytecodeGenerator::VisitNamedSuperPropertyLoad(Property* property,
2308 property->obj()->AsSuperPropertyReference();
2313 ->LoadLiteral(property->key()->AsLiteral()->AsPropertyName())
2322 void BytecodeGenerator::VisitKeyedSuperPropertyLoad(Property* property,
2326 property->obj()->AsSuperPropertyReference();
2330 VisitForRegisterValue(property->key(), args[2]);
2338 void BytecodeGenerator::VisitProperty(Property* expr) {
2339 LhsKind property_kind = Property::GetAssignType(expr);
2377 Property* property = callee_expr->AsProperty();
2378 VisitAndPushIntoRegisterList(property->obj(), &args);
2379 VisitPropertyLoadForRegister(args[0], property, callee);
2420 Property* property = callee_expr->AsProperty();
2421 VisitNamedSuperPropertyLoad(property, receiver);
2427 Property* property = callee_expr->AsProperty();
2428 VisitKeyedSuperPropertyLoad(property, receiver);
2597 // Delete of an object property is allowed both in sloppy
2599 Property* property = expr->expression()->AsProperty();
2600 Register object = VisitForRegisterValue(property->obj());
2601 VisitForAccumulatorValue(property->key());
2657 // Left-hand side can only be a property, a global or a variable slot.
2658 Property* property = expr->expression()->AsProperty();
2659 LhsKind assign_type = Property::GetAssignType(property);
2676 FeedbackVectorSlot slot = property->PropertyFeedbackSlot();
2677 object = VisitForRegisterValue(property->obj());
2678 name = property->key()->AsLiteral()->AsPropertyName();
2683 FeedbackVectorSlot slot = property->PropertyFeedbackSlot();
2684 object = VisitForRegisterValue(property->obj());
2688 VisitForAccumulatorValue(property->key());
2697 property->obj()->AsSuperPropertyReference();
2701 ->LoadLiteral(property->key()->AsLiteral()->AsPropertyName())
2710 property->obj()->AsSuperPropertyReference();
2713 VisitForRegisterValue(property->key(), load_super_args[2]);
3002 Register home_object, ObjectLiteralProperty* property, Register value_out) {
3003 if (property == nullptr) {
3006 VisitForRegisterValue(property->value(), value_out);
3007 VisitSetHomeObject(value_out, home_object, property);
3012 LiteralProperty* property,
3014 Expression* expr = property->value();
3016 FeedbackVectorSlot slot = property->GetSlot(slot_number);