Index: src/full-codegen.h |
diff --git a/src/full-codegen.h b/src/full-codegen.h |
index 11d5341ecab48ee877a05f3ceb7b5d56a80cc287..de1ae5e1cd21445aa3af80b2304a6ba9f74fb170 100644 |
--- a/src/full-codegen.h |
+++ b/src/full-codegen.h |
@@ -483,7 +483,7 @@ class FullCodeGenerator: public AstVisitor { |
// Platform-specific code sequences for calls |
void EmitCallWithStub(Call* expr, CallFunctionFlags flags); |
- void EmitCallWithIC(Call* expr, Handle<Object> name, RelocInfo::Mode mode); |
+ void EmitCallWithIC(Call* expr, Handle<Object> name, ContextualMode mode); |
void EmitKeyedCallWithIC(Call* expr, Expression* key); |
// Platform-specific code for inline runtime calls. |
@@ -565,9 +565,14 @@ class FullCodeGenerator: public AstVisitor { |
void EmitKeyedPropertyAssignment(Assignment* expr); |
void CallIC(Handle<Code> code, |
- RelocInfo::Mode rmode = RelocInfo::CODE_TARGET, |
+ ContextualMode mode = NOT_CONTEXTUAL, |
TypeFeedbackId id = TypeFeedbackId::None()); |
+ void CallLoadIC(ContextualMode mode, |
+ TypeFeedbackId id = TypeFeedbackId::None()); |
+ void CallStoreIC(ContextualMode mode, |
+ TypeFeedbackId id = TypeFeedbackId::None()); |
+ |
void SetFunctionPosition(FunctionLiteral* fun); |
void SetReturnPosition(FunctionLiteral* fun); |
void SetStatementPosition(Statement* stmt); |
@@ -597,6 +602,9 @@ class FullCodeGenerator: public AstVisitor { |
bool is_eval() { return info_->is_eval(); } |
bool is_native() { return info_->is_native(); } |
bool is_classic_mode() { return language_mode() == CLASSIC_MODE; } |
+ StrictModeFlag strict_mode() { |
+ return is_classic_mode() ? kNonStrictMode : kStrictMode; |
+ } |
LanguageMode language_mode() { return function()->language_mode(); } |
FunctionLiteral* function() { return info_->function(); } |
Scope* scope() { return scope_; } |