Index: src/compiler/js-operator.h |
diff --git a/src/compiler/js-operator.h b/src/compiler/js-operator.h |
index e9545c9592484ad9c92a1a0a63a816fc7b1c9ffd..cfc46738d6673eb5c689d2bc286b1c059c4da02e 100644 |
--- a/src/compiler/js-operator.h |
+++ b/src/compiler/js-operator.h |
@@ -274,15 +274,19 @@ const LoadPropertyParameters& LoadPropertyParametersOf(const Operator* op); |
// used as a parameter by JSStoreNamed operators. |
class StoreNamedParameters final { |
public: |
- StoreNamedParameters(LanguageMode language_mode, const Unique<Name>& name) |
- : language_mode_(language_mode), name_(name) {} |
+ StoreNamedParameters(LanguageMode language_mode, |
+ const ResolvedFeedbackSlot& feedback, |
+ const Unique<Name>& name) |
+ : language_mode_(language_mode), name_(name), feedback_(feedback) {} |
LanguageMode language_mode() const { return language_mode_; } |
+ const ResolvedFeedbackSlot& feedback() const { return feedback_; } |
const Unique<Name>& name() const { return name_; } |
private: |
const LanguageMode language_mode_; |
const Unique<Name> name_; |
+ const ResolvedFeedbackSlot feedback_; |
}; |
bool operator==(StoreNamedParameters const&, StoreNamedParameters const&); |
@@ -295,6 +299,32 @@ std::ostream& operator<<(std::ostream&, StoreNamedParameters const&); |
const StoreNamedParameters& StoreNamedParametersOf(const Operator* op); |
+// Defines the property being stored to an object. This is used as a parameter |
+// by JSStoreProperty operators. |
+class StorePropertyParameters final { |
+ public: |
+ StorePropertyParameters(LanguageMode language_mode, |
+ const ResolvedFeedbackSlot& feedback) |
+ : language_mode_(language_mode), feedback_(feedback) {} |
+ |
+ LanguageMode language_mode() const { return language_mode_; } |
+ const ResolvedFeedbackSlot& feedback() const { return feedback_; } |
+ |
+ private: |
+ const LanguageMode language_mode_; |
+ const ResolvedFeedbackSlot feedback_; |
+}; |
+ |
+bool operator==(StorePropertyParameters const&, StorePropertyParameters const&); |
+bool operator!=(StorePropertyParameters const&, StorePropertyParameters const&); |
+ |
+size_t hash_value(StorePropertyParameters const&); |
+ |
+std::ostream& operator<<(std::ostream&, StorePropertyParameters const&); |
+ |
+const StorePropertyParameters& StorePropertyParametersOf(const Operator* op); |
+ |
+ |
// Defines shared information for the closure that should be created. This is |
// used as a parameter by JSCreateClosure operators. |
class CreateClosureParameters final { |
@@ -373,9 +403,11 @@ class JSOperatorBuilder final : public ZoneObject { |
const ResolvedFeedbackSlot& feedback, |
ContextualMode contextual_mode = NOT_CONTEXTUAL); |
- const Operator* StoreProperty(LanguageMode language_mode); |
+ const Operator* StoreProperty(LanguageMode language_mode, |
+ const ResolvedFeedbackSlot& feedback); |
const Operator* StoreNamed(LanguageMode language_mode, |
- const Unique<Name>& name); |
+ const Unique<Name>& name, |
+ const ResolvedFeedbackSlot& feedback); |
const Operator* DeleteProperty(LanguageMode language_mode); |