This fix aims to fix crash/assert failure related on wrong evaluation order which happens when there is a cyclic dependency involved. The rationality of this change is that we can allow use of uninitialized scalar value, but memory is better be allocated. This might not be ideal still, but worth a try.