Index: src/code-stubs.h |
diff --git a/src/code-stubs.h b/src/code-stubs.h |
index 2ae4ba7085e37e1a10b3c0a73acd623034324ac5..09e55a9bffc2661fd49a37351785bf885aa27217 100644 |
--- a/src/code-stubs.h |
+++ b/src/code-stubs.h |
@@ -1009,15 +1009,25 @@ class LoadConstantStub : public HandlerStub { |
}; |
-class StringLengthStub: public HandlerStub { |
+class StringLengthStub : public CodeStub { |
public: |
- explicit StringLengthStub(Isolate* isolate) : HandlerStub(isolate) {} |
+ explicit StringLengthStub(Isolate* isolate) : CodeStub(isolate) {} |
- protected: |
- Code::Kind kind() const OVERRIDE { return Code::LOAD_IC; } |
- Code::StubType GetStubType() const OVERRIDE { return Code::FAST; } |
+ StringLengthStub(uint32_t key, Isolate* isolate) : CodeStub(key, isolate) {} |
+ |
+ CallInterfaceDescriptor GetCallInterfaceDescriptor() OVERRIDE { |
+ return LoadDescriptor(isolate()); |
+ }; |
- DEFINE_HANDLER_CODE_STUB(StringLength, HandlerStub); |
+ Handle<Code> GenerateCode() OVERRIDE; |
+ |
+ Major MajorKey() const OVERRIDE { return StringLength; }; |
+ Code::Kind GetCodeKind() const OVERRIDE { return Code::HANDLER; } |
+ InlineCacheState GetICState() const OVERRIDE { return MONOMORPHIC; } |
+ ExtraICState GetExtraICState() const OVERRIDE { return Code::LOAD_IC; } |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(StringLengthStub); |
}; |