コード例 #1
0
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;
}
コード例 #2
0
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);
}