Value result = left + expr->EvaluateOperand2(xlocals);
- xlocals->Remove("__parent");
+ if (exp_right->m_Operator == &AExpression::OpDict) {
+ Dictionary::Ptr dict = result;
+ dict->Remove("__parent");
+ }
locals->Set(expr->m_Operand1, result);
return result;
Value result = left - expr->EvaluateOperand2(xlocals);
- xlocals->Remove("__parent");
+ if (exp_right->m_Operator == &AExpression::OpDict) {
+ Dictionary::Ptr dict = result;
+ dict->Remove("__parent");
+ }
locals->Set(expr->m_Operand1, result);
return result;
Value result = left * expr->EvaluateOperand2(xlocals);
- xlocals->Remove("__parent");
+ if (exp_right->m_Operator == &AExpression::OpDict) {
+ Dictionary::Ptr dict = result;
+ dict->Remove("__parent");
+ }
locals->Set(expr->m_Operand1, result);
return result;
Value result = left / expr->EvaluateOperand2(xlocals);
- xlocals->Remove("__parent");
+ if (exp_right->m_Operator == &AExpression::OpDict) {
+ Dictionary::Ptr dict = result;
+ dict->Remove("__parent");
+ }
locals->Set(expr->m_Operand1, result);
return result;
m_Properties->Set("__parent", m_Scope);
GetLinkedExpressionList()->Evaluate(m_Properties);
m_Properties->Remove("__parent");
+
+ VERIFY(m_Properties->Get("__type") == GetType() && m_Properties->Get("__name") == GetName());
}
return m_Properties;