Value AExpression::OpSet(const AExpression *expr, const Dictionary::Ptr& locals, DebugHint *dhint)
{
Value index = expr->EvaluateOperand1(locals);
- DebugHint *sdhint = dhint->GetChild(index);
+
+ DebugHint *sdhint = NULL;
+ if (dhint)
+ sdhint = dhint->GetChild(index);
+
Value right = expr->EvaluateOperand2(locals, sdhint);
locals->Set(index, right);
- sdhint->AddMessage("=", expr->m_DebugInfo);
+
+ if (sdhint)
+ sdhint->AddMessage("=", expr->m_DebugInfo);
+
return right;
}
xlocals->Set("__parent", locals);
}
- DebugHint *sdhint = dhint->GetChild(index);
+ DebugHint *sdhint = NULL;
+ if (dhint)
+ sdhint = dhint->GetChild(index);
+
Value result = left + expr->EvaluateOperand2(xlocals, sdhint);
if (exp_right->m_Operator == &AExpression::OpDict) {
}
locals->Set(index, result);
- sdhint->AddMessage("+=", expr->m_DebugInfo);
+
+ if (sdhint)
+ sdhint->AddMessage("+=", expr->m_DebugInfo);
return result;
}
xlocals->Set("__parent", locals);
}
- DebugHint *sdhint = dhint->GetChild(index);
+ DebugHint *sdhint = NULL;
+ if (dhint)
+ sdhint = dhint->GetChild(index);
+
Value result = left - expr->EvaluateOperand2(xlocals, sdhint);
if (exp_right->m_Operator == &AExpression::OpDict) {
}
locals->Set(index, result);
- sdhint->AddMessage("-=", expr->m_DebugInfo);
+
+ if (sdhint)
+ sdhint->AddMessage("-=", expr->m_DebugInfo);
return result;
}
xlocals->Set("__parent", locals);
}
- DebugHint *sdhint = dhint->GetChild(index);
+ DebugHint *sdhint = NULL;
+ if (dhint)
+ sdhint = dhint->GetChild(index);
+
Value result = left * expr->EvaluateOperand2(xlocals, sdhint);
if (exp_right->m_Operator == &AExpression::OpDict) {
}
locals->Set(index, result);
- sdhint->AddMessage("*=", expr->m_DebugInfo);
+
+ if (sdhint)
+ sdhint->AddMessage("*=", expr->m_DebugInfo);
return result;
}
xlocals->Set("__parent", locals);
}
- DebugHint *sdhint = dhint->GetChild(index);
+ DebugHint *sdhint = NULL;
+ if (dhint)
+ sdhint = dhint->GetChild(index);
+
Value result = left / expr->EvaluateOperand2(xlocals, sdhint);
if (exp_right->m_Operator == &AExpression::OpDict) {
}
locals->Set(index, result);
- sdhint->AddMessage("/=", expr->m_DebugInfo);
+
+ if (sdhint)
+ sdhint->AddMessage("/=", expr->m_DebugInfo);
return result;
}