Index: src/ic/handler-compiler.h |
diff --git a/src/ic/handler-compiler.h b/src/ic/handler-compiler.h |
index bd3f788e38cb6918cdacef5887af06e7f68e8fa3..077db923076e76a7095cdf16744469354ccece3b 100644 |
--- a/src/ic/handler-compiler.h |
+++ b/src/ic/handler-compiler.h |
@@ -14,6 +14,7 @@ namespace internal { |
class CallOptimization; |
enum PrototypeCheckType { CHECK_ALL_MAPS, SKIP_RECEIVER }; |
+enum ReturnHolder { RETURN_HOLDER, DONT_RETURN_ANYTHING }; |
class PropertyHandlerCompiler : public PropertyAccessCompiler { |
public: |
@@ -30,7 +31,7 @@ class PropertyHandlerCompiler : public PropertyAccessCompiler { |
virtual ~PropertyHandlerCompiler() {} |
virtual Register FrontendHeader(Register object_reg, Handle<Name> name, |
- Label* miss) { |
+ Label* miss, ReturnHolder return_what) { |
UNREACHABLE(); |
return receiver(); |
} |
@@ -95,7 +96,7 @@ class PropertyHandlerCompiler : public PropertyAccessCompiler { |
Register CheckPrototypes(Register object_reg, Register holder_reg, |
Register scratch1, Register scratch2, |
Handle<Name> name, Label* miss, |
- PrototypeCheckType check = CHECK_ALL_MAPS); |
+ PrototypeCheckType check, ReturnHolder return_what); |
Handle<Code> GetCode(Code::Kind kind, Code::StubType type, Handle<Name> name); |
void set_holder(Handle<JSObject> holder) { holder_ = holder; } |
@@ -172,7 +173,7 @@ class NamedLoadHandlerCompiler : public PropertyHandlerCompiler { |
protected: |
virtual Register FrontendHeader(Register object_reg, Handle<Name> name, |
- Label* miss); |
+ Label* miss, ReturnHolder return_what); |
virtual void FrontendFooter(Handle<Name> name, Label* miss); |
@@ -246,7 +247,7 @@ class NamedStoreHandlerCompiler : public PropertyHandlerCompiler { |
protected: |
virtual Register FrontendHeader(Register object_reg, Handle<Name> name, |
- Label* miss); |
+ Label* miss, ReturnHolder return_what); |
virtual void FrontendFooter(Handle<Name> name, Label* miss); |
void GenerateRestoreName(Label* label, Handle<Name> name); |