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

When only 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.