Index: src/code-stubs.h |
diff --git a/src/code-stubs.h b/src/code-stubs.h |
index c99302a44052997e1027eaedac0d48e483c037d5..57a7c0b7c26dca0bce9c787fd10a9474a7eb04e5 100644 |
--- a/src/code-stubs.h |
+++ b/src/code-stubs.h |
@@ -1191,7 +1191,9 @@ class BinaryOpICWithAllocationSiteStub V8_FINAL : public PlatformCodeStub { |
public: |
BinaryOpICWithAllocationSiteStub(Isolate* isolate, |
const BinaryOpIC::State& state) |
- : PlatformCodeStub(isolate), state_(state) {} |
+ : PlatformCodeStub(isolate) { |
+ minor_key_ = state.GetExtraICState(); |
+ } |
static void GenerateAheadOfTime(Isolate* isolate); |
@@ -1206,11 +1208,11 @@ class BinaryOpICWithAllocationSiteStub V8_FINAL : public PlatformCodeStub { |
} |
virtual InlineCacheState GetICState() const V8_OVERRIDE { |
- return state_.GetICState(); |
+ return state().GetICState(); |
} |
virtual ExtraICState GetExtraICState() const V8_OVERRIDE { |
- return state_.GetExtraICState(); |
+ return static_cast<ExtraICState>(minor_key_); |
} |
virtual void Generate(MacroAssembler* masm) V8_OVERRIDE; |
@@ -1220,14 +1222,15 @@ class BinaryOpICWithAllocationSiteStub V8_FINAL : public PlatformCodeStub { |
virtual Major MajorKey() const V8_OVERRIDE { |
return BinaryOpICWithAllocationSite; |
} |
- virtual uint32_t MinorKey() const V8_OVERRIDE { return GetExtraICState(); } |
private: |
+ BinaryOpIC::State state() const { |
+ return BinaryOpIC::State(isolate(), static_cast<ExtraICState>(minor_key_)); |
+ } |
+ |
static void GenerateAheadOfTime(Isolate* isolate, |
const BinaryOpIC::State& state); |
- BinaryOpIC::State state_; |
- |
DISALLOW_COPY_AND_ASSIGN(BinaryOpICWithAllocationSiteStub); |
}; |