Using size = [undefined, size] on a Surface, causes the width (undefined) to be set initially but never updates after that

When only one of the two size-arguments is set to true, it would effectively cause undefined from stop working on the other argument. This is because the else-statement is always executed, regardless of whether true is defined on that size-argument.