| Index: src/code-stubs.h
|
| diff --git a/src/code-stubs.h b/src/code-stubs.h
|
| index e9b4573b54f7a5f5a145eb7836836879626628e3..95759e68734f5c4289e96da609ea1d87b9d9d720 100644
|
| --- a/src/code-stubs.h
|
| +++ b/src/code-stubs.h
|
| @@ -1865,7 +1865,9 @@ class LoadDictionaryElementPlatformStub : public PlatformCodeStub {
|
|
|
| class KeyedLoadGenericStub : public HydrogenCodeStub {
|
| public:
|
| - explicit KeyedLoadGenericStub(Isolate* isolate) : HydrogenCodeStub(isolate) {}
|
| + explicit KeyedLoadGenericStub(Isolate* isolate, LoadIC::PropertyLookupMode lookup_mode)
|
| + : HydrogenCodeStub(isolate),
|
| + lookup_mode_(lookup_mode) {}
|
|
|
| virtual Handle<Code> GenerateCode() V8_OVERRIDE;
|
|
|
| @@ -1876,10 +1878,17 @@ class KeyedLoadGenericStub : public HydrogenCodeStub {
|
|
|
| virtual Code::Kind GetCodeKind() const { return Code::KEYED_LOAD_IC; }
|
| virtual InlineCacheState GetICState() const { return GENERIC; }
|
| + virtual ExtraICState GetExtraICState() const {
|
| + return LoadIC::ComputeExtraICState(NOT_CONTEXTUAL, lookup_mode_);
|
| + }
|
|
|
| private:
|
| Major MajorKey() const { return KeyedLoadGeneric; }
|
| - int NotMissMinorKey() const { return 0; }
|
| + int NotMissMinorKey() const {
|
| + return lookup_mode_ == LoadIC::NORMAL_LOOKUP ? 0 : 1;
|
| + }
|
| +
|
| + LoadIC::PropertyLookupMode lookup_mode_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(KeyedLoadGenericStub);
|
| };
|
|
|