Reviewers: Benedikt Meurer,
Message:
Still cleaning up the repro to make a regression test.
Description:
[turbofan] Handle stack overflow exceptions in JSInliner.
[email protected]
BUG=chromium:527364
LOG=n
Please review this at https://codereview.chromium.org/1322203005/
Base URL: https://chromium.googlesource.com/v8/v8.git@master
Affected files (+17, -2 lines):
M src/compiler/js-inlining.cc
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.
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.