hasArray() actually used to be false initially but then caused a lot of code to fail because of asserts that check hasArray() at the end of some action/block. Making it conditional would make that code fail (when assertions are enabled) depending on whatever happened.