diff --git a/src/flag-definitions.h b/src/flag-definitions.h index 0caca9ffee..0d4f395a7a 100644 --- a/src/flag-definitions.h +++ b/src/flag-definitions.h @@ -471,9 +471,7 @@ DEFINE_BOOL(enable_liveedit, true, "enable liveedit experimental feature") DEFINE_BOOL(hard_abort, true, "abort by crashing") // execution.cc -// Slightly less than 1MB, since Windows' default stack size for -// the main execution thread is 1MB for both 32 and 64-bit. -DEFINE_INT(stack_size, 984, +DEFINE_INT(stack_size, V8_DEFAULT_STACK_SIZE_KB, "default size of stack region v8 is allowed to use (in kBytes)") // frames.cc diff --git a/src/globals.h b/src/globals.h index 3eb95c644c..38deb3e88e 100644 --- a/src/globals.h +++ b/src/globals.h @@ -68,6 +68,18 @@ namespace internal { // Determine whether the architecture uses an out-of-line constant pool. #define V8_OOL_CONSTANT_POOL 0 +#ifdef V8_TARGET_ARCH_ARM +// Set stack limit lower for ARM than for other architectures because +// stack allocating MacroAssembler takes 120K bytes. +// See issue crbug.com/405338 +#define V8_DEFAULT_STACK_SIZE_KB 864 +#else +// Slightly less than 1MB, since Windows' default stack size for +// the main execution thread is 1MB for both 32 and 64-bit. +#define V8_DEFAULT_STACK_SIZE_KB 984 +#endif + + // Support for alternative bool type. This is only enabled if the code is // compiled with USE_MYBOOL defined. This catches some nasty type bugs. // For instance, 'bool b = "false";' results in b == true! This is a hidden