23 lines
938 B
YAML
23 lines
938 B
YAML
|
define: DUK_USE_NATIVE_STACK_CHECK
|
||
|
introduced: 2.4.0
|
||
|
default: false
|
||
|
tags:
|
||
|
- portability
|
||
|
- execution
|
||
|
description: >
|
||
|
Provide a macro hook to check for available native stack space for the
|
||
|
currently executing native thread. The macro must evaluate to zero if
|
||
|
there is enough stack space available and non-zero otherwise; a RangeError
|
||
|
will then be thrown.
|
||
|
|
||
|
The definition of "enough space" depends on the target platform and the
|
||
|
compiler because the size of native stack frames cannot be easily known
|
||
|
in advance. As a relatively safe estimate, one can check for 8kB of
|
||
|
available stack.
|
||
|
|
||
|
Duktape doesn't call this macro for every internal native call. The macro
|
||
|
is called in code paths that are involved in potentially unlimited
|
||
|
recursion (such as making Ecmascript/native function calls, invoking
|
||
|
getters and Proxy traps, and resolving Proxy chains) and code paths
|
||
|
requiring a lot of stack space temporarily.
|