Variant VariableExpression::set(VariableEnvironment &env, CVarRef val) const { Variant &lhs = lval(env); if (RuntimeOption::EnableStrict) { if (!checkCompatibleAssignment(lhs, val)) { throw_strict(TypeVariableChangeException(location_to_string(loc())), StrictMode::StrictHardCore); } } return lhs = val; }
Variant VariableExpression::setOp(VariableEnvironment &env, int op, CVarRef rhs) const { Variant &lhs = lval(env); if (RuntimeOption::EnableStrict) { if (!checkCompatibleAssignment(lhs, rhs)) { throw_strict(TypeVariableChangeException(this->loc()->toString()), StrictMode::StrictHardCore); } } return LvalExpression::setOpVariant(lhs, op, rhs); }