+ class IncreaseEmitNodeDepth {
+ public:
+ IncreaseEmitNodeDepth(BytecodeGenerator& generator, unsigned count = 1)
+ : m_generator(generator)
+ , m_count(count)
+ {
+ m_generator.m_emitNodeDepth += count;
+ }
+
+ ~IncreaseEmitNodeDepth()
+ {
+ m_generator.m_emitNodeDepth -= m_count;
+ }
+
+ private:
+ BytecodeGenerator& m_generator;
+ unsigned m_count;
+ };