Reviewers: Michael Starzinger,
Description:
Adjust stack limit again to avoid overflow on 64 bit windows
Also add additional stack check.
[email protected]
Please review this at https://chromiumcodereview.appspot.com/10006010/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files:
M src/bootstrapper.cc
M src/flag-definitions.h
M test/mjsunit/regress/regress-119429.js
Index: src/bootstrapper.cc
diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc
index
298652e0f9f92e159a62496db493869f161c4e2b..0e95b4b83974334a6419cabc95e600877def9a2b
100644
--- a/src/bootstrapper.cc
+++ b/src/bootstrapper.cc
@@ -2295,6 +2295,12 @@ Genesis::Genesis(Isolate* isolate,
HandleScope scope;
SaveContext saved_context(isolate);
+ // During genesis, the boilerplate for stack overflow won't work until
the
+ // environment has been at least partially initialized. Add a stack check
+ // before entering JS code to catch overflow early.
+ StackLimitCheck check(Isolate::Current());
+ if (check.HasOverflowed()) return;
+
Handle<Context> new_context = Snapshot::NewContextFromSnapshot();
if (!new_context.is_null()) {
global_context_ =
Index: src/flag-definitions.h
diff --git a/src/flag-definitions.h b/src/flag-definitions.h
index
0668addb4885849810e2dd273add694ca68de284..75697a89068917730f3883ce174c490c2f57abf8
100644
--- a/src/flag-definitions.h
+++ b/src/flag-definitions.h
@@ -310,7 +310,9 @@ DEFINE_bool(enable_liveedit, true, "enable liveedit
experimental feature")
DEFINE_bool(break_on_abort, true, "always cause a debug break before
aborting")
// execution.cc
-DEFINE_int(stack_size, kPointerSize * 128,
+// Slightly less than 1MB on 64-bit, since Windows' default stack size for
+// the main execution thread is 1MB for both 32 and 64-bit.
+DEFINE_int(stack_size, kPointerSize * 123,
"default size of stack region v8 is allowed to use (in kBytes)")
// frames.cc
Index: test/mjsunit/regress/regress-119429.js
diff --git a/test/mjsunit/regress/regress-119429.js
b/test/mjsunit/regress/regress-119429.js
index
b3a960dfad1eb54079340ded69729b3a00981998..a87648754a43e8d74b98b642495ba4e40f1551e9
100644
--- a/test/mjsunit/regress/regress-119429.js
+++ b/test/mjsunit/regress/regress-119429.js
@@ -29,7 +29,7 @@
var d = 0;
function recurse() {
- if (++d == 26130) { // A magic number just below stack overflow on ia32
+ if (++d == 25135) { // A magic number just below stack overflow on ia32
%DebugBreak();
}
recurse();
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev