When compiling code like this: x = { foo: x } We don't want to put a new JS::Object in `x` until *after* we've evaluated `x` for the `foo` field. This fixes an issue when loading https://puter.com/ :^)