Index: src/code-stubs.h |
diff --git a/src/code-stubs.h b/src/code-stubs.h |
index 973818470d9778dfc42a5efe61063d13e26a4329..f50abda45ff23227cc6d03723b62dde3d5748cfc 100644 |
--- a/src/code-stubs.h |
+++ b/src/code-stubs.h |
@@ -899,14 +899,26 @@ class CallIC_ArrayStub: public CallICStub { |
}; |
-class FunctionPrototypeStub: public ICStub { |
+// TODO(verwaest): Translate to hydrogen code stub. |
+class FunctionPrototypeStub : public PlatformCodeStub { |
public: |
FunctionPrototypeStub(Isolate* isolate, Code::Kind kind) |
- : ICStub(isolate, kind) { } |
+ : PlatformCodeStub(isolate) { |
+ bit_field_ = KindBits::encode(kind); |
+ } |
virtual void Generate(MacroAssembler* masm); |
+ virtual Code::Kind GetCodeKind() const { return Code::HANDLER; } |
+ virtual InlineCacheState GetICState() { return MONOMORPHIC; } |
+ virtual ExtraICState GetExtraICState() const { return kind(); } |
+ |
+ protected: |
+ class KindBits : public BitField<Code::Kind, 0, 4> {}; |
+ virtual Code::Kind kind() const { return KindBits::decode(bit_field_); } |
private: |
virtual CodeStub::Major MajorKey() const { return FunctionPrototype; } |
+ virtual int MinorKey() const { return bit_field_; } |
+ int bit_field_; |
}; |