: DebuggableExpression(debugInfo), m_Args(args), m_Name(name), m_ClosedVars(closedVars), m_Expression(expression)
{ }
+ ~FunctionExpression(void)
+ {
+ if (m_ClosedVars) {
+ typedef std::pair<String, Expression *> kv_pair;
+ BOOST_FOREACH(const kv_pair& kv, *m_ClosedVars) {
+ delete kv.second;
+ }
+ }
+
+ delete m_ClosedVars;
+ }
+
protected:
virtual ExpressionResult DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const override;
~ApplyExpression(void)
{
delete m_Name;
+
+ if (m_ClosedVars) {
+ typedef std::pair<String, Expression *> kv_pair;
+ BOOST_FOREACH(const kv_pair& kv, *m_ClosedVars) {
+ delete kv.second;
+ }
+ }
+
+ delete m_ClosedVars;
}
protected:
~ObjectExpression(void)
{
delete m_Name;
+
+ if (m_ClosedVars) {
+ typedef std::pair<String, Expression *> kv_pair;
+ BOOST_FOREACH(const kv_pair& kv, *m_ClosedVars) {
+ delete kv.second;
+ }
+ }
+
+ delete m_ClosedVars;
}
protected: