It's the default, but it's evaluated in a different environment depending on whether or not you supply it:

```R
x <- 1
f1 <- function(expr) {
  x <- 2
  eval(substitute(expr))
}
f2 <- function(expr) {
  x <- 2
  eval(substitute(expr), parent.frame())
}
f1(x)
f2(x)
```