Allow for destructuring of array and object data using a syntax that mirrors the construction of array and object literals. The destructuring can appear in assignment statements but also in various initialization and binding forms. The object and array literal expressions provide convenient means of creating ad-hoc packages of data, returning them from functions, etc. A common idiom for multiple r