Bug 51358 - Should check stack depth rather than using recursion limits in byte compilation
Reviewed by Olver Hunt.
The current implementation of recursion limit checking is not safe on smaller stacks.
Switch to using a common mechanism, shared with the parser, to check recursion limits.
Make bytecompiler use StackBounds. Empirical testing shows emitStrcat to have the largest
footprint on the stack, at just under 1k on x86-64. Given this, the default recursion
check (requiring 4k of available space to recurse) seems reasonable.
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
* bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::emitNode):
(JSC::BytecodeGenerator::emitNodeInConditionContext):
* bytecompiler/NodesCodegen.cpp:
(JSC::BinaryOpNode::emitStrcat):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@74374
268f45cc-cd09-0410-ab3c-
d52691b4dbfc