| Index: src/compiler.h
|
| diff --git a/src/compiler.h b/src/compiler.h
|
| index 69ab27d9c8196cd562a8103444e41433cc533ef7..6d77a988b2c8496caa3311fae5d6589936e85158 100644
|
| --- a/src/compiler.h
|
| +++ b/src/compiler.h
|
| @@ -114,6 +114,19 @@ class CompilationInfo BASE_EMBEDDED {
|
| ASSERT(IsOptimizing());
|
| osr_ast_id_ = osr_ast_id;
|
| }
|
| + void MarkCompilingForDebugging(Handle<Code> current_code) {
|
| + ASSERT(mode_ != OPTIMIZE);
|
| + ASSERT(current_code->kind() == Code::FUNCTION);
|
| + flags_ |= IsCompilingForDebugging::encode(true);
|
| + if (current_code->is_compiled_optimizable()) {
|
| + EnableDeoptimizationSupport();
|
| + } else {
|
| + mode_ = CompilationInfo::NONOPT;
|
| + }
|
| + }
|
| + bool IsCompilingForDebugging() {
|
| + return IsCompilingForDebugging::decode(flags_);
|
| + }
|
|
|
| bool has_global_object() const {
|
| return !closure().is_null() && (closure()->context()->global() != NULL);
|
| @@ -133,10 +146,12 @@ class CompilationInfo BASE_EMBEDDED {
|
| void DisableOptimization();
|
|
|
| // Deoptimization support.
|
| - bool HasDeoptimizationSupport() const { return supports_deoptimization_; }
|
| + bool HasDeoptimizationSupport() const {
|
| + return SupportsDeoptimization::decode(flags_);
|
| + }
|
| void EnableDeoptimizationSupport() {
|
| ASSERT(IsOptimizable());
|
| - supports_deoptimization_ = true;
|
| + flags_ |= SupportsDeoptimization::encode(true);
|
| }
|
|
|
| // Determine whether or not we can adaptively optimize.
|
| @@ -195,6 +210,11 @@ class CompilationInfo BASE_EMBEDDED {
|
| class IsStrictMode: public BitField<bool, 4, 1> {};
|
| // Is this a function from our natives.
|
| class IsNative: public BitField<bool, 6, 1> {};
|
| + // Is this code being compiled with support for deoptimization..
|
| + class SupportsDeoptimization: public BitField<bool, 7, 1> {};
|
| + // If compiling for debugging produce just full code matching the
|
| + // initial mode setting.
|
| + class IsCompilingForDebugging: public BitField<bool, 8, 1> {};
|
|
|
|
|
| unsigned flags_;
|
| @@ -223,7 +243,6 @@ class CompilationInfo BASE_EMBEDDED {
|
|
|
| // Compilation mode flag and whether deoptimization is allowed.
|
| Mode mode_;
|
| - bool supports_deoptimization_;
|
| int osr_ast_id_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(CompilationInfo);
|
|
|