| Index: src/hydrogen.cc
|
| ===================================================================
|
| --- src/hydrogen.cc (revision 7492)
|
| +++ src/hydrogen.cc (working copy)
|
| @@ -3919,11 +3919,16 @@
|
| return false;
|
| }
|
|
|
| - // Don't inline deeper than two calls.
|
| + // Don't inline deeper than kMaxInliningLevels calls.
|
| HEnvironment* env = environment();
|
| - if (env->outer() != NULL && env->outer()->outer() != NULL) {
|
| - TraceInline(target, "inline depth limit reached");
|
| - return false;
|
| + int current_level = 1;
|
| + while (env->outer() != NULL) {
|
| + if (current_level == Compiler::kMaxInliningLevels) {
|
| + TraceInline(target, "inline depth limit reached");
|
| + return false;
|
| + }
|
| + current_level++;
|
| + env = env->outer();
|
| }
|
|
|
| // Don't inline recursive functions.
|
|
|