| 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);
|
|
|