Home | History | Annotate | Download | only in interpreter

Lines Matching refs:property

1250   Property* property = expr->AsProperty();
1251 LhsKind assign_type = Property::GetAssignType(property);
1263 Register object = VisitForRegisterValue(property->obj());
1265 property->key()->AsLiteral()->AsRawPropertyName();
1275 Register object = VisitForRegisterValue(property->obj());
1276 Register key = VisitForRegisterValue(property->key());
1287 property->obj()->AsSuperPropertyReference();
1291 ->LoadLiteral(property->key()->AsLiteral()->AsRawPropertyName())
1301 property->obj()->AsSuperPropertyReference();
1304 VisitForRegisterValue(property->key(), args[2]);
1536 ClassLiteral::Property* property = expr->properties()->at(i);
1539 Register new_receiver = property->is_static() ? constructor : prototype;
1545 if (property->key()->IsStringLiteral()) {
1546 VisitForRegisterValue(property->key(), key);
1548 VisitForAccumulatorValue(property->key());
1552 if (property->is_static() && property->is_computed_name()) {
1553 // The static prototype property is read only. We handle the non computed
1554 // property name case in the parser. Since this is the only case where we
1555 // need to check for an own read only property we special case this so we
1556 // do not need to do this for every property.
1566 VisitForRegisterValue(property->value(), value);
1567 VisitSetHomeObject(value, receiver, property);
1576 switch (property->kind()) {
1577 case ClassLiteral::Property::METHOD: {
1579 if (property->NeedsSetFunctionName()) {
1583 FeedbackSlot slot = property->GetStoreDataPropertySlot();
1592 case ClassLiteral::Property::GETTER: {
1596 case ClassLiteral::Property::SETTER: {
1600 case ClassLiteral::Property::FIELD: {
1695 ObjectLiteral::Property* property = expr->properties()->at(property_index);
1696 if (property->is_computed_name()) break;
1697 if (property->IsCompileTimeValue()) continue;
1700 Literal* key = property->key()->AsLiteral();
1701 switch (property->kind()) {
1702 case ObjectLiteral::Property::SPREAD:
1703 case ObjectLiteral::Property::CONSTANT:
1705 case ObjectLiteral::Property::MATERIALIZED_LITERAL:
1706 DCHECK(!CompileTimeValue::IsCompileTimeValue(property->value()));
1708 case ObjectLiteral::Property::COMPUTED: {
1713 if (property->emit_store()) {
1714 VisitForAccumulatorValue(property->value());
1715 if (FunctionLiteral::NeedsHomeObject(property->value())) {
1721 feedback_index(property->GetSlot(0)));
1722 VisitSetHomeObject(value, literal, property, 1);
1726 feedback_index(property->GetSlot(0)));
1729 VisitForEffect(property->value());
1735 VisitForRegisterValue(property->key(), args[1]);
1736 VisitForRegisterValue(property->value(), args[2]);
1737 if (property->emit_store()) {
1743 VisitSetHomeObject(value, literal, property);
1748 case ObjectLiteral::Property::PROTOTYPE: {
1749 DCHECK(property->emit_store());
1752 VisitForRegisterValue(property->value(), args[1]);
1756 case ObjectLiteral::Property::GETTER:
1757 if (property->emit_store()) {
1758 accessor_table.lookup(key)->second->getter = property;
1761 case ObjectLiteral::Property::SETTER:
1762 if (property->emit_store()) {
1763 property;
1786 // computed property names, and so we can compute its map ahead of time; see
1788 // with the first computed property name and continues with all properties to
1795 ObjectLiteral::Property* property = expr->properties()->at(property_index);
1798 if (property->kind() == ObjectLiteral::Property::PROTOTYPE) {
1799 DCHECK(property->emit_store());
1802 VisitForRegisterValue(property->value(), args[1]);
1807 switch (property->kind()) {
1808 case ObjectLiteral::Property::CONSTANT:
1809 case ObjectLiteral::Property::COMPUTED:
1810 case ObjectLiteral::Property::MATERIALIZED_LITERAL: {
1812 VisitForAccumulatorValue(property->key());
1815 Register value = VisitForRegisterValue(property->value());
1816 VisitSetHomeObject(value, literal, property);
1820 if (property->NeedsSetFunctionName()) {
1824 FeedbackSlot slot = property->GetStoreDataPropertySlot();
1833 case ObjectLiteral::Property::GETTER:
1834 case ObjectLiteral::Property::SETTER: {
1837 VisitForAccumulatorValue(property->key());
1839 VisitForRegisterValue(property->value(), args[2]);
1840 VisitSetHomeObject(args[2], literal, property);
1845 property->kind() == ObjectLiteral::Property::GETTER
1851 case ObjectLiteral::Property::SPREAD: {
1854 VisitForRegisterValue(property->value(), args[1]);
1858 case ObjectLiteral::Property::PROTOTYPE:
2212 // Left-hand side can only be a property, a global or a variable slot.
2213 Property* property = expr->target()->AsProperty();
2214 LhsKind assign_type = Property::GetAssignType(property);
2222 object = VisitForRegisterValue(property->obj());
2223 name = property->key()->AsLiteral()->AsRawPropertyName();
2227 object = VisitForRegisterValue(property->obj());
2228 key = VisitForRegisterValue(property->key());
2234 property->obj()->AsSuperPropertyReference();
2239 ->LoadLiteral(property->key()->AsLiteral()->AsRawPropertyName())
2246 property->obj()->AsSuperPropertyReference();
2250 VisitForRegisterValue(property->key(), super_property_args[2]);
2268 FeedbackSlot slot = property->PropertyFeedbackSlot();
2277 FeedbackSlot slot = property->PropertyFeedbackSlot();
2422 void BytecodeGenerator::VisitPropertyLoad(Register obj, Property* expr) {
2423 LhsKind property_kind = Property::GetAssignType(expr);
2450 Property* expr,
2457 void BytecodeGenerator::VisitNamedSuperPropertyLoad(Property* property,
2461 property->obj()->AsSuperPropertyReference();
2466 ->LoadLiteral(property->key()->AsLiteral()->AsRawPropertyName())
2475 void BytecodeGenerator::VisitKeyedSuperPropertyLoad(Property* property,
2479 property->obj()->AsSuperPropertyReference();
2483 VisitForRegisterValue(property->key(), args[2]);
2491 void BytecodeGenerator::VisitProperty(Property* expr) {
2492 LhsKind property_kind = Property::GetAssignType(expr);
2527 // specifies the call type (e.g., property, spread, tailcall, etc.).
2534 Property* property = callee_expr->AsProperty();
2535 VisitAndPushIntoRegisterList(property->obj(), &args);
2536 VisitPropertyLoadForRegister(args.last_register(), property, callee);
2577 Property* property = callee_expr->AsProperty();
2578 VisitNamedSuperPropertyLoad(property, receiver);
2584 Property* property = callee_expr->AsProperty();
2585 VisitKeyedSuperPropertyLoad(property, receiver);
2771 // Delete of an object property is allowed both in sloppy
2773 Property* property = expr->expression()->AsProperty();
2774 Register object = VisitForRegisterValue(property->obj());
2775 VisitForAccumulatorValue(property->key());
2833 // Left-hand side can only be a property, a global or a variable slot.
2834 Property* property = expr->expression()->AsProperty();
2835 LhsKind assign_type = Property::GetAssignType(property);
2852 FeedbackSlot slot = property->PropertyFeedbackSlot();
2853 object = VisitForRegisterValue(property->obj());
2854 name = property->key()->AsLiteral()->AsRawPropertyName();
2859 FeedbackSlot slot = property->PropertyFeedbackSlot();
2860 object = VisitForRegisterValue(property->obj());
2864 VisitForAccumulatorValue(property->key());
2873 property->obj()->AsSuperPropertyReference();
2877 ->LoadLiteral(property->key()->AsLiteral()->AsRawPropertyName())
2886 property->obj()->AsSuperPropertyReference();
2889 VisitForRegisterValue(property->key(), load_super_args[2]);
3263 Register home_object, ObjectLiteralProperty* property, Register value_out) {
3264 if (property == nullptr) {
3267 VisitForRegisterValue(property->value(), value_out);
3268 VisitSetHomeObject(value_out, home_object, property);
3273 LiteralProperty* property,
3275 Expression* expr = property->value();
3277 FeedbackSlot slot = property->GetSlot(slot_number);