Bug 1531202 - Part 2: Reimport test262. r=jwalden
authorAndré Bargull <andre.bargull@gmail.com>
Thu, 07 Mar 2019 14:42:25 +0000
changeset 462902 84f0b9acc4e9d12ceecd12e75481fd468b7c184a
parent 462901 c450f92d5e6219e962e8c5219a0d7c5348b813cb
child 462903 b4eb5531f8e7ce7993eca23add7c06fc3cbad05e
push id79906
push userapavel@mozilla.com
push dateThu, 07 Mar 2019 14:56:09 +0000
treeherderautoland@84f0b9acc4e9 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjwalden
bugs1531202
milestone67.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1531202 - Part 2: Reimport test262. r=jwalden Differential Revision: https://phabricator.services.mozilla.com/D21678
js/src/tests/test262/GIT-INFO
js/src/tests/test262/jstests.list
js/src/tests/test262/language/directive-prologue/10.1.1-2gs.js
js/src/tests/test262/language/directive-prologue/10.1.1-5gs.js
js/src/tests/test262/language/directive-prologue/10.1.1-8gs.js
js/src/tests/test262/language/directive-prologue/14.1-4gs.js
js/src/tests/test262/language/directive-prologue/14.1-5gs.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-init-null.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-init-undefined.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-empty.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-id-get-value-err.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-id-init-fn-name-arrow.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-id-init-fn-name-class.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-id-init-fn-name-cover.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-id-init-fn-name-fn.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-id-init-fn-name-gen.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-id-init-skipped.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-id-init-throws.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-id-init-unresolvable.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-id-trailing-comma.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-list-err.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-ary-init.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-ary-trailing-comma.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-ary-value-null.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-ary.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-eval-err.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-id-get-value-err.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-id-init-skipped.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-id-init-throws.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-id-init-unresolvable.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-id-init.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-id-trailing-comma.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-id.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-obj-init.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-obj-value-null.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-obj-value-undef.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-obj.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-rest-getter.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-rest-skip-non-enumerable.js
js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-rest-val-obj.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-empty-bool.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-empty-null.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-empty-num.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-empty-obj.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-empty-string.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-empty-symbol.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-empty-undef.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-identifier-resolution-first.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-identifier-resolution-last.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-identifier-resolution-lone.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-identifier-resolution-middle.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-identifier-resolution-trlng.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-identifier-yield-expr.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-identifier-yield-ident-invalid-strict.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-identifier-yield-ident-valid.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-assignment-missing.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-assignment-null.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-assignment-truthy.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-assignment-undef.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-evaluation.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-fn-name-arrow.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-fn-name-class.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-fn-name-cover.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-fn-name-fn.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-fn-name-gen.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-in.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-let.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-order.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-simple-no-strict.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-simple-strict-strict.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-yield-expr.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-yield-ident-invalid-strict.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-yield-ident-valid.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-put-const.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-put-let.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-put-unresolvable-no-strict.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-put-unresolvable-strict-strict.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-simple-no-strict.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-id-simple-strict-strict.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-elem-init-assignment-missing.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-elem-init-assignment-null.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-elem-init-assignment-truthy.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-elem-init-assignment-undef.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-elem-init-evaluation.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-elem-init-fn-name-arrow.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-elem-init-fn-name-class.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-elem-init-fn-name-cover.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-elem-init-fn-name-fn.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-elem-init-fn-name-gen.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-elem-init-in.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-elem-init-let.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-elem-init-yield-expr.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-elem-init-yield-ident-invalid-strict.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-elem-init-yield-ident-valid.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-elem-target-yield-expr.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-elem-target-yield-ident-invalid-strict.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-elem-target-yield-ident-valid.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-identifier-resolution-first.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-identifier-resolution-last.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-identifier-resolution-lone.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-identifier-resolution-middle.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-identifier-resolution-trlng.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-name-evaluation-error.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-name-evaluation.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-nested-array-invalid.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-nested-array-null.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-nested-array-undefined-own.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-nested-array-undefined.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-nested-array-yield-expr.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-nested-array-yield-ident-invalid-strict.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-nested-array-yield-ident-valid.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-nested-array.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-nested-obj-invalid.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-nested-obj-null.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-nested-obj-undefined-own.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-nested-obj-undefined.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-nested-obj-yield-expr.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-nested-obj-yield-ident-invalid-strict.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-nested-obj-yield-ident-valid.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-nested-obj.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-put-const.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-put-let.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-put-order.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-put-prop-ref-no-get.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-put-prop-ref-user-err.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-put-prop-ref.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-put-unresolvable-no-strict.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-prop-put-unresolvable-strict-strict.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-rest-computed-property-no-strict.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-rest-computed-property.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-rest-descriptors.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-rest-empty-obj.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-rest-getter-abrupt-get-error.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-rest-getter.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-rest-not-last-element-invalid.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-rest-number.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-rest-order.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-rest-put-const.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-rest-same-name.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-rest-skip-non-enumerable.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-rest-str-val.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-rest-symbol-val.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-rest-to-property-with-setter.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-rest-to-property.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-rest-val-null.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-rest-val-undefined.js
js/src/tests/test262/language/expressions/assignment/dstr/obj-rest-valid-object.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-init-null.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-init-undefined.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-empty.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-id-get-value-err.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-id-init-fn-name-arrow.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-id-init-fn-name-class.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-id-init-fn-name-cover.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-id-init-fn-name-fn.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-id-init-fn-name-gen.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-id-init-skipped.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-id-init-throws.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-id-init-unresolvable.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-id-trailing-comma.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-list-err.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-prop-ary-init.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-prop-ary-trailing-comma.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-prop-ary-value-null.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-prop-ary.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-prop-eval-err.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-prop-id-get-value-err.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-prop-id-init-skipped.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-prop-id-init-throws.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-prop-id-init-unresolvable.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-prop-id-init.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-prop-id-trailing-comma.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-prop-id.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-prop-obj-init.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-prop-obj-value-null.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-prop-obj-value-undef.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-prop-obj.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-rest-getter.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-rest-skip-non-enumerable.js
js/src/tests/test262/language/expressions/async-generator/dstr/obj-ptrn-rest-val-obj.js
js/src/tests/test262/language/expressions/function/dstr/obj-init-null.js
js/src/tests/test262/language/expressions/function/dstr/obj-init-undefined.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-empty.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-id-get-value-err.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-id-init-fn-name-arrow.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-id-init-fn-name-class.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-id-init-fn-name-cover.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-id-init-fn-name-fn.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-id-init-fn-name-gen.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-id-init-skipped.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-id-init-throws.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-id-init-unresolvable.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-id-trailing-comma.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-list-err.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-prop-ary-init.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-prop-ary-trailing-comma.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-prop-ary-value-null.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-prop-ary.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-prop-eval-err.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-prop-id-get-value-err.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-prop-id-init-skipped.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-prop-id-init-throws.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-prop-id-init-unresolvable.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-prop-id-init.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-prop-id-trailing-comma.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-prop-id.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-prop-obj-init.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-prop-obj-value-null.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-prop-obj-value-undef.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-prop-obj.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-rest-getter.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-rest-skip-non-enumerable.js
js/src/tests/test262/language/expressions/function/dstr/obj-ptrn-rest-val-obj.js
js/src/tests/test262/language/expressions/generators/dstr/obj-init-null.js
js/src/tests/test262/language/expressions/generators/dstr/obj-init-undefined.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-empty.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-id-get-value-err.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-id-init-fn-name-arrow.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-id-init-fn-name-class.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-id-init-fn-name-cover.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-id-init-fn-name-fn.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-id-init-fn-name-gen.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-id-init-skipped.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-id-init-throws.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-id-init-unresolvable.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-id-trailing-comma.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-list-err.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-prop-ary-init.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-prop-ary-trailing-comma.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-prop-ary-value-null.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-prop-ary.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-prop-eval-err.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-prop-id-get-value-err.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-prop-id-init-skipped.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-prop-id-init-throws.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-prop-id-init-unresolvable.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-prop-id-init.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-prop-id-trailing-comma.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-prop-id.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-prop-obj-init.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-prop-obj-value-null.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-prop-obj-value-undef.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-prop-obj.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-rest-getter.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-rest-skip-non-enumerable.js
js/src/tests/test262/language/expressions/generators/dstr/obj-ptrn-rest-val-obj.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-init-null.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-init-undefined.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-empty.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-id-get-value-err.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-id-init-fn-name-arrow.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-id-init-fn-name-class.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-id-init-fn-name-cover.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-id-init-fn-name-fn.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-id-init-fn-name-gen.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-id-init-skipped.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-id-init-throws.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-id-init-unresolvable.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-id-trailing-comma.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-list-err.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-prop-ary-init.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-prop-ary-trailing-comma.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-prop-ary-value-null.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-prop-ary.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-prop-eval-err.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-prop-id-get-value-err.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-prop-id-init-skipped.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-prop-id-init-throws.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-prop-id-init-unresolvable.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-prop-id-init.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-prop-id-trailing-comma.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-prop-id.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-prop-obj-init.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-prop-obj-value-null.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-prop-obj-value-undef.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-prop-obj.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-rest-getter.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-rest-skip-non-enumerable.js
js/src/tests/test262/language/statements/async-generator/dstr/obj-ptrn-rest-val-obj.js
js/src/tests/test262/language/statements/const/dstr/obj-init-null.js
js/src/tests/test262/language/statements/const/dstr/obj-init-undefined.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-empty.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-id-get-value-err.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-id-init-fn-name-arrow.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-id-init-fn-name-class.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-id-init-fn-name-cover.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-id-init-fn-name-fn.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-id-init-fn-name-gen.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-id-init-skipped.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-id-init-throws.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-id-init-unresolvable.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-id-trailing-comma.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-list-err.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-prop-ary-init.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-prop-ary-trailing-comma.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-prop-ary-value-null.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-prop-ary.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-prop-eval-err.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-prop-id-get-value-err.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-prop-id-init-skipped.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-prop-id-init-throws.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-prop-id-init-unresolvable.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-prop-id-init.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-prop-id-trailing-comma.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-prop-id.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-prop-obj-init.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-prop-obj-value-null.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-prop-obj-value-undef.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-prop-obj.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-rest-getter.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-rest-skip-non-enumerable.js
js/src/tests/test262/language/statements/const/dstr/obj-ptrn-rest-val-obj.js
js/src/tests/test262/language/statements/for-in/dstr/obj-id-identifier-yield-expr.js
js/src/tests/test262/language/statements/for-in/dstr/obj-id-identifier-yield-ident-invalid-strict.js
js/src/tests/test262/language/statements/for-in/dstr/obj-id-init-simple-strict-strict.js
js/src/tests/test262/language/statements/for-in/dstr/obj-id-init-yield-ident-invalid-strict.js
js/src/tests/test262/language/statements/for-in/dstr/obj-id-simple-strict-strict.js
js/src/tests/test262/language/statements/for-in/dstr/obj-prop-elem-init-yield-ident-invalid-strict.js
js/src/tests/test262/language/statements/for-in/dstr/obj-prop-elem-target-yield-ident-invalid-strict.js
js/src/tests/test262/language/statements/for-in/dstr/obj-prop-nested-array-invalid.js
js/src/tests/test262/language/statements/for-in/dstr/obj-prop-nested-array-yield-ident-invalid-strict.js
js/src/tests/test262/language/statements/for-in/dstr/obj-prop-nested-obj-invalid.js
js/src/tests/test262/language/statements/for-in/dstr/obj-prop-nested-obj-yield-ident-invalid-strict.js
js/src/tests/test262/language/statements/for-in/dstr/obj-rest-not-last-element-invalid.js
js/src/tests/test262/language/statements/for-of/dstr/obj-empty-bool.js
js/src/tests/test262/language/statements/for-of/dstr/obj-empty-null.js
js/src/tests/test262/language/statements/for-of/dstr/obj-empty-num.js
js/src/tests/test262/language/statements/for-of/dstr/obj-empty-obj.js
js/src/tests/test262/language/statements/for-of/dstr/obj-empty-string.js
js/src/tests/test262/language/statements/for-of/dstr/obj-empty-symbol.js
js/src/tests/test262/language/statements/for-of/dstr/obj-empty-undef.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-identifier-resolution-first.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-identifier-resolution-last.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-identifier-resolution-lone.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-identifier-resolution-middle.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-identifier-resolution-trlng.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-identifier-yield-expr.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-identifier-yield-ident-invalid-strict.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-identifier-yield-ident-valid.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-init-assignment-missing.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-init-assignment-null.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-init-assignment-truthy.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-init-assignment-undef.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-init-evaluation.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-init-fn-name-arrow.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-init-fn-name-class.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-init-fn-name-cover.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-init-fn-name-fn.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-init-fn-name-gen.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-init-in.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-init-let.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-init-order.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-init-simple-no-strict.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-init-simple-strict-strict.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-init-yield-expr.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-init-yield-ident-invalid-strict.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-init-yield-ident-valid.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-put-const.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-put-let.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-put-unresolvable-no-strict.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-put-unresolvable-strict-strict.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-simple-no-strict.js
js/src/tests/test262/language/statements/for-of/dstr/obj-id-simple-strict-strict.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-elem-init-assignment-missing.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-elem-init-assignment-null.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-elem-init-assignment-truthy.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-elem-init-assignment-undef.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-elem-init-evaluation.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-elem-init-fn-name-arrow.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-elem-init-fn-name-class.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-elem-init-fn-name-cover.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-elem-init-fn-name-fn.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-elem-init-fn-name-gen.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-elem-init-in.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-elem-init-let.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-elem-init-yield-expr.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-elem-init-yield-ident-invalid-strict.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-elem-init-yield-ident-valid.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-elem-target-yield-expr.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-elem-target-yield-ident-invalid-strict.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-elem-target-yield-ident-valid.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-identifier-resolution-first.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-identifier-resolution-last.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-identifier-resolution-lone.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-identifier-resolution-middle.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-identifier-resolution-trlng.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-name-evaluation-error.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-name-evaluation.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-nested-array-invalid.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-nested-array-null.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-nested-array-undefined-own.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-nested-array-undefined.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-nested-array-yield-expr.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-nested-array-yield-ident-invalid-strict.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-nested-array-yield-ident-valid.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-nested-array.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-nested-obj-invalid.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-nested-obj-null.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-nested-obj-undefined-own.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-nested-obj-undefined.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-nested-obj-yield-expr.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-nested-obj-yield-ident-invalid-strict.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-nested-obj-yield-ident-valid.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-nested-obj.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-put-const.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-put-let.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-put-order.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-put-prop-ref-no-get.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-put-prop-ref-user-err.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-put-prop-ref.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-put-unresolvable-no-strict.js
js/src/tests/test262/language/statements/for-of/dstr/obj-prop-put-unresolvable-strict-strict.js
js/src/tests/test262/language/statements/for-of/dstr/obj-rest-computed-property-no-strict.js
js/src/tests/test262/language/statements/for-of/dstr/obj-rest-computed-property.js
js/src/tests/test262/language/statements/for-of/dstr/obj-rest-descriptors.js
js/src/tests/test262/language/statements/for-of/dstr/obj-rest-empty-obj.js
js/src/tests/test262/language/statements/for-of/dstr/obj-rest-getter-abrupt-get-error.js
js/src/tests/test262/language/statements/for-of/dstr/obj-rest-getter.js
js/src/tests/test262/language/statements/for-of/dstr/obj-rest-not-last-element-invalid.js
js/src/tests/test262/language/statements/for-of/dstr/obj-rest-number.js
js/src/tests/test262/language/statements/for-of/dstr/obj-rest-order.js
js/src/tests/test262/language/statements/for-of/dstr/obj-rest-put-const.js
js/src/tests/test262/language/statements/for-of/dstr/obj-rest-same-name.js
js/src/tests/test262/language/statements/for-of/dstr/obj-rest-skip-non-enumerable.js
js/src/tests/test262/language/statements/for-of/dstr/obj-rest-str-val.js
js/src/tests/test262/language/statements/for-of/dstr/obj-rest-symbol-val.js
js/src/tests/test262/language/statements/for-of/dstr/obj-rest-to-property-with-setter.js
js/src/tests/test262/language/statements/for-of/dstr/obj-rest-to-property.js
js/src/tests/test262/language/statements/for-of/dstr/obj-rest-val-null.js
js/src/tests/test262/language/statements/for-of/dstr/obj-rest-val-undefined.js
js/src/tests/test262/language/statements/for-of/dstr/obj-rest-valid-object.js
js/src/tests/test262/language/statements/function/dstr/obj-init-null.js
js/src/tests/test262/language/statements/function/dstr/obj-init-undefined.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-empty.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-id-get-value-err.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-id-init-fn-name-arrow.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-id-init-fn-name-class.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-id-init-fn-name-cover.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-id-init-fn-name-fn.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-id-init-fn-name-gen.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-id-init-skipped.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-id-init-throws.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-id-init-unresolvable.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-id-trailing-comma.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-list-err.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-prop-ary-init.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-prop-ary-trailing-comma.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-prop-ary-value-null.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-prop-ary.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-prop-eval-err.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-prop-id-get-value-err.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-prop-id-init-skipped.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-prop-id-init-throws.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-prop-id-init-unresolvable.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-prop-id-init.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-prop-id-trailing-comma.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-prop-id.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-prop-obj-init.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-prop-obj-value-null.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-prop-obj-value-undef.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-prop-obj.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-rest-getter.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-rest-skip-non-enumerable.js
js/src/tests/test262/language/statements/function/dstr/obj-ptrn-rest-val-obj.js
js/src/tests/test262/language/statements/generators/dstr/obj-init-null.js
js/src/tests/test262/language/statements/generators/dstr/obj-init-undefined.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-empty.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-id-get-value-err.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-id-init-fn-name-arrow.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-id-init-fn-name-class.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-id-init-fn-name-cover.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-id-init-fn-name-fn.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-id-init-fn-name-gen.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-id-init-skipped.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-id-init-throws.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-id-init-unresolvable.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-id-trailing-comma.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-list-err.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-prop-ary-init.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-prop-ary-trailing-comma.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-prop-ary-value-null.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-prop-ary.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-prop-eval-err.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-prop-id-get-value-err.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-prop-id-init-skipped.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-prop-id-init-throws.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-prop-id-init-unresolvable.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-prop-id-init.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-prop-id-trailing-comma.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-prop-id.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-prop-obj-init.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-prop-obj-value-null.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-prop-obj-value-undef.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-prop-obj.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-rest-getter.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-rest-skip-non-enumerable.js
js/src/tests/test262/language/statements/generators/dstr/obj-ptrn-rest-val-obj.js
js/src/tests/test262/language/statements/let/dstr/obj-init-null.js
js/src/tests/test262/language/statements/let/dstr/obj-init-undefined.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-empty.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-id-get-value-err.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-id-init-fn-name-arrow.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-id-init-fn-name-class.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-id-init-fn-name-cover.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-id-init-fn-name-fn.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-id-init-fn-name-gen.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-id-init-skipped.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-id-init-throws.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-id-init-unresolvable.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-id-trailing-comma.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-list-err.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-prop-ary-init.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-prop-ary-trailing-comma.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-prop-ary-value-null.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-prop-ary.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-prop-eval-err.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-prop-id-get-value-err.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-prop-id-init-skipped.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-prop-id-init-throws.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-prop-id-init-unresolvable.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-prop-id-init.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-prop-id-trailing-comma.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-prop-id.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-prop-obj-init.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-prop-obj-value-null.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-prop-obj-value-undef.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-prop-obj.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-rest-getter.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-rest-skip-non-enumerable.js
js/src/tests/test262/language/statements/let/dstr/obj-ptrn-rest-val-obj.js
js/src/tests/test262/language/statements/try/dstr/obj-init-null.js
js/src/tests/test262/language/statements/try/dstr/obj-init-undefined.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-empty.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-id-get-value-err.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-id-init-fn-name-arrow.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-id-init-fn-name-class.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-id-init-fn-name-cover.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-id-init-fn-name-fn.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-id-init-fn-name-gen.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-id-init-skipped.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-id-init-throws.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-id-init-unresolvable.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-id-trailing-comma.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-list-err.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-prop-ary-init.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-prop-ary-trailing-comma.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-prop-ary-value-null.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-prop-ary.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-prop-eval-err.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-prop-id-get-value-err.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-prop-id-init-skipped.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-prop-id-init-throws.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-prop-id-init-unresolvable.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-prop-id-init.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-prop-id-trailing-comma.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-prop-id.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-prop-obj-init.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-prop-obj-value-null.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-prop-obj-value-undef.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-prop-obj.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-rest-getter.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-rest-skip-non-enumerable.js
js/src/tests/test262/language/statements/try/dstr/obj-ptrn-rest-val-obj.js
js/src/tests/test262/language/statements/variable/dstr/obj-init-null.js
js/src/tests/test262/language/statements/variable/dstr/obj-init-undefined.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-empty.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-id-get-value-err.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-id-init-fn-name-arrow.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-id-init-fn-name-class.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-id-init-fn-name-cover.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-id-init-fn-name-fn.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-id-init-fn-name-gen.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-id-init-skipped.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-id-init-throws.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-id-init-unresolvable.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-id-trailing-comma.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-list-err.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-prop-ary-init.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-prop-ary-trailing-comma.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-prop-ary-value-null.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-prop-ary.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-prop-eval-err.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-prop-id-get-value-err.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-prop-id-init-skipped.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-prop-id-init-throws.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-prop-id-init-unresolvable.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-prop-id-init.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-prop-id-trailing-comma.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-prop-id.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-prop-obj-init.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-prop-obj-value-null.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-prop-obj-value-undef.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-prop-obj.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-rest-getter.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-rest-skip-non-enumerable.js
js/src/tests/test262/language/statements/variable/dstr/obj-ptrn-rest-val-obj.js
--- a/js/src/tests/test262/GIT-INFO
+++ b/js/src/tests/test262/GIT-INFO
@@ -1,7 +1,8 @@
 commit 59b89a1c834faadc359aecc882587b513877b59b
