Index: src/compiler/js-operator.h |
diff --git a/src/compiler/js-operator.h b/src/compiler/js-operator.h |
index 1d658aa6447ad123c0b9a9df22a44895178ba598..afd9a4cbde74a326acb4b42e76b6beb331985215 100644 |
--- a/src/compiler/js-operator.h |
+++ b/src/compiler/js-operator.h |
@@ -100,15 +100,20 @@ ContextAccess const& ContextAccessOf(Operator const*); |
// used as a parameter by JSLoadNamed operators. |
class LoadNamedParameters FINAL { |
public: |
- LoadNamedParameters(const Unique<Name>& name, ContextualMode contextual_mode) |
- : name_(name), contextual_mode_(contextual_mode) {} |
+ LoadNamedParameters(const Unique<Name>& name, |
+ const LoadICFeedbackNode& feedback, |
+ ContextualMode contextual_mode) |
+ : name_(name), contextual_mode_(contextual_mode), feedback_(feedback) {} |
const Unique<Name>& name() const { return name_; } |
ContextualMode contextual_mode() const { return contextual_mode_; } |
+ const LoadICFeedbackNode& feedback() const { return feedback_; } |
+ |
private: |
const Unique<Name> name_; |
const ContextualMode contextual_mode_; |
+ const LoadICFeedbackNode feedback_; |
}; |
bool operator==(LoadNamedParameters const&, LoadNamedParameters const&); |
@@ -121,6 +126,29 @@ std::ostream& operator<<(std::ostream&, LoadNamedParameters const&); |
const LoadNamedParameters& LoadNamedParametersOf(const Operator* op); |
+// Defines the property being loaded from an object. This is |
+// used as a parameter by JSLoadProperty operators. |
+class LoadPropertyParameters FINAL { |
+ public: |
+ explicit LoadPropertyParameters(const KeyedLoadICFeedbackNode& feedback) |
+ : feedback_(feedback) {} |
+ |
+ const KeyedLoadICFeedbackNode& feedback() const { return feedback_; } |
+ |
+ private: |
+ const KeyedLoadICFeedbackNode feedback_; |
+}; |
+ |
+bool operator==(LoadPropertyParameters const&, LoadPropertyParameters const&); |
+bool operator!=(LoadPropertyParameters const&, LoadPropertyParameters const&); |
+ |
+size_t hash_value(LoadPropertyParameters const&); |
+ |
+std::ostream& operator<<(std::ostream&, LoadPropertyParameters const&); |
+ |
+const LoadPropertyParameters& LoadPropertyParametersOf(const Operator* op); |
+ |
+ |
// Defines the property being stored to an object by a named store. This is |
// used as a parameter by JSStoreNamed operators. |
class StoreNamedParameters FINAL { |
@@ -188,8 +216,9 @@ class JSOperatorBuilder FINAL { |
const Operator* CallConstruct(int arguments); |
- const Operator* LoadProperty(); |
+ const Operator* LoadProperty(const KeyedLoadICFeedbackNode& feedback); |
const Operator* LoadNamed(const Unique<Name>& name, |
+ const LoadICFeedbackNode& feedback, |
ContextualMode contextual_mode = NOT_CONTEXTUAL); |
const Operator* StoreProperty(StrictMode strict_mode); |