| Index: src/compiler.h
|
| diff --git a/src/compiler.h b/src/compiler.h
|
| index 44ac9c85ce385083f4ce6905c832529eef9c2fb6..d421c9b584f57280e6873127d453bda934e66b09 100644
|
| --- a/src/compiler.h
|
| +++ b/src/compiler.h
|
| @@ -50,6 +50,8 @@ class CompilationInfo BASE_EMBEDDED {
|
| bool is_eval() const { return (flags_ & IsEval::mask()) != 0; }
|
| bool is_global() const { return (flags_ & IsGlobal::mask()) != 0; }
|
| bool is_in_loop() const { return (flags_ & IsInLoop::mask()) != 0; }
|
| + bool is_strict() const { return (flags_ & IsStrict::mask()) != 0; }
|
| +
|
| FunctionLiteral* function() const { return function_; }
|
| Scope* scope() const { return scope_; }
|
| Handle<Code> code() const { return code_; }
|
| @@ -73,6 +75,10 @@ class CompilationInfo BASE_EMBEDDED {
|
| ASSERT(is_lazy());
|
| flags_ |= IsInLoop::encode(true);
|
| }
|
| + void MarkAsStrict() {
|
| + ASSERT(!is_lazy());
|
| + flags_ |= IsStrict::encode(true);
|
| + }
|
| void SetFunction(FunctionLiteral* literal) {
|
| ASSERT(function_ == NULL);
|
| function_ = literal;
|
| @@ -160,6 +166,7 @@ class CompilationInfo BASE_EMBEDDED {
|
| // Flags that can be set for eager compilation.
|
| class IsEval: public BitField<bool, 1, 1> {};
|
| class IsGlobal: public BitField<bool, 2, 1> {};
|
| + class IsStrict: public BitField<bool, 4, 1> {};
|
| // Flags that can be set for lazy compilation.
|
| class IsInLoop: public BitField<bool, 3, 1> {};
|
|
|
| @@ -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,
|
| + bool is_strict);
|
|
|
| // Compile from function info (used for lazy compilation). Returns true on
|
| // success and false if the compilation resulted in a stack overflow.
|
|
|