+Merge: b4e15b3 262216e
 Author: Leo Balter <leonardo.balter@gmail.com>
 Date:   Tue Feb 26 11:01:57 2019 -0500
 
     Merge pull request #2083 from leobalter/2034/yaml-extra-lines
     
     Add lint check for leading empty lines in description and info blocks
--- a/js/src/tests/test262/jstests.list
+++ b/js/src/tests/test262/jstests.list
@@ -0,0 +1,7 @@
+# GENERATED, DO NOT EDIT
+
+error:SyntaxError script language/directive-prologue/10.1.1-2gs.js
+error:SyntaxError script language/directive-prologue/10.1.1-5gs.js
+error:SyntaxError script language/directive-prologue/10.1.1-8gs.js
+error:SyntaxError script language/directive-prologue/14.1-4gs.js
+error:SyntaxError script language/directive-prologue/14.1-5gs.js
--- a/js/src/tests/test262/language/directive-prologue/10.1.1-2gs.js
+++ b/js/src/tests/test262/language/directive-prologue/10.1.1-2gs.js
@@ -1,9 +1,8 @@
-// |reftest| error:SyntaxError
 // Copyright (c) 2012 Ecma International.  All rights reserved.
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
 es5id: 10.1.1-2gs
 description: >
     Strict Mode - Use Strict Directive Prologue is ''use strict''
     which lost the last character ';'
