You are right. I see that some of that features were added much later on.
For non null references, I used to work with C++ and I really liked some of its reference/pointer/smart-pointer semantics even that everything can be used also really badly.
I have done some basic training in Rust, and I am happy to see that it seems quite close at the way I was using C++.
But, I see C# in the future replacing part of what Javascript does nowadays once WebAssembly takes off. I would like to learn more about that.