Per the Standard ECMA-262 3rd edition (published in 1999), the first definition for
Array.prototype.push ( [ item1 [ , item2 [ , … ] ] ] )
The arguments are appended to the end of the array, in the order in which they appear. The new length of the array is returned as the result of the call.
That is, the original definition of this method returns the length of the new array after its call, as opposed to a reference to the newly appended item(s), or the mutated array itself.
I came across a StackOverflow post asking about the history of the decision to return the array length, but didn't find a compelling answer.
I'm not sure if this is the correct place to ask about this but figured it was worth a shot.
Can anyone provide any insight into the history of this decision, and/or why that choice was made over some of the alternatives?