| Index: src/ic/ic-state.h
|
| diff --git a/src/ic/ic-state.h b/src/ic/ic-state.h
|
| index d3fdbe0dfbee75dd9d55286fdc297897bb424c3c..6863c6e7b91281192d247d1c3d3e4eebdfbd3420 100644
|
| --- a/src/ic/ic-state.h
|
| +++ b/src/ic/ic-state.h
|
| @@ -57,9 +57,9 @@ std::ostream& operator<<(std::ostream& os, const CallICState& s);
|
| class BinaryOpICState final BASE_EMBEDDED {
|
| public:
|
| BinaryOpICState(Isolate* isolate, ExtraICState extra_ic_state);
|
| -
|
| - BinaryOpICState(Isolate* isolate, Token::Value op)
|
| + BinaryOpICState(Isolate* isolate, Token::Value op, LanguageMode language_mode)
|
| : op_(op),
|
| + language_mode_(language_mode),
|
| left_kind_(NONE),
|
| right_kind_(NONE),
|
| result_kind_(NONE),
|
| @@ -106,6 +106,10 @@ class BinaryOpICState final BASE_EMBEDDED {
|
| return Max(left_kind_, right_kind_) == GENERIC;
|
| }
|
|
|
| + LanguageMode language_mode() const {
|
| + return language_mode_;
|
| + }
|
| +
|
| // Returns true if the IC should enable the inline smi code (i.e. if either
|
| // parameter may be a smi).
|
| bool UseInlinedSmiCode() const {
|
| @@ -147,10 +151,12 @@ class BinaryOpICState final BASE_EMBEDDED {
|
| // When fixed right arg is set, we don't need to store the right kind.
|
| // Thus the two fields can overlap.
|
| class HasFixedRightArgField : public BitField<bool, 10, 1> {};
|
| - class FixedRightArgValueField : public BitField<int, 11, 4> {};
|
| - class RightKindField : public BitField<Kind, 11, 3> {};
|
| + class LanguageModeField : public BitField<LanguageMode, 11, 2> {};
|
| + class FixedRightArgValueField : public BitField<int, 13, 4> {};
|
| + class RightKindField : public BitField<Kind, 13, 3> {};
|
|
|
| Token::Value op_;
|
| + LanguageMode language_mode_;
|
| Kind left_kind_;
|
| Kind right_kind_;
|
| Kind result_kind_;
|
|
|