--- a/js/src/tests/test262/language/directive-prologue/10.1.1-5gs.js
+++ b/js/src/tests/test262/language/directive-prologue/10.1.1-5gs.js
@@ -1,9 +1,8 @@
-// |reftest| error:SyntaxError
 // Copyright (c) 2012 Ecma International.  All rights reserved.
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
 es5id: 10.1.1-5gs
 description: >
     Strict Mode - Use Strict Directive Prologue is ''use strict';'
     which appears at the start of the code
--- a/js/src/tests/test262/language/directive-prologue/10.1.1-8gs.js
+++ b/js/src/tests/test262/language/directive-prologue/10.1.1-8gs.js
@@ -1,9 +1,8 @@
-// |reftest| error:SyntaxError
 // Copyright (c) 2012 Ecma International.  All rights reserved.
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
 es5id: 10.1.1-8gs
 description: >
     Strict Mode - Use Strict Directive Prologue is ''use strict';'
     which appears twice in the code
--- a/js/src/tests/test262/language/directive-prologue/14.1-4gs.js
+++ b/js/src/tests/test262/language/directive-prologue/14.1-4gs.js
@@ -1,9 +1,8 @@
-// |reftest| error:SyntaxError
 // Copyright (c) 2012 Ecma International.  All rights reserved.
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
 es5id: 14.1-4gs
 description: >
     StrictMode - a Use Strict Directive followed by a strict mode
     violation
