boa_engine/vm/
runtime_limits.rs1#[derive(Debug, Clone, Copy)]
3pub struct RuntimeLimits {
4 stack_size: usize,
6
7 loop_iteration: u64,
9
10 backtrace_limit: usize,
12
13 resursion: usize,
15}
16
17impl Default for RuntimeLimits {
18 #[inline]
19 fn default() -> Self {
20 Self {
21 loop_iteration: u64::MAX,
22 resursion: 512,
23 backtrace_limit: 50,
24 stack_size: 1024 * 10,
25 }
26 }
27}
28
29impl RuntimeLimits {
30 #[inline]
36 #[must_use]
37 pub const fn loop_iteration_limit(&self) -> u64 {
38 self.loop_iteration
39 }
40
41 #[inline]
47 pub fn set_loop_iteration_limit(&mut self, value: u64) {
48 self.loop_iteration = value;
49 }
50
51 #[inline]
53 pub fn disable_loop_iteration_limit(&mut self) {
54 self.loop_iteration = u64::MAX;
55 }
56
57 #[inline]
61 #[must_use]
62 pub const fn backtrace_limit(&self) -> usize {
63 self.backtrace_limit
64 }
65
66 #[inline]
68 pub fn set_backtrace_limit(&mut self, value: usize) {
69 self.backtrace_limit = value;
70 }
71
72 #[inline]
74 #[must_use]
75 pub const fn stack_size_limit(&self) -> usize {
76 self.stack_size
77 }
78
79 #[inline]
81 pub fn set_stack_size_limit(&mut self, value: usize) {
82 self.stack_size = value;
83 }
84
85 #[inline]
87 #[must_use]
88 pub const fn recursion_limit(&self) -> usize {
89 self.resursion
90 }
91
92 #[inline]
94 pub fn set_recursion_limit(&mut self, value: usize) {
95 self.resursion = value;
96 }
97}