Index: src/compiler.h |
diff --git a/src/compiler.h b/src/compiler.h |
index 44ac9c85ce385083f4ce6905c832529eef9c2fb6..2d94f6c82150532be14ed3dcf03651da9878c51c 100644 |
--- a/src/compiler.h |
+++ b/src/compiler.h |
@@ -49,6 +49,7 @@ class CompilationInfo BASE_EMBEDDED { |
bool is_lazy() const { return (flags_ & IsLazy::mask()) != 0; } |
bool is_eval() const { return (flags_ & IsEval::mask()) != 0; } |
bool is_global() const { return (flags_ & IsGlobal::mask()) != 0; } |
+ bool is_strict() const { return (flags_ & IsStrict::mask()) != 0; } |
bool is_in_loop() const { return (flags_ & IsInLoop::mask()) != 0; } |
FunctionLiteral* function() const { return function_; } |
Scope* scope() const { return scope_; } |
@@ -69,6 +70,10 @@ class CompilationInfo BASE_EMBEDDED { |
ASSERT(!is_lazy()); |
flags_ |= IsGlobal::encode(true); |
} |
+ void MarkAsStrict() { |
+ ASSERT(!is_lazy()); |
+ flags_ |= IsStrict::encode(true); |
+ } |
void MarkAsInLoop() { |
ASSERT(is_lazy()); |
flags_ |= IsInLoop::encode(true); |
@@ -162,6 +167,8 @@ class CompilationInfo BASE_EMBEDDED { |
class IsGlobal: public BitField<bool, 2, 1> {}; |
// Flags that can be set for lazy compilation. |
class IsInLoop: public BitField<bool, 3, 1> {}; |
+ // Strict mode - used in eager compilation. |
+ class IsStrict: public BitField<bool, 4, 1> {}; |
unsigned flags_; |
@@ -230,7 +237,8 @@ class Compiler : public AllStatic { |
// Compile a String source within a context for Eval. |
static Handle<SharedFunctionInfo> CompileEval(Handle<String> source, |
Handle<Context> context, |
- bool is_global); |
+ bool is_global, |
+ StrictModeFlag strict_mode); |
// Compile from function info (used for lazy compilation). Returns true on |
// success and false if the compilation resulted in a stack overflow. |