diff --git a/src/language/node_processor/BuiltinFunctionProcessor.hpp b/src/language/node_processor/BuiltinFunctionProcessor.hpp index 61150be71154be2d08f4a1376df2df13681793d5..755680f5fee0a2da69e02f0fd04a550e7e971846 100644 --- a/src/language/node_processor/BuiltinFunctionProcessor.hpp +++ b/src/language/node_processor/BuiltinFunctionProcessor.hpp @@ -6,6 +6,8 @@ #include <language/node_processor/INodeProcessor.hpp> #include <language/utils/BuiltinFunctionEmbedder.hpp> +#include <utils/SignalManager.hpp> + class BuiltinFunctionExpressionProcessor final : public INodeProcessor { private: @@ -59,11 +61,16 @@ class BuiltinFunctionProcessor : public INodeProcessor m_argument_converters[i]->convert(context_exec_policy, std::move(argument_values[i])); } } - try { + + if (SignalManager::pauseOnError()) { return m_function_expression_processor->execute(context_exec_policy); - } - catch (std::runtime_error& e) { - throw parse_error(e.what(), {m_argument_node.begin()}); + } else { + try { + return m_function_expression_processor->execute(context_exec_policy); + } + catch (std::runtime_error& e) { + throw parse_error(e.what(), {m_argument_node.begin()}); + } } }