| 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.
|
|
|