--- a/js/src/tests/test262/language/directive-prologue/14.1-5gs.js
+++ b/js/src/tests/test262/language/directive-prologue/14.1-5gs.js
@@ -1,9 +1,8 @@
-// |reftest| error:SyntaxError
 // Copyright (c) 2012 Ecma International.  All rights reserved.
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
 es5id: 14.1-5gs
 description: >
     StrictMode - a Use Strict Directive embedded in a directive
     prologue followed by a strict mode violation
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-init-null.js
@@ -0,0 +1,53 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-init-null.case
+// - src/dstr-binding/error/arrow-function.template
+/*---
+description: Value specifed for object binding pattern must be object coercible (null) (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    Runtime Semantics: BindingInitialization
+
+    ObjectBindingPattern : { }
+
+    1. Return NormalCompletion(empty).
+---*/
+
+var f = ({}) => {};
+
+assert.throws(TypeError, function() {
+  f(null);
+});
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-init-undefined.js
@@ -0,0 +1,53 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-init-undefined.case
+// - src/dstr-binding/error/arrow-function.template
+/*---
+description: Value specifed for object binding pattern must be object coercible (undefined) (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    Runtime Semantics: BindingInitialization
+
+    ObjectBindingPattern : { }
+
+    1. Return NormalCompletion(empty).
+---*/
+
+var f = ({}) => {};
+
+assert.throws(TypeError, function() {
+  f(undefined);
+});
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-empty.js
@@ -0,0 +1,63 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-empty.case
+// - src/dstr-binding/default/arrow-function.template
+/*---
+description: No property access occurs for an "empty" object binding pattern (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    Runtime Semantics: BindingInitialization
+
+    ObjectBindingPattern : { }
+
+    1. Return NormalCompletion(empty).
+---*/
+var accessCount = 0;
+var obj = Object.defineProperty({}, 'attr', {
+  get: function() {
+    accessCount += 1;
+  }
+});
+
+var callCount = 0;
+var f;
+f = ({}) => {
+  assert.sameValue(accessCount, 0);
+  callCount = callCount + 1;
+};
+
+f(obj);
+assert.sameValue(callCount, 1, 'arrow function invoked exactly once');
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-id-get-value-err.js
@@ -0,0 +1,60 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-id-get-value-err.case
+// - src/dstr-binding/error/arrow-function.template
+/*---
+description: Error thrown when accessing the corresponding property of the value object (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
+
+    SingleNameBinding : BindingIdentifier Initializeropt
+
+    [...]
+    4. Let v be GetV(value, propertyName).
+    5. ReturnIfAbrupt(v).
+---*/
+var poisonedProperty = Object.defineProperty({}, 'poisoned', {
+  get: function() {
+    throw new Test262Error();
+  }
+});
+
+var f = ({ poisoned }) => {};
+
+assert.throws(Test262Error, function() {
+  f(poisonedProperty);
+});
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-id-init-fn-name-arrow.js
@@ -0,0 +1,64 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-id-init-fn-name-arrow.case
+// - src/dstr-binding/default/arrow-function.template
+/*---
+description: SingleNameBinding assigns `name` to arrow functions (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
+
+    SingleNameBinding : BindingIdentifier Initializeropt
+
+    [...]
+    6. If Initializer is present and v is undefined, then
+       [...]
+       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
+          i. Let hasNameProperty be HasOwnProperty(v, "name").
+          ii. ReturnIfAbrupt(hasNameProperty).
+          iii. If hasNameProperty is false, perform SetFunctionName(v,
+               bindingId).
+---*/
+
+var callCount = 0;
+var f;
+f = ({ arrow = () => {} }) => {
+  assert.sameValue(arrow.name, 'arrow');
+  callCount = callCount + 1;
+};
+
+f({});
+assert.sameValue(callCount, 1, 'arrow function invoked exactly once');
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-id-init-fn-name-class.js
@@ -0,0 +1,66 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-id-init-fn-name-class.case
+// - src/dstr-binding/default/arrow-function.template
+/*---
+description: SingleNameBinding assigns `name` to "anonymous" classes (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
+
+    SingleNameBinding : BindingIdentifier Initializeropt
+
+    [...]
+    6. If Initializer is present and v is undefined, then
+       [...]
+       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
+          i. Let hasNameProperty be HasOwnProperty(v, "name").
+          ii. ReturnIfAbrupt(hasNameProperty).
+          iii. If hasNameProperty is false, perform SetFunctionName(v,
+               bindingId).
+---*/
+
+var callCount = 0;
+var f;
+f = ({ cls = class {}, xCls = class X {}, xCls2 = class { static name() {} } }) => {
+  assert.sameValue(cls.name, 'cls');
+  assert.notSameValue(xCls.name, 'xCls');
+  assert.notSameValue(xCls2.name, 'xCls2');
+  callCount = callCount + 1;
+};
+
+f({});
+assert.sameValue(callCount, 1, 'arrow function invoked exactly once');
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-id-init-fn-name-cover.js
@@ -0,0 +1,65 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-id-init-fn-name-cover.case
+// - src/dstr-binding/default/arrow-function.template
+/*---
+description: SingleNameBinding assigns `name` to "anonymous" functions "through" cover grammar (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
+
+    SingleNameBinding : BindingIdentifier Initializeropt
+
+    [...]
+    6. If Initializer is present and v is undefined, then
+       [...]
+       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
+          i. Let hasNameProperty be HasOwnProperty(v, "name").
+          ii. ReturnIfAbrupt(hasNameProperty).
+          iii. If hasNameProperty is false, perform SetFunctionName(v,
+               bindingId).
+---*/
+
+var callCount = 0;
+var f;
+f = ({ cover = (function () {}), xCover = (0, function() {})  }) => {
+  assert.sameValue(cover.name, 'cover');
+  assert.notSameValue(xCover.name, 'xCover');
+  callCount = callCount + 1;
+};
+
+f({});
+assert.sameValue(callCount, 1, 'arrow function invoked exactly once');
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-id-init-fn-name-fn.js
@@ -0,0 +1,65 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-id-init-fn-name-fn.case
+// - src/dstr-binding/default/arrow-function.template
+/*---
+description: SingleNameBinding assigns name to "anonymous" functions (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
+
+    SingleNameBinding : BindingIdentifier Initializeropt
+
+    [...]
+    6. If Initializer is present and v is undefined, then
+       [...]
+       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
+          i. Let hasNameProperty be HasOwnProperty(v, "name").
+          ii. ReturnIfAbrupt(hasNameProperty).
+          iii. If hasNameProperty is false, perform SetFunctionName(v,
+               bindingId).
+---*/
+
+var callCount = 0;
+var f;
+f = ({ fn = function () {}, xFn = function x() {} }) => {
+  assert.sameValue(fn.name, 'fn');
+  assert.notSameValue(xFn.name, 'xFn');
+  callCount = callCount + 1;
+};
+
+f({});
+assert.sameValue(callCount, 1, 'arrow function invoked exactly once');
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-id-init-fn-name-gen.js
@@ -0,0 +1,66 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-id-init-fn-name-gen.case
+// - src/dstr-binding/default/arrow-function.template
+/*---
+description: SingleNameBinding assigns name to "anonymous" generator functions (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [generators, destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
+
+    SingleNameBinding : BindingIdentifier Initializeropt
+
+    [...]
+    6. If Initializer is present and v is undefined, then
+       [...]
+       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
+          i. Let hasNameProperty be HasOwnProperty(v, "name").
+          ii. ReturnIfAbrupt(hasNameProperty).
+          iii. If hasNameProperty is false, perform SetFunctionName(v,
+               bindingId).
+
+---*/
+
+var callCount = 0;
+var f;
+f = ({ gen = function* () {}, xGen = function* x() {} }) => {
+  assert.sameValue(gen.name, 'gen');
+  assert.notSameValue(xGen.name, 'xGen');
+  callCount = callCount + 1;
+};
+
+f({});
+assert.sameValue(callCount, 1, 'arrow function invoked exactly once');
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-id-init-skipped.js
@@ -0,0 +1,68 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-id-init-skipped.case
+// - src/dstr-binding/default/arrow-function.template
+/*---
+description: Destructuring initializer is not evaluated when value is not `undefined` (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
+
+    SingleNameBinding : BindingIdentifier Initializeropt
+
+    [...]
+    6. If Initializer is present and v is undefined, then
+       [...]
+    [...]
+---*/
+var initCount = 0;
+function counter() {
+  initCount += 1;
+}
+
+var callCount = 0;
+var f;
+f = ({ w = counter(), x = counter(), y = counter(), z = counter() }) => {
+  assert.sameValue(w, null);
+  assert.sameValue(x, 0);
+  assert.sameValue(y, false);
+  assert.sameValue(z, '');
+  assert.sameValue(initCount, 0);
+  callCount = callCount + 1;
+};
+
+f({ w: null, x: 0, y: false, z: '' });
+assert.sameValue(callCount, 1, 'arrow function invoked exactly once');
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-id-init-throws.js
@@ -0,0 +1,60 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-id-init-throws.case
+// - src/dstr-binding/error/arrow-function.template
+/*---
+description: Error thrown when evaluating the initializer (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
+
+    SingleNameBinding : BindingIdentifier Initializeropt
+
+    [...]
+    6. If Initializer is present and v is undefined, then
+       a. Let  defaultValue be the result of evaluating Initializer.
+       b. Let v be GetValue(defaultValue).
+       c. ReturnIfAbrupt(v).
+---*/
+function thrower() {
+  throw new Test262Error();
+}
+
+var f = ({ x = thrower() }) => {};
+
+assert.throws(Test262Error, function() {
+  f({});
+});
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-id-init-unresolvable.js
@@ -0,0 +1,64 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-id-init-unresolvable.case
+// - src/dstr-binding/error/arrow-function.template
+/*---
+description: Destructuring initializer is an unresolvable reference (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
+
+    SingleNameBinding : BindingIdentifier Initializeropt
+
+    [...]
+    6. If Initializer is present and v is undefined, then
+       a. Let defaultValue be the result of evaluating Initializer.
+       b. Let v be GetValue(defaultValue).
+       c. ReturnIfAbrupt(v).
+
+    6.2.3.1 GetValue (V)
+
+    1. ReturnIfAbrupt(V).
+    2. If Type(V) is not Reference, return V.
+    3. Let base be GetBase(V).
+    4. If IsUnresolvableReference(V), throw a ReferenceError exception.
+---*/
+
+var f = ({ x = unresolvableReference }) => {};
+
+assert.throws(ReferenceError, function() {
+  f({});
+});
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-id-trailing-comma.js
@@ -0,0 +1,58 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-id-trailing-comma.case
+// - src/dstr-binding/default/arrow-function.template
+/*---
+description: Trailing comma is allowed following BindingPropertyList (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3 Destructuring Binding Patterns
+
+    ObjectBindingPattern[Yield] :
+        { }
+        { BindingPropertyList[?Yield] }
+        { BindingPropertyList[?Yield] , }
+---*/
+
+var callCount = 0;
+var f;
+f = ({ x, }) => {
+  assert.sameValue(x, 23);
+  callCount = callCount + 1;
+};
+
+f({ x: 23 });
+assert.sameValue(callCount, 1, 'arrow function invoked exactly once');
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-list-err.js
@@ -0,0 +1,61 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-list-err.case
+// - src/dstr-binding/error/arrow-function.template
+/*---
+description: Binding property list evaluation is interrupted by an abrupt completion (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3.5 Runtime Semantics: BindingInitialization
+
+    BindingPropertyList : BindingPropertyList , BindingProperty
+
+    1. Let status be the result of performing BindingInitialization for
+       BindingPropertyList using value and environment as arguments.
+    2. ReturnIfAbrupt(status).
+---*/
+var initCount = 0;
+function thrower() {
+  throw new Test262Error();
+}
+
+var f = ({ a, b = thrower(), c = ++initCount }) => {};
+
+assert.throws(Test262Error, function() {
+  f({});
+});
+
+assert.sameValue(initCount, 0);
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-ary-init.js
@@ -0,0 +1,67 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-prop-ary-init.case
+// - src/dstr-binding/default/arrow-function.template
+/*---
+description: Object binding pattern with "nested" array binding pattern using initializer (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
+
+    [...]
+    3. If Initializer is present and v is undefined, then
+       a. Let defaultValue be the result of evaluating Initializer.
+       b. Let v be GetValue(defaultValue).
+       c. ReturnIfAbrupt(v).
+    4. Return the result of performing BindingInitialization for BindingPattern
+       passing v and environment as arguments.
+---*/
+
+var callCount = 0;
+var f;
+f = ({ w: [x, y, z] = [4, 5, 6] }) => {
+  assert.sameValue(x, 4);
+  assert.sameValue(y, 5);
+  assert.sameValue(z, 6);
+
+  assert.throws(ReferenceError, function() {
+    w;
+  });
+  callCount = callCount + 1;
+};
+
+f({});
+assert.sameValue(callCount, 1, 'arrow function invoked exactly once');
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-ary-trailing-comma.js
@@ -0,0 +1,58 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-prop-ary-trailing-comma.case
+// - src/dstr-binding/default/arrow-function.template
+/*---
+description: Trailing comma is allowed following BindingPropertyList (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3 Destructuring Binding Patterns
+
+    ObjectBindingPattern[Yield] :
+        { }
+        { BindingPropertyList[?Yield] }
+        { BindingPropertyList[?Yield] , }
+---*/
+
+var callCount = 0;
+var f;
+f = ({ x: [y], }) => {
+  assert.sameValue(y,45);
+  callCount = callCount + 1;
+};
+
+f({ x: [45] });
+assert.sameValue(callCount, 1, 'arrow function invoked exactly once');
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-ary-value-null.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-prop-ary-value-null.case
+// - src/dstr-binding/error/arrow-function.template
+/*---
+description: Object binding pattern with "nested" array binding pattern taking the `null` value (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
+
+    [...]
+    3. If Initializer is present and v is undefined, then
+       [...]
+    4. Return the result of performing BindingInitialization for BindingPattern
+       passing v and environment as arguments.
+---*/
+
+var f = ({ w: [x, y, z] = [4, 5, 6] }) => {};
+
+assert.throws(TypeError, function() {
+  f({ w: null });
+});
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-ary.js
@@ -0,0 +1,65 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-prop-ary.case
+// - src/dstr-binding/default/arrow-function.template
+/*---
+description: Object binding pattern with "nested" array binding pattern not using initializer (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
+
+    [...]
+    3. If Initializer is present and v is undefined, then
+       [...]
+    4. Return the result of performing BindingInitialization for BindingPattern
+       passing v and environment as arguments.
+---*/
+
+var callCount = 0;
+var f;
+f = ({ w: [x, y, z] = [4, 5, 6] }) => {
+  assert.sameValue(x, 7);
+  assert.sameValue(y, undefined);
+  assert.sameValue(z, undefined);
+
+  assert.throws(ReferenceError, function() {
+    w;
+  });
+  callCount = callCount + 1;
+};
+
+f({ w: [7, undefined, ] });
+assert.sameValue(callCount, 1, 'arrow function invoked exactly once');
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-eval-err.js
@@ -0,0 +1,57 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-prop-eval-err.case
+// - src/dstr-binding/error/arrow-function.template
+/*---
+description: Evaluation of property name returns an abrupt completion (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3.5 Runtime Semantics: BindingInitialization
+
+    BindingProperty : PropertyName : BindingElement
+
+    1. Let P be the result of evaluating PropertyName
+    2. ReturnIfAbrupt(P).
+---*/
+function thrower() {
+  throw new Test262Error();
+}
+
+var f = ({ [thrower()]: x }) => {};
+
+assert.throws(Test262Error, function() {
+  f({});
+});
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-id-get-value-err.js
@@ -0,0 +1,62 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-prop-id-get-value-err.case
+// - src/dstr-binding/error/arrow-function.template
+/*---
+description: Error thrown when accessing the corresponding property of the value object (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
+
+    BindingElement : BindingPattern Initializeropt
+
+    1. Let v be GetV(value, propertyName).
+    2. ReturnIfAbrupt(v).
+---*/
+var initEvalCount = 0;
+var poisonedProperty = Object.defineProperty({}, 'poisoned', {
+  get: function() {
+    throw new Test262Error();
+  }
+});
+
+var f = ({ poisoned: x = ++initEvalCount }) => {};
+
+assert.throws(Test262Error, function() {
+  f(poisonedProperty);
+});
+
+assert.sameValue(initEvalCount, 0);
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-id-init-skipped.js
@@ -0,0 +1,80 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-prop-id-init-skipped.case
+// - src/dstr-binding/default/arrow-function.template
+/*---
+description: Destructuring initializer is not evaluated when value is not `undefined` (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
+
+    BindingElement : BindingPattern Initializeropt
+
+    [...]
+    3. If Initializer is present and v is undefined, then
+    [...]
+---*/
+var initCount = 0;
+function counter() {
+  initCount += 1;
+}
+
+var callCount = 0;
+var f;
+f = ({ s: t = counter(), u: v = counter(), w: x = counter(), y: z = counter() }) => {
+  assert.sameValue(t, null);
+  assert.sameValue(v, 0);
+  assert.sameValue(x, false);
+  assert.sameValue(z, '');
+  assert.sameValue(initCount, 0);
+
+  assert.throws(ReferenceError, function() {
+    s;
+  });
+  assert.throws(ReferenceError, function() {
+    u;
+  });
+  assert.throws(ReferenceError, function() {
+    w;
+  });
+  assert.throws(ReferenceError, function() {
+    y;
+  });
+  callCount = callCount + 1;
+};
+
+f({ s: null, u: 0, w: false, y: '' });
+assert.sameValue(callCount, 1, 'arrow function invoked exactly once');
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-id-init-throws.js
@@ -0,0 +1,60 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-prop-id-init-throws.case
+// - src/dstr-binding/error/arrow-function.template
+/*---
+description: Error thrown when evaluating the initializer (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
+
+    BindingElement : BindingPattern Initializeropt
+
+    [...]
+    3. If Initializer is present and v is undefined, then
+       a. Let defaultValue be the result of evaluating Initializer.
+       b. Let v be GetValue(defaultValue).
+       c. ReturnIfAbrupt(v).
+---*/
+function thrower() {
+  throw new Test262Error();
+}
+
+var f = ({ x: y = thrower() }) => {};
+
+assert.throws(Test262Error, function() {
+  f({});
+});
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-id-init-unresolvable.js
@@ -0,0 +1,64 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-prop-id-init-unresolvable.case
+// - src/dstr-binding/error/arrow-function.template
+/*---
+description: Destructuring initializer is an unresolvable reference (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
+
+    BindingElement : BindingPattern Initializeropt
+
+    [...]
+    3. If Initializer is present and v is undefined, then
+       a. Let defaultValue be the result of evaluating Initializer.
+       b. Let v be GetValue(defaultValue).
+       c. ReturnIfAbrupt(v).
+
+    6.2.3.1 GetValue (V)
+
+    1. ReturnIfAbrupt(V).
+    2. If Type(V) is not Reference, return V.
+    3. Let base be GetBase(V).
+    4. If IsUnresolvableReference(V), throw a ReferenceError exception.
+---*/
+
+var f = ({ x: y = unresolvableReference }) => {};
+
+assert.throws(ReferenceError, function() {
+  f({});
+});
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-id-init.js
@@ -0,0 +1,61 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-prop-id-init.case
+// - src/dstr-binding/default/arrow-function.template
+/*---
+description: Binding as specified via property name, identifier, and initializer (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
+
+    SingleNameBinding : BindingIdentifier Initializeropt
+
+    [...]
+    8. Return InitializeReferencedBinding(lhs, v).
+---*/
+
+var callCount = 0;
+var f;
+f = ({ x: y = 33 }) => {
+  assert.sameValue(y, 33);
+  assert.throws(ReferenceError, function() {
+    x;
+  });
+  callCount = callCount + 1;
+};
+
+f({ });
+assert.sameValue(callCount, 1, 'arrow function invoked exactly once');
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-id-trailing-comma.js
@@ -0,0 +1,62 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-prop-id-trailing-comma.case
+// - src/dstr-binding/default/arrow-function.template
+/*---
+description: Trailing comma is allowed following BindingPropertyList (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3 Destructuring Binding Patterns
+
+    ObjectBindingPattern[Yield] :
+        { }
+        { BindingPropertyList[?Yield] }
+        { BindingPropertyList[?Yield] , }
+---*/
+
+var callCount = 0;
+var f;
+f = ({ x: y, }) => {
+  assert.sameValue(y, 23);
+
+  assert.throws(ReferenceError, function() {
+    x;
+  });
+  callCount = callCount + 1;
+};
+
+f({ x: 23 });
+assert.sameValue(callCount, 1, 'arrow function invoked exactly once');
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-id.js
@@ -0,0 +1,61 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-prop-id.case
+// - src/dstr-binding/default/arrow-function.template
+/*---
+description: Binding as specified via property name and identifier (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
+
+    SingleNameBinding : BindingIdentifier Initializeropt
+
+    [...]
+    8. Return InitializeReferencedBinding(lhs, v).
+---*/
+
+var callCount = 0;
+var f;
+f = ({ x: y }) => {
+  assert.sameValue(y, 23);
+  assert.throws(ReferenceError, function() {
+    x;
+  });
+  callCount = callCount + 1;
+};
+
+f({ x: 23 });
+assert.sameValue(callCount, 1, 'arrow function invoked exactly once');
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-obj-init.js
@@ -0,0 +1,67 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-prop-obj-init.case
+// - src/dstr-binding/default/arrow-function.template
+/*---
+description: Object binding pattern with "nested" object binding pattern using initializer (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
+
+    [...]
+    3. If Initializer is present and v is undefined, then
+       a. Let defaultValue be the result of evaluating Initializer.
+       b. Let v be GetValue(defaultValue).
+       c. ReturnIfAbrupt(v).
+    4. Return the result of performing BindingInitialization for BindingPattern
+       passing v and environment as arguments.
+---*/
+
+var callCount = 0;
+var f;
+f = ({ w: { x, y, z } = { x: 4, y: 5, z: 6 } }) => {
+  assert.sameValue(x, 4);
+  assert.sameValue(y, 5);
+  assert.sameValue(z, 6);
+
+  assert.throws(ReferenceError, function() {
+    w;
+  });
+  callCount = callCount + 1;
+};
+
+f({ w: undefined });
+assert.sameValue(callCount, 1, 'arrow function invoked exactly once');
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-obj-value-null.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-prop-obj-value-null.case
+// - src/dstr-binding/error/arrow-function.template
+/*---
+description: Object binding pattern with "nested" object binding pattern taking the `null` value (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
+
+    [...]
+    3. If Initializer is present and v is undefined, then
+       [...]
+    4. Return the result of performing BindingInitialization for BindingPattern
+       passing v and environment as arguments.
+---*/
+
+var f = ({ w: { x, y, z } = { x: 4, y: 5, z: 6 } }) => {};
+
+assert.throws(TypeError, function() {
+  f({ w: null });
+});
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-obj-value-undef.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-prop-obj-value-undef.case
+// - src/dstr-binding/error/arrow-function.template
+/*---
+description: Object binding pattern with "nested" object binding pattern taking the `null` value (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
+
+    [...]
+    3. If Initializer is present and v is undefined, then
+       [...]
+    4. Return the result of performing BindingInitialization for BindingPattern
+       passing v and environment as arguments.
+---*/
+
+var f = ({ w: { x, y, z } = undefined }) => {};
+
+assert.throws(TypeError, function() {
+  f({ });
+});
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-prop-obj.js
@@ -0,0 +1,65 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-prop-obj.case
+// - src/dstr-binding/default/arrow-function.template
+/*---
+description: Object binding pattern with "nested" object binding pattern not using initializer (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+
+    13.3.3.7 Runtime Semantics: KeyedBindingInitialization
+
+    [...]
+    3. If Initializer is present and v is undefined, then
+       [...]
+    4. Return the result of performing BindingInitialization for BindingPattern
+       passing v and environment as arguments.
+---*/
+
+var callCount = 0;
+var f;
+f = ({ w: { x, y, z } = { x: 4, y: 5, z: 6 } }) => {
+  assert.sameValue(x, undefined);
+  assert.sameValue(y, undefined);
+  assert.sameValue(z, 7);
+
+  assert.throws(ReferenceError, function() {
+    w;
+  });
+  callCount = callCount + 1;
+};
+
+f({ w: { x: undefined, z: 7 } });
+assert.sameValue(callCount, 1, 'arrow function invoked exactly once');
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-rest-getter.js
@@ -0,0 +1,60 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-rest-getter.case
+// - src/dstr-binding/default/arrow-function.template
+/*---
+description: Getter is called when obj is being deconstructed to a rest Object (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [object-rest, destructuring-binding]
+flags: [generated]
+includes: [propertyHelper.js]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+---*/
+var count = 0;
+
+var callCount = 0;
+var f;
+f = ({...x}) => {
+  assert.sameValue(count, 1);
+
+  verifyProperty(x, "v", {
+    enumerable: true,
+    writable: true,
+    configurable: true,
+    value: 2
+  });
+  callCount = callCount + 1;
+};
+
+f({ get v() { count++; return 2; } });
+assert.sameValue(callCount, 1, 'arrow function invoked exactly once');
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-rest-skip-non-enumerable.js
@@ -0,0 +1,68 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-rest-skip-non-enumerable.case
+// - src/dstr-binding/default/arrow-function.template
+/*---
+description: Rest object doesn't contain non-enumerable properties (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [object-rest, destructuring-binding]
+flags: [generated]
+includes: [propertyHelper.js]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+---*/
+var o = {a: 3, b: 4};
+Object.defineProperty(o, "x", { value: 4, enumerable: false });
+
+var callCount = 0;
+var f;
+f = ({...rest}) => {
+  assert.sameValue(rest.x, undefined);
+
+  verifyProperty(rest, "a", {
+    enumerable: true,
+    writable: true,
+    configurable: true,
+    value: 3
+  });
+
+  verifyProperty(rest, "b", {
+    enumerable: true,
+    writable: true,
+    configurable: true,
+    value: 4
+  });
+  callCount = callCount + 1;
+};
+
+f(o);
+assert.sameValue(callCount, 1, 'arrow function invoked exactly once');
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/arrow-function/dstr/obj-ptrn-rest-val-obj.js
@@ -0,0 +1,67 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-binding/obj-ptrn-rest-val-obj.case
+// - src/dstr-binding/default/arrow-function.template
+/*---
+description: Rest object contains just unextracted data (arrow function expression)
+esid: sec-arrow-function-definitions-runtime-semantics-evaluation
+es6id: 14.2.16
+features: [object-rest, destructuring-binding]
+flags: [generated]
+includes: [propertyHelper.js]
+info: |
+    ArrowFunction : ArrowParameters => ConciseBody
+
+    [...]
+    4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict).
+    [...]
+
+    9.2.1 [[Call]] ( thisArgument, argumentsList)
+
+    [...]
+    7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
+    [...]
+
+    9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
+
+    1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
+    [...]
+
+    9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
+
+    [...]
+    23. Let iteratorRecord be Record {[[iterator]]:
+        CreateListIterator(argumentsList), [[done]]: false}.
+    24. If hasDuplicates is true, then
+        [...]
+    25. Else,
+        b. Let formalStatus be IteratorBindingInitialization for formals with
+           iteratorRecord and env as arguments.
+    [...]
+---*/
+
+var callCount = 0;
+var f;
+f = ({a, b, ...rest}) => {
+  assert.sameValue(rest.a, undefined);
+  assert.sameValue(rest.b, undefined);
+
+  verifyProperty(rest, "x", {
+    enumerable: true,
+    writable: true,
+    configurable: true,
+    value: 1
+  });
+
+  verifyProperty(rest, "y", {
+    enumerable: true,
+    writable: true,
+    configurable: true,
+    value: 2
+  });
+  callCount = callCount + 1;
+};
+
+f({x: 1, y: 2, a: 5, b: 3});
+assert.sameValue(callCount, 1, 'arrow function invoked exactly once');
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/assignment/dstr/obj-empty-bool.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-assignment/obj-empty-bool.case
+// - src/dstr-assignment/default/assignment-expr.template
+/*---
+description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (boolean value) (AssignmentExpression)
+esid: sec-variable-statement-runtime-semantics-evaluation
+es6id: 13.3.2.4
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    VariableDeclaration : BindingPattern Initializer
+
+    1. Let rhs be the result of evaluating Initializer.
+    2. Let rval be GetValue(rhs).
+    3. ReturnIfAbrupt(rval).
+    4. Return the result of performing BindingInitialization for
+       BindingPattern passing rval and undefined as arguments.
+---*/
+
+var result;
+var vals = false;
+
+result = {} = vals;
+
+
+
+assert.sameValue(result, vals);
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/assignment/dstr/obj-empty-null.js
@@ -0,0 +1,24 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-assignment/obj-empty-null.case
+// - src/dstr-assignment/error/assignment-expr.template
+/*---
+description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (null value) (AssignmentExpression)
+esid: sec-variable-statement-runtime-semantics-evaluation
+es6id: 13.3.2.4
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    VariableDeclaration : BindingPattern Initializer
+
+    1. Let rhs be the result of evaluating Initializer.
+    2. Let rval be GetValue(rhs).
+    3. ReturnIfAbrupt(rval).
+    4. Return the result of performing BindingInitialization for
+       BindingPattern passing rval and undefined as arguments.
+---*/
+
+assert.throws(TypeError, function() {
+  0, {} = null;
+});
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/assignment/dstr/obj-empty-num.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-assignment/obj-empty-num.case
+// - src/dstr-assignment/default/assignment-expr.template
+/*---
+description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (number value) (AssignmentExpression)
+esid: sec-variable-statement-runtime-semantics-evaluation
+es6id: 13.3.2.4
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    VariableDeclaration : BindingPattern Initializer
+
+    1. Let rhs be the result of evaluating Initializer.
+    2. Let rval be GetValue(rhs).
+    3. ReturnIfAbrupt(rval).
+    4. Return the result of performing BindingInitialization for
+       BindingPattern passing rval and undefined as arguments.
+---*/
+
+var result;
+var vals = 0;
+
+result = {} = vals;
+
+
+
+assert.sameValue(result, vals);
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/assignment/dstr/obj-empty-obj.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-assignment/obj-empty-obj.case
+// - src/dstr-assignment/default/assignment-expr.template
+/*---
+description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (object value) (AssignmentExpression)
+esid: sec-variable-statement-runtime-semantics-evaluation
+es6id: 13.3.2.4
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    VariableDeclaration : BindingPattern Initializer
+
+    1. Let rhs be the result of evaluating Initializer.
+    2. Let rval be GetValue(rhs).
+    3. ReturnIfAbrupt(rval).
+    4. Return the result of performing BindingInitialization for
+       BindingPattern passing rval and undefined as arguments.
+---*/
+
+var result;
+var vals = {};
+
+result = {} = vals;
+
+
+
+assert.sameValue(result, vals);
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/assignment/dstr/obj-empty-string.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-assignment/obj-empty-string.case
+// - src/dstr-assignment/default/assignment-expr.template
+/*---
+description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (string value) (AssignmentExpression)
+esid: sec-variable-statement-runtime-semantics-evaluation
+es6id: 13.3.2.4
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    VariableDeclaration : BindingPattern Initializer
+
+    1. Let rhs be the result of evaluating Initializer.
+    2. Let rval be GetValue(rhs).
+    3. ReturnIfAbrupt(rval).
+    4. Return the result of performing BindingInitialization for
+       BindingPattern passing rval and undefined as arguments.
+---*/
+
+var result;
+var vals = '';
+
+result = {} = vals;
+
+
+
+assert.sameValue(result, vals);
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/assignment/dstr/obj-empty-symbol.js
@@ -0,0 +1,30 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-assignment/obj-empty-symbol.case
+// - src/dstr-assignment/default/assignment-expr.template
+/*---
+description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (symbol value) (AssignmentExpression)
+esid: sec-variable-statement-runtime-semantics-evaluation
+es6id: 13.3.2.4
+features: [Symbol, destructuring-binding]
+flags: [generated]
+info: |
+    VariableDeclaration : BindingPattern Initializer
+
+    1. Let rhs be the result of evaluating Initializer.
+    2. Let rval be GetValue(rhs).
+    3. ReturnIfAbrupt(rval).
+    4. Return the result of performing BindingInitialization for
+       BindingPattern passing rval and undefined as arguments.
+---*/
+var s = Symbol();
+
+var result;
+var vals = s;
+
+result = {} = vals;
+
+
+
+assert.sameValue(result, vals);
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/assignment/dstr/obj-empty-undef.js
@@ -0,0 +1,24 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-assignment/obj-empty-undef.case
+// - src/dstr-assignment/error/assignment-expr.template
+/*---
+description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (undefined value) (AssignmentExpression)
+esid: sec-variable-statement-runtime-semantics-evaluation
+es6id: 13.3.2.4
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    VariableDeclaration : BindingPattern Initializer
+
+    1. Let rhs be the result of evaluating Initializer.
+    2. Let rval be GetValue(rhs).
+    3. ReturnIfAbrupt(rval).
+    4. Return the result of performing BindingInitialization for
+       BindingPattern passing rval and undefined as arguments.
+---*/
+
+assert.throws(TypeError, function() {
+  0, {} = undefined;
+});
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/assignment/dstr/obj-id-identifier-resolution-first.js
@@ -0,0 +1,31 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-assignment/obj-id-identifier-resolution-first.case
+// - src/dstr-assignment/default/assignment-expr.template
+/*---
+description: Evaluation of DestructuringAssignmentTarget (first of many) (AssignmentExpression)
+esid: sec-variable-statement-runtime-semantics-evaluation
+es6id: 13.3.2.4
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    VariableDeclaration : BindingPattern Initializer
+
+    1. Let rhs be the result of evaluating Initializer.
+    2. Let rval be GetValue(rhs).
+    3. ReturnIfAbrupt(rval).
+    4. Return the result of performing BindingInitialization for
+       BindingPattern passing rval and undefined as arguments.
+---*/
+var x = null;
+var y;
+
+var result;
+var vals = { x: 3 };
+
+result = { x, y } = vals;
+
+assert.sameValue(x, 3);
+
+assert.sameValue(result, vals);
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/assignment/dstr/obj-id-identifier-resolution-last.js
@@ -0,0 +1,31 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-assignment/obj-id-identifier-resolution-last.case
+// - src/dstr-assignment/default/assignment-expr.template
+/*---
+description: Evaluation of DestructuringAssignmentTarget (last of many) (AssignmentExpression)
+esid: sec-variable-statement-runtime-semantics-evaluation
+es6id: 13.3.2.4
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    VariableDeclaration : BindingPattern Initializer
+
+    1. Let rhs be the result of evaluating Initializer.
+    2. Let rval be GetValue(rhs).
+    3. ReturnIfAbrupt(rval).
+    4. Return the result of performing BindingInitialization for
+       BindingPattern passing rval and undefined as arguments.
+---*/
+var x = null;
+var w;
+
+var result;
+var vals = { x: 4 };
+
+result = { w, x } = vals;
+
+assert.sameValue(x, 4);
+
+assert.sameValue(result, vals);
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/assignment/dstr/obj-id-identifier-resolution-lone.js
@@ -0,0 +1,30 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-assignment/obj-id-identifier-resolution-lone.case
+// - src/dstr-assignment/default/assignment-expr.template
+/*---
+description: Evaluation of DestructuringAssignmentTarget (lone identifier) (AssignmentExpression)
+esid: sec-variable-statement-runtime-semantics-evaluation
+es6id: 13.3.2.4
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    VariableDeclaration : BindingPattern Initializer
+
+    1. Let rhs be the result of evaluating Initializer.
+    2. Let rval be GetValue(rhs).
+    3. ReturnIfAbrupt(rval).
+    4. Return the result of performing BindingInitialization for
+       BindingPattern passing rval and undefined as arguments.
+---*/
+var x = null;
+
+var result;
+var vals = { x: 2 };
+
+result = { x, } = vals;
+
+assert.sameValue(x, 2);
+
+assert.sameValue(result, vals);
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/assignment/dstr/obj-id-identifier-resolution-middle.js
@@ -0,0 +1,31 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-assignment/obj-id-identifier-resolution-middle.case
+// - src/dstr-assignment/default/assignment-expr.template
+/*---
+description: Evaluation of DestructuringAssignmentTarget (within many) (AssignmentExpression)
+esid: sec-variable-statement-runtime-semantics-evaluation
+es6id: 13.3.2.4
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    VariableDeclaration : BindingPattern Initializer
+
+    1. Let rhs be the result of evaluating Initializer.
+    2. Let rval be GetValue(rhs).
+    3. ReturnIfAbrupt(rval).
+    4. Return the result of performing BindingInitialization for
+       BindingPattern passing rval and undefined as arguments.
+---*/
+var x = null;
+var w, y;
+
+var result;
+var vals = { x: 5 };
+
+result = { w, x, y } = vals;
+
+assert.sameValue(x, 5);
+
+assert.sameValue(result, vals);
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/assignment/dstr/obj-id-identifier-resolution-trlng.js
@@ -0,0 +1,30 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-assignment/obj-id-identifier-resolution-trlng.case
+// - src/dstr-assignment/default/assignment-expr.template
+/*---
+description: Evaluation of DestructuringAssignmentTarget (lone identifier with trailing comma) (AssignmentExpression)
+esid: sec-variable-statement-runtime-semantics-evaluation
+es6id: 13.3.2.4
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    VariableDeclaration : BindingPattern Initializer
+
+    1. Let rhs be the result of evaluating Initializer.
+    2. Let rval be GetValue(rhs).
+    3. ReturnIfAbrupt(rval).
+    4. Return the result of performing BindingInitialization for
+       BindingPattern passing rval and undefined as arguments.
+---*/
+var x = null;
+
+var result;
+var vals = { x: 1 };
+
+result = { x } = vals;
+
+assert.sameValue(x, 1);
+
+assert.sameValue(result, vals);
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/assignment/dstr/obj-id-identifier-yield-expr.js
@@ -0,0 +1,28 @@
+// |reftest| error:SyntaxError
+// This file was procedurally generated from the following sources:
+// - src/dstr-assignment/obj-id-identifier-yield-expr.case
+// - src/dstr-assignment/syntax/assignment-expr.template
+/*---
+description: yield is not a valid IdentifierReference in an AssignmentProperty within generator function bodies. (AssignmentExpression)
+esid: sec-variable-statement-runtime-semantics-evaluation
+es6id: 13.3.2.4
+features: [generators, destructuring-binding]
+flags: [generated, noStrict]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    VariableDeclaration : BindingPattern Initializer
+
+    1. Let rhs be the result of evaluating Initializer.
+    2. Let rval be GetValue(rhs).
+    3. ReturnIfAbrupt(rval).
+    4. Return the result of performing BindingInitialization for
+       BindingPattern passing rval and undefined as arguments.
+---*/
+$DONOTEVALUATE();
+(function*() {
+
+0, { yield } = {};
+
+});
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/assignment/dstr/obj-id-identifier-yield-ident-invalid-strict.js
@@ -0,0 +1,26 @@
+// |reftest| error:SyntaxError
+'use strict';
+// This file was procedurally generated from the following sources:
+// - src/dstr-assignment/obj-id-identifier-yield-ident-invalid.case
+// - src/dstr-assignment/syntax/assignment-expr.template
+/*---
+description: yield is not a valid IdentifierReference in an AssignmentProperty within strict mode code. (AssignmentExpression)
+esid: sec-variable-statement-runtime-semantics-evaluation
+es6id: 13.3.2.4
+features: [destructuring-binding]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    VariableDeclaration : BindingPattern Initializer
+
+    1. Let rhs be the result of evaluating Initializer.
+    2. Let rval be GetValue(rhs).
+    3. ReturnIfAbrupt(rval).
+    4. Return the result of performing BindingInitialization for
+       BindingPattern passing rval and undefined as arguments.
+---*/
+$DONOTEVALUATE();
+
+0, { yield } = {};
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/assignment/dstr/obj-id-identifier-yield-ident-valid.js
@@ -0,0 +1,30 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-assignment/obj-id-identifier-yield-ident-valid.case
+// - src/dstr-assignment/default/assignment-expr.template
+/*---
+description: yield is a valid IdentifierReference in an AssignmentProperty outside of strict mode and generator functions. (AssignmentExpression)
+esid: sec-variable-statement-runtime-semantics-evaluation
+es6id: 13.3.2.4
+features: [destructuring-binding]
+flags: [generated, noStrict]
+info: |
+    VariableDeclaration : BindingPattern Initializer
+
+    1. Let rhs be the result of evaluating Initializer.
+    2. Let rval be GetValue(rhs).
+    3. ReturnIfAbrupt(rval).
+    4. Return the result of performing BindingInitialization for
+       BindingPattern passing rval and undefined as arguments.
+---*/
+var yield;
+
+var result;
+var vals = { yield: 3 };
+
+result = { yield } = vals;
+
+assert.sameValue(yield, 3);
+
+assert.sameValue(result, vals);
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-assignment-missing.js
@@ -0,0 +1,30 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-assignment/obj-id-init-assignment-missing.case
+// - src/dstr-assignment/default/assignment-expr.template
+/*---
+description: If the Initializer is present and v is undefined, the Initializer should be evaluated and the result assigned to the target reference (no corresponding property defined). (AssignmentExpression)
+esid: sec-variable-statement-runtime-semantics-evaluation
+es6id: 13.3.2.4
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    VariableDeclaration : BindingPattern Initializer
+
+    1. Let rhs be the result of evaluating Initializer.
+    2. Let rval be GetValue(rhs).
+    3. ReturnIfAbrupt(rval).
+    4. Return the result of performing BindingInitialization for
+       BindingPattern passing rval and undefined as arguments.
+---*/
+var x;
+
+var result;
+var vals = {};
+
+result = { x = 1 } = vals;
+
+assert.sameValue(x, 1);
+
+assert.sameValue(result, vals);
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-assignment-null.js
@@ -0,0 +1,30 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-assignment/obj-id-init-assignment-null.case
+// - src/dstr-assignment/default/assignment-expr.template
+/*---
+description: If the Initializer is present and v is undefined, the Initializer should be evaluated and the result assigned to the target reference (null property value defined). (AssignmentExpression)
+esid: sec-variable-statement-runtime-semantics-evaluation
+es6id: 13.3.2.4
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    VariableDeclaration : BindingPattern Initializer
+
+    1. Let rhs be the result of evaluating Initializer.
+    2. Let rval be GetValue(rhs).
+    3. ReturnIfAbrupt(rval).
+    4. Return the result of performing BindingInitialization for
+       BindingPattern passing rval and undefined as arguments.
+---*/
+var x;
+
+var result;
+var vals = { x: null };
+
+result = { x = 1 } = vals;
+
+assert.sameValue(x, null);
+
+assert.sameValue(result, vals);
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-assignment-truthy.js
@@ -0,0 +1,30 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-assignment/obj-id-init-assignment-truthy.case
+// - src/dstr-assignment/default/assignment-expr.template
+/*---
+description: If the Initializer is present and v is undefined, the Initializer should be evaluated and the result assigned to the target reference (truthy property value defined). (AssignmentExpression)
+esid: sec-variable-statement-runtime-semantics-evaluation
+es6id: 13.3.2.4
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    VariableDeclaration : BindingPattern Initializer
+
+    1. Let rhs be the result of evaluating Initializer.
+    2. Let rval be GetValue(rhs).
+    3. ReturnIfAbrupt(rval).
+    4. Return the result of performing BindingInitialization for
+       BindingPattern passing rval and undefined as arguments.
+---*/
+var x;
+
+var result;
+var vals = { x: 2 };
+
+result = { x = 1 } = vals;
+
+assert.sameValue(x, 2);
+
+assert.sameValue(result, vals);
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-assignment-undef.js
@@ -0,0 +1,30 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-assignment/obj-id-init-assignment-undef.case
+// - src/dstr-assignment/default/assignment-expr.template
+/*---
+description: If the Initializer is present and v is undefined, the Initializer should be evaluated and the result assigned to the target reference ("undefined" property value defined). (AssignmentExpression)
+esid: sec-variable-statement-runtime-semantics-evaluation
+es6id: 13.3.2.4
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    VariableDeclaration : BindingPattern Initializer
+
+    1. Let rhs be the result of evaluating Initializer.
+    2. Let rval be GetValue(rhs).
+    3. ReturnIfAbrupt(rval).
+    4. Return the result of performing BindingInitialization for
+       BindingPattern passing rval and undefined as arguments.
+---*/
+var x;
+
+var result;
+var vals = { x: undefined };
+
+result = { x = 1 } = vals;
+
+assert.sameValue(x, 1);
+
+assert.sameValue(result, vals);
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-evaluation.js
@@ -0,0 +1,33 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-assignment/obj-id-init-evaluation.case
+// - src/dstr-assignment/default/assignment-expr.template
+/*---
+description: The Initializer should only be evaluated if v is undefined. (AssignmentExpression)
+esid: sec-variable-statement-runtime-semantics-evaluation
+es6id: 13.3.2.4
+features: [destructuring-binding]
+flags: [generated]
+info: |
+    VariableDeclaration : BindingPattern Initializer
+
+    1. Let rhs be the result of evaluating Initializer.
+    2. Let rval be GetValue(rhs).
+    3. ReturnIfAbrupt(rval).
+    4. Return the result of performing BindingInitialization for
+       BindingPattern passing rval and undefined as arguments.
+---*/
+var flag1 = false;
+var flag2 = false;
+var x, y;
+
+var result;
+var vals = { y: 1 };
+
+result = { x = flag1 = true, y = flag2 = true } = vals;
+
+assert.sameValue(flag1, true);
+assert.sameValue(flag2, false);
+
+assert.sameValue(result, vals);
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-fn-name-arrow.js
@@ -0,0 +1,45 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-assignment/obj-id-init-fn-name-arrow.case
+// - src/dstr-assignment/default/assignment-expr.template
+/*---
+description: Assignment of function `name` attribute (ArrowFunction) (AssignmentExpression)
+esid: sec-variable-statement-runtime-semantics-evaluation
+es6id: 13.3.2.4
+features: [destructuring-binding]
+flags: [generated]
+includes: [propertyHelper.js]
+info: |
+    VariableDeclaration : BindingPattern Initializer
+
+    1. Let rhs be the result of evaluating Initializer.
+    2. Let rval be GetValue(rhs).
+    3. ReturnIfAbrupt(rval).
+    4. Return the result of performing BindingInitialization for
+       BindingPattern passing rval and undefined as arguments.
+
+    AssignmentProperty : IdentifierReference Initializeropt
+    [...] 6. If Initializeropt is present and v is undefined, then
+       [...]
+       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
+          i. Let hasNameProperty be HasOwnProperty(v, "name").
+          ii. ReturnIfAbrupt(hasNameProperty).
+          iii. If hasNameProperty is false, perform SetFunctionName(v, P).
+
+---*/
+var arrow;
+
+var result;
+var vals = {};
+
+result = { arrow = () => {} } = vals;
+
+verifyProperty(arrow, 'name', {
+  enumerable: false,
+  writable: false,
+  configurable: true,
+  value: 'arrow'
+});
+
+assert.sameValue(result, vals);
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-fn-name-class.js
@@ -0,0 +1,48 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-assignment/obj-id-init-fn-name-class.case
+// - src/dstr-assignment/default/assignment-expr.template
+/*---
+description: Assignment of function `name` attribute (ClassExpression) (AssignmentExpression)
+esid: sec-variable-statement-runtime-semantics-evaluation
+es6id: 13.3.2.4
+features: [class, destructuring-binding]
+flags: [generated]
+includes: [propertyHelper.js]
+info: |
+    VariableDeclaration : BindingPattern Initializer
+
+    1. Let rhs be the result of evaluating Initializer.
+    2. Let rval be GetValue(rhs).
+    3. ReturnIfAbrupt(rval).
+    4. Return the result of performing BindingInitialization for
+       BindingPattern passing rval and undefined as arguments.
+
+    AssignmentProperty : IdentifierReference Initializeropt
+    [...] 6. If Initializeropt is present and v is undefined, then
+       [...]
+       d. If IsAnonymousFunctionDefinition(Initializer) is true, then
+          i. Let hasNameProperty be HasOwnProperty(v, "name").
+          ii. ReturnIfAbrupt(hasNameProperty).
+          iii. If hasNameProperty is false, perform SetFunctionName(v, P).
+
+---*/
+var xCls, cls, xCls2;
+
+var result;
+var vals = {};
+
+result = { xCls = class x {}, cls = class {}, xCls2 = class { static name() {} } } = vals;
+
+assert.notSameValue(xCls.name, 'xCls');
+assert.notSameValue(xCls2.name, 'xCls2');
+
+verifyProperty(cls, 'name', {
+  enumerable: false,
+  writable: false,
+  configurable: true,
+  value: 'cls'
+});
+
+assert.sameValue(result, vals);
+
+reportCompare(0, 0);
new file mode 100644
--- /dev/null
+++ b/js/src/tests/test262/language/expressions/assignment/dstr/obj-id-init-fn-name-cover.js
@@ -0,0 +1,47 @@
+// This file was procedurally generated from the following sources:
+// - src/dstr-assignment/obj-id-init-fn-name-cover.case
+// - src/dstr-assignment/default/assignment-expr.template
+/*---
+description: Assignment of function `name` attribute (CoverParenthesizedExpression) (AssignmentExpression)
+esid: sec-variable-statement-runtime-semantics-evaluation
+es6id: 13.3.2.4
+features: [destructuring-binding]
+flags: [generated]
+includes: [propertyHelper.js]
+info: |
+    VariableDeclaration : BindingPattern Initializer
+
+    1. Let rhs be the result of evaluating Initializer.
+    2. Let rval be GetValue(rhs).
+    3. ReturnIfAbrupt(rval).