| Index: src/compiler/js-inlining.cc
|
| diff --git a/src/compiler/js-inlining.cc b/src/compiler/js-inlining.cc
|
| index 03e6384080ccba3dbb4b5b87a2065c78b4b0f036..d676c9e5e5ddc30367e9da4ddac98137204ca1a4 100644
|
| --- a/src/compiler/js-inlining.cc
|
| +++ b/src/compiler/js-inlining.cc
|
| @@ -15,6 +15,7 @@
|
| #include "src/compiler/node-properties.h"
|
| #include "src/compiler/operator-properties.h"
|
| #include "src/full-codegen/full-codegen.h"
|
| +#include "src/isolate-inl.h"
|
| #include "src/parser.h"
|
| #include "src/rewriter.h"
|
| #include "src/scopes.h"
|
| @@ -296,8 +297,22 @@ Reduction JSInliner::Reduce(Node* node) {
|
| CompilationInfo info(&parse_info);
|
| if (info_->is_deoptimization_enabled()) info.MarkAsDeoptimizationEnabled();
|
|
|
| - if (!Compiler::ParseAndAnalyze(info.parse_info())) return NoChange();
|
| - if (!Compiler::EnsureDeoptimizationSupport(&info)) return NoChange();
|
| + if (!Compiler::ParseAndAnalyze(info.parse_info())) {
|
| + TRACE("Not inlining %s into %s because parsing failed\n",
|
| + function->shared()->DebugName()->ToCString().get(),
|
| + info_->shared_info()->DebugName()->ToCString().get());
|
| + if (info_->isolate()->has_pending_exception()) {
|
| + info_->isolate()->clear_pending_exception();
|
| + }
|
| + return NoChange();
|
| + }
|
| +
|
| + if (!Compiler::EnsureDeoptimizationSupport(&info)) {
|
| + TRACE("Not inlining %s into %s because deoptimization support failed\n",
|
| + function->shared()->DebugName()->ToCString().get(),
|
| + info_->shared_info()->DebugName()->ToCString().get());
|
| + return NoChange();
|
| + }
|
|
|
| if (info.scope()->arguments() != NULL && is_sloppy(info.language_mode())) {
|
| // For now do not inline functions that use their arguments array.
|
|
|