From 44e19a0fe6381c85cf428b08fb244eaf54bbc522 Mon Sep 17 00:00:00 2001 From: Rick Waldron <waldron.rick@gmail.com> Date: Mon, 12 Jun 2017 17:08:59 -0400 Subject: [PATCH] Throw away tests Signed-off-by: Rick Waldron <waldron.rick@gmail.com> --- .../dstr-array-elem-init-assignment.js | 44 -------- .../dstr-array-elem-init-evaluation.js | 42 -------- .../dstr-array-elem-init-fn-name-arrow.js | 54 ---------- .../dstr-array-elem-init-fn-name-class.js | 57 ---------- .../dstr-array-elem-init-fn-name-cover.js | 56 ---------- .../dstr-array-elem-init-fn-name-fn.js | 56 ---------- .../dstr-array-elem-init-fn-name-gen.js | 56 ---------- .../for-await-of/dstr-array-elem-init-in.js | 40 ------- .../dstr-array-elem-init-order.js | 43 -------- .../dstr-array-elem-init-simple-no-strict.js | 41 ------- .../dstr-array-elem-init-yield-expr.js | 56 ---------- .../dstr-array-elem-init-yield-ident-valid.js | 41 ------- .../dstr-array-elem-iter-nrml-close-skip.js | 64 ----------- .../dstr-array-elem-iter-nrml-close.js | 80 -------------- .../dstr-array-elem-iter-rtrn-close-err.js | 79 -------------- .../dstr-array-elem-iter-rtrn-close-null.js | 76 ------------- .../dstr-array-elem-iter-rtrn-close.js | 86 --------------- ...dstr-array-elem-nested-array-yield-expr.js | 58 ---------- ...ray-elem-nested-array-yield-ident-valid.js | 41 ------- .../dstr-array-elem-nested-array.js | 40 ------- .../dstr-array-elem-nested-obj-yield-expr.js | 56 ---------- ...array-elem-nested-obj-yield-ident-valid.js | 41 ------- .../dstr-array-elem-nested-obj.js | 40 ------- .../dstr-array-elem-put-prop-ref-no-get.js | 48 --------- .../dstr-array-elem-put-prop-ref.js | 40 ------- ...r-array-elem-put-unresolvable-no-strict.js | 44 -------- .../dstr-array-elem-target-identifier.js | 42 -------- ...dstr-array-elem-target-simple-no-strict.js | 41 ------- .../dstr-array-elem-target-yield-expr.js | 58 ---------- .../dstr-array-elem-target-yield-valid.js | 41 ------- ...-trlg-iter-elision-iter-nrml-close-skip.js | 72 ------------- ...-elem-trlg-iter-elision-iter-nrml-close.js | 87 --------------- ...ray-elem-trlg-iter-list-nrml-close-skip.js | 73 ------------- ...tr-array-elem-trlg-iter-list-nrml-close.js | 86 --------------- ...rray-elem-trlg-iter-list-rtrn-close-err.js | 86 --------------- ...ray-elem-trlg-iter-list-rtrn-close-null.js | 83 -------------- ...tr-array-elem-trlg-iter-list-rtrn-close.js | 94 ---------------- ...ray-elem-trlg-iter-rest-nrml-close-skip.js | 73 ------------- ...rray-elem-trlg-iter-rest-rtrn-close-err.js | 95 ---------------- ...ray-elem-trlg-iter-rest-rtrn-close-null.js | 90 ---------------- ...tr-array-elem-trlg-iter-rest-rtrn-close.js | 101 ----------------- ...dstr-array-elision-iter-nrml-close-skip.js | 65 ----------- .../dstr-array-elision-iter-nrml-close.js | 80 -------------- .../dstr-array-elision-val-array.js | 39 ------- .../dstr-array-elision-val-string.js | 39 ------- .../dstr-array-empty-iter-close.js | 76 ------------- .../dstr-array-empty-val-array.js | 39 ------- .../dstr-array-empty-val-string.js | 39 ------- .../for-await-of/dstr-array-iteration.js | 47 -------- .../dstr-array-rest-after-element.js | 43 -------- .../dstr-array-rest-after-elision.js | 42 -------- .../for-await-of/dstr-array-rest-elision.js | 43 -------- .../dstr-array-rest-iter-nrml-close-skip.js | 67 ------------ .../dstr-array-rest-iter-rtrn-close-err.js | 91 ---------------- .../dstr-array-rest-iter-rtrn-close-null.js | 90 ---------------- .../dstr-array-rest-iter-rtrn-close.js | 102 ------------------ .../for-await-of/dstr-array-rest-iteration.js | 48 --------- .../for-await-of/dstr-array-rest-lref.js | 76 ------------- .../dstr-array-rest-nested-array-null.js | 41 ------- ...-array-rest-nested-array-undefined-hole.js | 40 ------- ...r-array-rest-nested-array-undefined-own.js | 40 ------- .../dstr-array-rest-nested-array-undefined.js | 40 ------- ...dstr-array-rest-nested-array-yield-expr.js | 58 ---------- ...ray-rest-nested-array-yield-ident-valid.js | 41 ------- .../dstr-array-rest-nested-array.js | 40 ------- .../dstr-array-rest-nested-obj-null.js | 41 ------- ...tr-array-rest-nested-obj-undefined-hole.js | 44 -------- ...str-array-rest-nested-obj-undefined-own.js | 44 -------- .../dstr-array-rest-nested-obj-undefined.js | 44 -------- .../dstr-array-rest-nested-obj-yield-expr.js | 56 ---------- ...array-rest-nested-obj-yield-ident-valid.js | 41 ------- .../dstr-array-rest-nested-obj.js | 40 ------- .../dstr-array-rest-put-prop-ref-no-get.js | 51 --------- .../dstr-array-rest-put-prop-ref.js | 43 -------- ...r-array-rest-put-unresolvable-no-strict.js | 44 -------- .../dstr-array-rest-yield-expr.js | 60 ----------- .../dstr-array-rest-yield-ident-valid.js | 44 -------- .../for-await-of/dstr-obj-empty-bool.js | 39 ------- .../for-await-of/dstr-obj-empty-num.js | 39 ------- .../for-await-of/dstr-obj-empty-obj.js | 39 ------- .../for-await-of/dstr-obj-empty-string.js | 39 ------- .../for-await-of/dstr-obj-empty-symbol.js | 40 ------- ...dstr-obj-id-identifier-resolution-first.js | 41 ------- .../dstr-obj-id-identifier-resolution-last.js | 41 ------- .../dstr-obj-id-identifier-resolution-lone.js | 40 ------- ...str-obj-id-identifier-resolution-middle.js | 41 ------- ...dstr-obj-id-identifier-resolution-trlng.js | 40 ------- ...str-obj-id-identifier-yield-ident-valid.js | 40 ------- .../dstr-obj-id-init-assignment-missing.js | 40 ------- .../dstr-obj-id-init-assignment-null.js | 40 ------- .../dstr-obj-id-init-assignment-truthy.js | 40 ------- .../dstr-obj-id-init-assignment-undef.js | 40 ------- .../dstr-obj-id-init-evaluation.js | 43 -------- .../dstr-obj-id-init-fn-name-arrow.js | 53 --------- .../dstr-obj-id-init-fn-name-class.js | 56 ---------- .../dstr-obj-id-init-fn-name-cover.js | 55 ---------- .../dstr-obj-id-init-fn-name-fn.js | 55 ---------- .../dstr-obj-id-init-fn-name-gen.js | 55 ---------- .../for-await-of/dstr-obj-id-init-in.js | 40 ------- .../for-await-of/dstr-obj-id-init-order.js | 43 -------- .../dstr-obj-id-init-simple-no-strict.js | 41 ------- .../dstr-obj-id-init-yield-expr.js | 56 ---------- .../dstr-obj-id-init-yield-ident-valid.js | 41 ------- .../dstr-obj-id-put-unresolvable-no-strict.js | 44 -------- .../dstr-obj-id-simple-no-strict.js | 43 -------- ...r-obj-prop-elem-init-assignment-missing.js | 40 ------- ...dstr-obj-prop-elem-init-assignment-null.js | 40 ------- ...tr-obj-prop-elem-init-assignment-truthy.js | 40 ------- ...str-obj-prop-elem-init-assignment-undef.js | 40 ------- .../dstr-obj-prop-elem-init-evaluation.js | 45 -------- .../dstr-obj-prop-elem-init-fn-name-arrow.js | 54 ---------- .../dstr-obj-prop-elem-init-fn-name-class.js | 57 ---------- .../dstr-obj-prop-elem-init-fn-name-cover.js | 56 ---------- .../dstr-obj-prop-elem-init-fn-name-fn.js | 56 ---------- .../dstr-obj-prop-elem-init-fn-name-gen.js | 56 ---------- .../dstr-obj-prop-elem-init-in.js | 40 ------- .../dstr-obj-prop-elem-init-yield-expr.js | 55 ---------- ...tr-obj-prop-elem-init-yield-ident-valid.js | 41 ------- .../dstr-obj-prop-elem-target-yield-expr.js | 57 ---------- ...-obj-prop-elem-target-yield-ident-valid.js | 41 ------- ...tr-obj-prop-identifier-resolution-first.js | 41 ------- ...str-obj-prop-identifier-resolution-last.js | 41 ------- ...str-obj-prop-identifier-resolution-lone.js | 40 ------- ...r-obj-prop-identifier-resolution-middle.js | 41 ------- ...tr-obj-prop-identifier-resolution-trlng.js | 40 ------- .../dstr-obj-prop-name-evaluation.js | 42 -------- .../dstr-obj-prop-nested-array-yield-expr.js | 56 ---------- ...obj-prop-nested-array-yield-ident-valid.js | 41 ------- .../dstr-obj-prop-nested-array.js | 40 ------- .../dstr-obj-prop-nested-obj-yield-expr.js | 56 ---------- ...r-obj-prop-nested-obj-yield-ident-valid.js | 41 ------- .../for-await-of/dstr-obj-prop-nested-obj.js | 40 ------- .../for-await-of/dstr-obj-prop-put-order.js | 40 ------- .../dstr-obj-prop-put-prop-ref-no-get.js | 48 --------- .../dstr-obj-prop-put-prop-ref.js | 40 ------- ...str-obj-prop-put-unresolvable-no-strict.js | 44 -------- .../for-await-of/dstr-obj-rest-descriptors.js | 54 ---------- .../for-await-of/dstr-obj-rest-empty-obj.js | 44 -------- .../for-await-of/dstr-obj-rest-getter.js | 48 --------- .../dstr-obj-rest-nested-obj-nested-rest.js | 55 ---------- .../for-await-of/dstr-obj-rest-nested-obj.js | 45 -------- .../for-await-of/dstr-obj-rest-number.js | 44 -------- .../dstr-obj-rest-obj-own-property.js | 46 -------- .../for-await-of/dstr-obj-rest-same-name.js | 54 ---------- .../dstr-obj-rest-skip-non-enumerable.js | 54 ---------- .../for-await-of/dstr-obj-rest-str-val.js | 45 -------- .../for-await-of/dstr-obj-rest-symbol-val.js | 44 -------- .../dstr-obj-rest-to-property-with-setter.js | 51 --------- .../for-await-of/dstr-obj-rest-to-property.js | 47 -------- .../dstr-obj-rest-valid-object.js | 54 ---------- 150 files changed, 7697 deletions(-) delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-init-assignment.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-init-evaluation.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-init-fn-name-arrow.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-init-fn-name-class.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-init-fn-name-cover.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-init-fn-name-fn.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-init-fn-name-gen.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-init-in.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-init-order.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-init-simple-no-strict.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-init-yield-expr.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-init-yield-ident-valid.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-iter-nrml-close-skip.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-iter-nrml-close.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-iter-rtrn-close-err.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-iter-rtrn-close-null.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-iter-rtrn-close.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-nested-array-yield-expr.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-nested-array-yield-ident-valid.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-nested-array.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-nested-obj-yield-expr.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-nested-obj-yield-ident-valid.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-nested-obj.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-put-prop-ref-no-get.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-put-prop-ref.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-put-unresolvable-no-strict.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-target-identifier.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-target-simple-no-strict.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-target-yield-expr.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-target-yield-valid.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-trlg-iter-elision-iter-nrml-close-skip.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-trlg-iter-elision-iter-nrml-close.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-nrml-close-skip.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-nrml-close.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-rtrn-close-err.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-rtrn-close-null.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-rtrn-close.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-nrml-close-skip.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-rtrn-close-err.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-rtrn-close-null.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-rtrn-close.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elision-iter-nrml-close-skip.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elision-iter-nrml-close.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elision-val-array.js delete mode 100644 test/language/statements/for-await-of/dstr-array-elision-val-string.js delete mode 100644 test/language/statements/for-await-of/dstr-array-empty-iter-close.js delete mode 100644 test/language/statements/for-await-of/dstr-array-empty-val-array.js delete mode 100644 test/language/statements/for-await-of/dstr-array-empty-val-string.js delete mode 100644 test/language/statements/for-await-of/dstr-array-iteration.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-after-element.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-after-elision.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-elision.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-iter-nrml-close-skip.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-iter-rtrn-close-err.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-iter-rtrn-close-null.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-iter-rtrn-close.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-iteration.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-lref.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-nested-array-null.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-nested-array-undefined-hole.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-nested-array-undefined-own.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-nested-array-undefined.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-nested-array-yield-expr.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-nested-array-yield-ident-valid.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-nested-array.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-nested-obj-null.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-nested-obj-undefined-hole.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-nested-obj-undefined-own.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-nested-obj-undefined.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-nested-obj-yield-expr.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-nested-obj-yield-ident-valid.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-nested-obj.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-put-prop-ref-no-get.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-put-prop-ref.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-put-unresolvable-no-strict.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-yield-expr.js delete mode 100644 test/language/statements/for-await-of/dstr-array-rest-yield-ident-valid.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-empty-bool.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-empty-num.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-empty-obj.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-empty-string.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-empty-symbol.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-first.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-last.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-lone.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-middle.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-trlng.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-id-identifier-yield-ident-valid.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-id-init-assignment-missing.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-id-init-assignment-null.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-id-init-assignment-truthy.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-id-init-assignment-undef.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-id-init-evaluation.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-id-init-fn-name-arrow.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-id-init-fn-name-class.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-id-init-fn-name-cover.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-id-init-fn-name-fn.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-id-init-fn-name-gen.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-id-init-in.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-id-init-order.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-id-init-simple-no-strict.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-id-init-yield-expr.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-id-init-yield-ident-valid.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-id-put-unresolvable-no-strict.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-id-simple-no-strict.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-missing.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-null.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-truthy.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-undef.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-elem-init-evaluation.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-arrow.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-class.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-cover.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-fn.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-gen.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-elem-init-in.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-elem-init-yield-expr.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-elem-init-yield-ident-valid.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-elem-target-yield-expr.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-elem-target-yield-ident-valid.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-first.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-last.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-lone.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-middle.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-trlng.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-name-evaluation.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-nested-array-yield-expr.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-nested-array-yield-ident-valid.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-nested-array.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-nested-obj-yield-expr.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-nested-obj-yield-ident-valid.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-nested-obj.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-put-order.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-put-prop-ref-no-get.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-put-prop-ref.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-prop-put-unresolvable-no-strict.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-rest-descriptors.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-rest-empty-obj.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-rest-getter.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-rest-nested-obj-nested-rest.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-rest-nested-obj.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-rest-number.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-rest-obj-own-property.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-rest-same-name.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-rest-skip-non-enumerable.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-rest-str-val.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-rest-symbol-val.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-rest-to-property-with-setter.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-rest-to-property.js delete mode 100644 test/language/statements/for-await-of/dstr-obj-rest-valid-object.js diff --git a/test/language/statements/for-await-of/dstr-array-elem-init-assignment.js b/test/language/statements/for-await-of/dstr-array-elem-init-assignment.js deleted file mode 100644 index 4ec79f5c34..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-init-assignment.js +++ /dev/null @@ -1,44 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-init-assignment.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: If the Initializer is present and v is undefined, the Initializer should be evaluated and the result assigned to the target reference. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var v2, vNull, vHole, vUndefined, vOob; - -var counter = 0; - -async function fn() { - for await ([v2 = 10, vNull = 11, vHole = 12, vUndefined = 13, vOob = 14] of [[2, null, , undefined]]) { - assert.sameValue(v2, 2); - assert.sameValue(vNull, null); - assert.sameValue(vHole, 12); - assert.sameValue(vUndefined, 13); - assert.sameValue(vOob, 14); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-init-evaluation.js b/test/language/statements/for-await-of/dstr-array-elem-init-evaluation.js deleted file mode 100644 index 1b76dff98d..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-init-evaluation.js +++ /dev/null @@ -1,42 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-init-evaluation.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: The Initializer should only be evaluated if v is undefined. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var flag1 = false, flag2 = false; -var _; - -var counter = 0; - -async function fn() { - for await ([ _ = flag1 = true, _ = flag2 = true ] of [[14]]) { - assert.sameValue(flag1, false); - assert.sameValue(flag2, true); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-arrow.js b/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-arrow.js deleted file mode 100644 index fea2d852e2..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-arrow.js +++ /dev/null @@ -1,54 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-init-fn-name-arrow.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (ArrowFunction) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt - [...] 7. If Initializer is present and value is undefined and - IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of - DestructuringAssignmentTarget are both true, then - a. Let hasNameProperty be HasOwnProperty(v, "name"). - b. ReturnIfAbrupt(hasNameProperty). - c. If hasNameProperty is false, perform SetFunctionName(v, - GetReferencedName(lref)). - ----*/ -var arrow; - -var counter = 0; - -async function fn() { - for await ([ arrow = () => {} ] of [[]]) { - assert.sameValue(arrow.name, 'arrow'); - verifyNotEnumerable(arrow, 'name'); - verifyNotWritable(arrow, 'name'); - verifyConfigurable(arrow, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-class.js b/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-class.js deleted file mode 100644 index 37525edcd4..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-class.js +++ /dev/null @@ -1,57 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-init-fn-name-class.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (ClassExpression) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [class, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt - [...] 7. If Initializer is present and value is undefined and - IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of - DestructuringAssignmentTarget are both true, then - a. Let hasNameProperty be HasOwnProperty(v, "name"). - b. ReturnIfAbrupt(hasNameProperty). - c. If hasNameProperty is false, perform SetFunctionName(v, - GetReferencedName(lref)). - ----*/ -var xCls, cls, xCls2; - -var counter = 0; - -async function fn() { - for await ([ xCls = class x {}, cls = class {}, xCls2 = class { static name() {} } ] of [[]]) { - assert(xCls.name !== 'xCls'); - assert(xCls2.name !== 'xCls2'); - - assert.sameValue(cls.name, 'cls'); - verifyNotEnumerable(cls, 'name'); - verifyNotWritable(cls, 'name'); - verifyConfigurable(cls, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-cover.js b/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-cover.js deleted file mode 100644 index fa0fa636c8..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-cover.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-init-fn-name-cover.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (CoverParenthesizedExpression) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt - [...] 7. If Initializer is present and value is undefined and - IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of - DestructuringAssignmentTarget are both true, then - a. Let hasNameProperty be HasOwnProperty(v, "name"). - b. ReturnIfAbrupt(hasNameProperty). - c. If hasNameProperty is false, perform SetFunctionName(v, - GetReferencedName(lref)). - ----*/ -var xCover, cover; - -var counter = 0; - -async function fn() { - for await ([ xCover = (0, function() {}), cover = (function() {}) ] of [[]]) { - assert(xCover.name !== 'xCover'); - - assert.sameValue(cover.name, 'cover'); - verifyNotEnumerable(cover, 'name'); - verifyNotWritable(cover, 'name'); - verifyConfigurable(cover, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-fn.js b/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-fn.js deleted file mode 100644 index 429355375d..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-fn.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-init-fn-name-fn.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (FunctionExpression) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [class, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt - [...] 7. If Initializer is present and value is undefined and - IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of - DestructuringAssignmentTarget are both true, then - a. Let hasNameProperty be HasOwnProperty(v, "name"). - b. ReturnIfAbrupt(hasNameProperty). - c. If hasNameProperty is false, perform SetFunctionName(v, - GetReferencedName(lref)). - ----*/ -var xFn, fn; - -var counter = 0; - -async function fn() { - for await ([ xFn = function x() {}, fn = function() {} ] of [[]]) { - assert(xFn.name !== 'xFn'); - - assert.sameValue(fn.name, 'fn'); - verifyNotEnumerable(fn, 'name'); - verifyNotWritable(fn, 'name'); - verifyConfigurable(fn, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-gen.js b/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-gen.js deleted file mode 100644 index 4bfd111465..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-gen.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-init-fn-name-gen.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (GeneratorExpression) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt - [...] 7. If Initializer is present and value is undefined and - IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of - DestructuringAssignmentTarget are both true, then - a. Let hasNameProperty be HasOwnProperty(v, "name"). - b. ReturnIfAbrupt(hasNameProperty). - c. If hasNameProperty is false, perform SetFunctionName(v, - GetReferencedName(lref)). - ----*/ -var xGen, gen; - -var counter = 0; - -async function fn() { - for await ([ xGen = function* x() {}, gen = function*() {} ] of [[]]) { - assert.notSameValue(xGen.name, 'xGen'); - - assert.sameValue(gen.name, 'gen'); - verifyNotEnumerable(gen, 'name'); - verifyNotWritable(gen, 'name'); - verifyConfigurable(gen, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-init-in.js b/test/language/statements/for-await-of/dstr-array-elem-init-in.js deleted file mode 100644 index 2c35d84b24..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-init-in.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-init-in.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: The Initializer in an AssignmentElement may be an `in` expression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ([ x = 'x' in {} ] of [[]]) { - assert.sameValue(x, false); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-init-order.js b/test/language/statements/for-await-of/dstr-array-elem-init-order.js deleted file mode 100644 index e145fda73d..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-init-order.js +++ /dev/null @@ -1,43 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-init-order.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Initializer values should be assigned in left-to-right order. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = 0; -var a, b; - -var counter = 0; - -async function fn() { - for await ([ a = x += 1, b = x *= 2 ] of [[]]) { - assert.sameValue(a, 1); - assert.sameValue(b, 2); - assert.sameValue(x, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-init-simple-no-strict.js b/test/language/statements/for-await-of/dstr-array-elem-init-simple-no-strict.js deleted file mode 100644 index 91d88807a2..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-init-simple-no-strict.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-init-simple-no-strict.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Identifiers that appear as the DestructuringAssignmentTarget in an AssignmentElement should take on the iterated value corresponding to their position in the ArrayAssignmentPattern. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var argument, eval; - -var counter = 0; - -async function fn() { - for await ([arguments = 4, eval = 5] of [[]]) { - assert.sameValue(arguments, 4); - assert.sameValue(eval, 5); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-init-yield-expr.js b/test/language/statements/for-await-of/dstr-array-elem-init-yield-expr.js deleted file mode 100644 index 0b96787339..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-init-yield-expr.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-init-yield-expr.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the Initializer of an AssignmentElement within a generator function body, it behaves as a YieldExpression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var value = []; -var iterationResult, iter, x; -iter = (function*() { - -var counter = 0; - -async function fn() { - for await ([ x = yield ] of [[]]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -})(); - -iterationResult = iter.next(); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, false); -assert.sameValue(x, undefined); - -iterationResult = iter.next(86); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, true); -assert.sameValue(x, 86); diff --git a/test/language/statements/for-await-of/dstr-array-elem-init-yield-ident-valid.js b/test/language/statements/for-await-of/dstr-array-elem-init-yield-ident-valid.js deleted file mode 100644 index cccf1aec0a..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-init-yield-ident-valid.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-init-yield-ident-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the Initializer of an AssignmentElement outside of a generator function body, it behaves as an IdentifierReference. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield = 4; -var x; - -var counter = 0; - -async function fn() { - for await ([ x = yield ] of [[]]) { - assert.sameValue(x, 4); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-iter-nrml-close-skip.js b/test/language/statements/for-await-of/dstr-array-elem-iter-nrml-close-skip.js deleted file mode 100644 index b891fef4f6..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-iter-nrml-close-skip.js +++ /dev/null @@ -1,64 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-iter-nrml-close-skip.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is not called when assignment evaluation has exhausted the iterator (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : [ AssignmentElementList ] - - [...] - 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). - 6. Return result. - ----*/ -var nextCount = 0; -var returnCount = 0; -var _; -var iterable = {}; -var iterator = { - next: function() { - nextCount += 1; - return { done: true }; - }, - return: function() { - returnCount += 1; - return {}; - } -}; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -var counter = 0; - -async function fn() { - for await ([ _ ] of [iterable]) { - assert.sameValue(nextCount, 1); - assert.sameValue(returnCount, 0); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-iter-nrml-close.js b/test/language/statements/for-await-of/dstr-array-elem-iter-nrml-close.js deleted file mode 100644 index b73afb2079..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-iter-nrml-close.js +++ /dev/null @@ -1,80 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-iter-nrml-close.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is called when assignment evaluation has not exhausted the iterator (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : [ AssignmentElementList ] - - [...] - 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, - result). - 6. Return result. - - 7.4.6 IteratorClose( iterator, completion ) - - [...] - 6. Let innerResult be Call(return, iterator, « »). - [...] - ----*/ -var nextCount = 0; -var returnCount = 0; -var thisValue = null; -var args = null; -var _; -var iterable = {}; -var iterator = { - next: function() { - nextCount += 1; - // Set an upper-bound to limit unnecessary iteration in non-conformant - // implementations - return { done: nextCount > 10 }; - }, - return: function() { - returnCount += 1; - thisValue = this; - args = arguments; - return {}; - } -}; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -var counter = 0; - -async function fn() { - for await ([ _ ] of [iterable]) { - assert.sameValue(nextCount, 1); - assert.sameValue(returnCount, 1); - assert.sameValue(thisValue, iterator, 'correct `this` value'); - assert(!!args, 'arguments object provided'); - assert.sameValue(args.length, 0, 'zero arguments specified'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-iter-rtrn-close-err.js b/test/language/statements/for-await-of/dstr-array-elem-iter-rtrn-close-err.js deleted file mode 100644 index 18efa99076..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-iter-rtrn-close-err.js +++ /dev/null @@ -1,79 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-iter-rtrn-close-err.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is called when reference evaluation produces a "return" completion (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : [ AssignmentElementList ] - - [...] - 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, - result). - 6. Return result. - - 7.4.6 IteratorClose( iterator, completion ) - - [...] - 6. Let innerResult be Call(return, iterator, « »). - 7. If completion.[[type]] is throw, return Completion(completion). - 8. If innerResult.[[type]] is throw, return Completion(innerResult). - ----*/ -var returnCount = 0; -var unreachable = 0; -var iterable = {}; -var iterator = { - return: function() { - returnCount += 1; - throw new Test262Error(); - } -}; -var iter; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -function* g() { - -var counter = 0; - -async function fn() { - for await ([ {}[ yield ] ] of [iterable]) { - unreachable += 1; - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} -iter = g(); -iter.next(); -assert.throws(Test262Error, function() { - iter.return(); -}); - -assert.sameValue(returnCount, 1); -assert.sameValue(unreachable, 0, 'Unreachable statement was not executed'); diff --git a/test/language/statements/for-await-of/dstr-array-elem-iter-rtrn-close-null.js b/test/language/statements/for-await-of/dstr-array-elem-iter-rtrn-close-null.js deleted file mode 100644 index ef43fceeee..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-iter-rtrn-close-null.js +++ /dev/null @@ -1,76 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-iter-rtrn-close-null.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose throws a TypeError when `return` returns a non-Object value (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : [ AssignmentElementList ] - - [...] - 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, - result). - 6. Return result. - - 7.4.6 IteratorClose( iterator, completion ) - - [...] - 6. Let innerResult be Call(return, iterator, « »). - 7. If completion.[[type]] is throw, return Completion(completion). - 8. If innerResult.[[type]] is throw, return Completion(innerResult). - 9. If Type(innerResult.[[value]]) is not Object, throw a TypeError - exception. - ----*/ -var iterable = {}; -var iterator = { - return: function() { - return null; - } -}; -var iter; -iterable[Symbol.iterator] = function() { - return iterator; -}; -function* g() { - -var counter = 0; - -async function fn() { - for await ([ {}[yield] ] of [iterable]) { - unreachable += 1; - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -iter = g(); -iter.next(); - -assert.throws(TypeError, function() { - iter.return(); -}); diff --git a/test/language/statements/for-await-of/dstr-array-elem-iter-rtrn-close.js b/test/language/statements/for-await-of/dstr-array-elem-iter-rtrn-close.js deleted file mode 100644 index 303d64a37f..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-iter-rtrn-close.js +++ /dev/null @@ -1,86 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-iter-rtrn-close.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is called when reference evaluation produces a "return" completion (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : [ AssignmentElementList ] - - [...] - 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, - result). - 6. Return result. - - 7.4.6 IteratorClose( iterator, completion ) - - [...] - 6. Let innerResult be Call(return, iterator, « »). - 7. If completion.[[type]] is throw, return Completion(completion). - 8. If innerResult.[[type]] is throw, return Completion(innerResult). - ----*/ -var returnCount = 0; -var unreachable = 0; -var thisValue = null; -var args = null; -var iterable = {}; -var iterator = { - return: function() { - returnCount += 1; - thisValue = this; - args = arguments; - return {}; - } -}; -var iter, result; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -function* g() { - -var counter = 0; - -async function fn() { - for await ([ {}[yield] ] of [iterable]) { - unreachable += 1; - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} -iter = g(); -iter.next(); -result = iter.return(777); - -assert.sameValue(returnCount, 1); -assert.sameValue(unreachable, 0, 'Unreachable statement was not executed'); -assert.sameValue(result.value, 777); -assert(result.done, 'Iterator correctly closed'); -assert.sameValue(thisValue, iterator, 'correct `this` value'); -assert(!!args, 'arguments object provided'); -assert.sameValue(args.length, 0, 'zero arguments specified'); diff --git a/test/language/statements/for-await-of/dstr-array-elem-nested-array-yield-expr.js b/test/language/statements/for-await-of/dstr-array-elem-nested-array-yield-expr.js deleted file mode 100644 index 9ad3e282be..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-nested-array-yield-expr.js +++ /dev/null @@ -1,58 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-nested-array-yield-expr.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the DestructuringAssignmentTarget of a nested destructuring assignment and within a generator function body, it behaves as a YieldExpression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var value = [[22]]; -var x = {}; -var iterationResult, iter; - -iter = (function*() { - -var counter = 0; - -async function fn() { - for await ([[x[yield]]] of [value]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -}()); - -iterationResult = iter.next(); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, false); -assert.sameValue(x.prop, undefined); - -iterationResult = iter.next('prop'); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, true); -assert.sameValue(x.prop, 22); diff --git a/test/language/statements/for-await-of/dstr-array-elem-nested-array-yield-ident-valid.js b/test/language/statements/for-await-of/dstr-array-elem-nested-array-yield-ident-valid.js deleted file mode 100644 index e11b2b4c6c..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-nested-array-yield-ident-valid.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-nested-array-yield-ident-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the DestructuringAssignmentTarget of a nested destructuring assignment outside of strict mode, it behaves as an IdentifierReference. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield = 'prop'; -var x = {}; - -var counter = 0; - -async function fn() { - for await ([[x[yield]]] of [[[22]]]) { - assert.sameValue(x.prop, 22); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-nested-array.js b/test/language/statements/for-await-of/dstr-array-elem-nested-array.js deleted file mode 100644 index d6b92ee479..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-nested-array.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-nested-array.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an array literal, it should be parsed parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ([[x]] of [[[1]]]) { - assert.sameValue(x, 1); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-nested-obj-yield-expr.js b/test/language/statements/for-await-of/dstr-array-elem-nested-obj-yield-expr.js deleted file mode 100644 index 2c33ed58e3..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-nested-obj-yield-expr.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-nested-obj-yield-expr.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the Initializer of a nested destructuring assignment and within a generator function body, it behaves as a YieldExpression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var iterationResult, iter, x; - -iter = (function*() { - -var counter = 0; - -async function fn() { - for await ([{ x = yield }] of [[{}]]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -}()); - -iterationResult = iter.next(); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, false); -assert.sameValue(x, undefined); - -iterationResult = iter.next(4); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, true); -assert.sameValue(x, 4); diff --git a/test/language/statements/for-await-of/dstr-array-elem-nested-obj-yield-ident-valid.js b/test/language/statements/for-await-of/dstr-array-elem-nested-obj-yield-ident-valid.js deleted file mode 100644 index d503e10ee1..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-nested-obj-yield-ident-valid.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-nested-obj-yield-ident-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the Initializer of a nested destructuring assignment outside of a generator function body, it behaves as an IdentifierReference. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield = 2; -var x; - -var counter = 0; - -async function fn() { - for await ([{ x = yield }] of [[{}]]) { - assert.sameValue(x, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-nested-obj.js b/test/language/statements/for-await-of/dstr-array-elem-nested-obj.js deleted file mode 100644 index bd47dba4fd..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-nested-obj.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-nested-obj.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an object literal, it should be parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ([{ x }] of [[{ x: 2 }]]) { - assert.sameValue(x, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-put-prop-ref-no-get.js b/test/language/statements/for-await-of/dstr-array-elem-put-prop-ref-no-get.js deleted file mode 100644 index 6d1aad896f..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-put-prop-ref-no-get.js +++ /dev/null @@ -1,48 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-put-prop-ref-no-get.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: If the DestructuringAssignmentTarget of an AssignmentElement is a PropertyReference, it should not be evaluated. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x, setValue; -x = { - get y() { - $ERROR('The property should not be accessed.'); - }, - set y(val) { - setValue = val; - } -}; - -var counter = 0; - -async function fn() { - for await ([x.y] of [[23]]) { - assert.sameValue(setValue, 23); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-put-prop-ref.js b/test/language/statements/for-await-of/dstr-array-elem-put-prop-ref.js deleted file mode 100644 index aa72ff286b..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-put-prop-ref.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-put-prop-ref.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: The DestructuringAssignmentTarget of an AssignmentElement may be a PropertyReference. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = {}; - -var counter = 0; - -async function fn() { - for await ([x.y] of [[4]]) { - assert.sameValue(x.y, 4); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-put-unresolvable-no-strict.js b/test/language/statements/for-await-of/dstr-array-elem-put-unresolvable-no-strict.js deleted file mode 100644 index 256dcb8869..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-put-unresolvable-no-strict.js +++ /dev/null @@ -1,44 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-put-unresolvable-no-strict.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Outside of strict mode, if the the assignment target is an unresolvable reference, a new `var` binding should be created in the environment record. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -{ - -var counter = 0; - -async function fn() { - for await ([ unresolvable ] of [[]]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -assert.sameValue(unresolvable, undefined); diff --git a/test/language/statements/for-await-of/dstr-array-elem-target-identifier.js b/test/language/statements/for-await-of/dstr-array-elem-target-identifier.js deleted file mode 100644 index f95b06dd55..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-target-identifier.js +++ /dev/null @@ -1,42 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-target-identifier.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Identifiers that appear as the DestructuringAssignmentTarget in an AssignmentElement should take on the iterated value corresponding to their position in the ArrayAssignmentPattern. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x, y, z; - -var counter = 0; - -async function fn() { - for await ([x, y, z] of [[1, 2, 3]]) { - assert.sameValue(x, 1); - assert.sameValue(y, 2); - assert.sameValue(z, 3); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-target-simple-no-strict.js b/test/language/statements/for-await-of/dstr-array-elem-target-simple-no-strict.js deleted file mode 100644 index 8a9990e0a3..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-target-simple-no-strict.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-target-simple-no-strict.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Identifiers that appear as the DestructuringAssignmentTarget in an AssignmentElement should take on the iterated value corresponding to their position in the ArrayAssignmentPattern. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var argument, eval; - -var counter = 0; - -async function fn() { - for await ([arguments, eval] of [[2, 3]]) { - assert.sameValue(arguments, 2); - assert.sameValue(eval, 3); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-target-yield-expr.js b/test/language/statements/for-await-of/dstr-array-elem-target-yield-expr.js deleted file mode 100644 index f21bf7f7cb..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-target-yield-expr.js +++ /dev/null @@ -1,58 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-target-yield-expr.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentElement within a generator function body, it behaves as a YieldExpression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var value = [33]; -var x = {}; -var iterationResult, iter; - -iter = (function*() { - -var counter = 0; - -async function fn() { - for await ([ x[yield] ] of [[33]]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -}()); - -iterationResult = iter.next(); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, false); -assert.sameValue(x.prop, undefined); - -iterationResult = iter.next('prop'); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, true); -assert.sameValue(x.prop, 33); diff --git a/test/language/statements/for-await-of/dstr-array-elem-target-yield-valid.js b/test/language/statements/for-await-of/dstr-array-elem-target-yield-valid.js deleted file mode 100644 index a9b16fdff3..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-target-yield-valid.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-target-yield-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentElement outside of a generator function body, it behaves as an IdentifierReference. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield = 'prop'; -var x = {}; - -var counter = 0; - -async function fn() { - for await ([ x[yield] ] of [[33]]) { - assert.sameValue(x.prop, 33); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-elision-iter-nrml-close-skip.js b/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-elision-iter-nrml-close-skip.js deleted file mode 100644 index dc73b88d05..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-elision-iter-nrml-close-skip.js +++ /dev/null @@ -1,72 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-trlg-iter-elision-iter-nrml-close-skip.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose not invoked when elision exhausts the iterator (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : - [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] - - [...] - 6. If Elision is present, then - a. Let status be the result of performing - IteratorDestructuringAssignmentEvaluation of Elision with - iteratorRecord as the argument. - b. If status is an abrupt completion, then - [...] - 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, - status). - 9. Return Completion(status). - ----*/ -var nextCount = 0; -var returnCount = 0; -var iterable = {}; -var x; -var iterator = { - next: function() { - nextCount += 1; - - return { done: nextCount > 1 }; - }, - return: function() { - returnCount += 1; - } -}; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -var counter = 0; - -async function fn() { - for await ([ x , , ] of [iterable]) { - assert.sameValue(nextCount, 2); - assert.sameValue(returnCount, 0); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-elision-iter-nrml-close.js b/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-elision-iter-nrml-close.js deleted file mode 100644 index 9170bb3200..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-elision-iter-nrml-close.js +++ /dev/null @@ -1,87 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-trlg-iter-elision-iter-nrml-close.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose invoked when elision does not exhaust the iterator (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : - [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] - - [...] - 6. If Elision is present, then - a. Let status be the result of performing - IteratorDestructuringAssignmentEvaluation of Elision with - iteratorRecord as the argument. - b. If status is an abrupt completion, then - [...] - 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, - status). - - 7.4.6 IteratorClose( iterator, completion ) - - [...] - 6. Let innerResult be Call(return, iterator, « »). - [...] - ----*/ -var nextCount = 0; -var returnCount = 0; -var thisValue = null; -var args = null; -var iterable = {}; -var x; -var iterator = { - next: function() { - nextCount += 1; - - // Set an upper-bound to limit unnecessary iteration in non-conformant - // implementations - return { done: nextCount > 10 }; - }, - return: function() { - returnCount += 1; - thisValue = this; - args = arguments; - return {}; - } -}; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -var counter = 0; - -async function fn() { - for await ([ x , , ] of [iterable]) { - assert.sameValue(nextCount, 2); - assert.sameValue(returnCount, 1); - assert.sameValue(thisValue, iterator, 'correct `this` value'); - assert(!!args, 'arguments object provided'); - assert.sameValue(args.length, 0, 'zero arguments specified'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-nrml-close-skip.js b/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-nrml-close-skip.js deleted file mode 100644 index be57dfb781..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-nrml-close-skip.js +++ /dev/null @@ -1,73 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-trlg-iter-list-nrml-close-skip.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is not invoked when evaluation of AssignmentElementList exhausts the iterator (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : - [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] - - [...] - 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. - 4. Let status be the result of performing - IteratorDestructuringAssignmentEvaluation of AssignmentElementList using - iteratorRecord as the argument. - 5. If status is an abrupt completion, then - a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, - status). - b. Return Completion(status). - ----*/ -var nextCount = 0; -var returnCount = 0; -var iterable = {}; -var thrower = function() { - throw new Test262Error(); -}; -var x; -var iterator = { - next: function() { - nextCount += 1; - return { done: true }; - }, - return: function() { - returnCount += 1; - } -}; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -var counter = 0; - -async function fn() { - for await ([ x , ] of [iterable]) { - assert.sameValue(nextCount, 1); - assert.sameValue(returnCount, 0); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-nrml-close.js b/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-nrml-close.js deleted file mode 100644 index 9d98bc1758..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-nrml-close.js +++ /dev/null @@ -1,86 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-trlg-iter-list-nrml-close.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is invoked when evaluation of AssignmentElementList completes without exhausting the iterator (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : - [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] - - [...] - 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. - 4. Let status be the result of performing - IteratorDestructuringAssignmentEvaluation of AssignmentElementList using - iteratorRecord as the argument. - 5. If status is an abrupt completion, then - a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, - status). - b. Return Completion(status). - - 7.4.6 IteratorClose( iterator, completion ) - - [...] - 6. Let innerResult be Call(return, iterator, « »). - [...] - ----*/ -var nextCount = 0; -var returnCount = 0; -var thisValue = null; -var args = null; -var iterable = {}; -var x; -var iterator = { - next: function() { - nextCount += 1; - // Set an upper-bound to limit unnecessary iteration in non-conformant - // implementations - return { done: nextCount > 10 }; - }, - return: function() { - returnCount += 1; - thisValue = this; - args = arguments; - return {}; - } -}; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -var counter = 0; - -async function fn() { - for await ([ x , ] of [iterable]) { - assert.sameValue(nextCount, 1); - assert.sameValue(returnCount, 1); - assert.sameValue(thisValue, iterator, 'correct `this` value'); - assert(!!args, 'arguments object provided'); - assert.sameValue(args.length, 0, 'zero arguments specified'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-rtrn-close-err.js b/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-rtrn-close-err.js deleted file mode 100644 index f7b14a4299..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-rtrn-close-err.js +++ /dev/null @@ -1,86 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-trlg-iter-list-rtrn-close-err.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is invoked when evaluation of AssignmentElementList returns a "return" completion and the iterator has not been marked as "done" (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : - [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] - - [...] - 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. - 4. Let status be the result of performing - IteratorDestructuringAssignmentEvaluation of AssignmentElementList using - iteratorRecord as the argument. - 5. If status is an abrupt completion, then - a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, - status). - - 7.4.6 IteratorClose( iterator, completion ) - - [...] - 6. Let innerResult be Call(return, iterator, « »). - 7. If completion.[[type]] is throw, return Completion(completion). - 8. If innerResult.[[type]] is throw, return Completion(innerResult). - ----*/ -var returnCount = 0; -var unreachable = 0; -var iterable = {}; -var iterator = { - return: function() { - returnCount += 1; - - throw new Test262Error(); - } -}; -var iter; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -function* g() { - -var counter = 0; - -async function fn() { - for await ([ {}[yield] , ] of [iterable]) { - unreachable += 1; - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -iter = g(); -iter.next(); -assert.throws(Test262Error, function() { - iter.return(); -}); - -assert.sameValue(returnCount, 1); -assert.sameValue(unreachable, 0, 'Unreachable statement was not executed'); diff --git a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-rtrn-close-null.js b/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-rtrn-close-null.js deleted file mode 100644 index bbabb3d867..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-rtrn-close-null.js +++ /dev/null @@ -1,83 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-trlg-iter-list-rtrn-close-null.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose throws a TypeError when `return` returns a non-Object value (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : - [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] - - [...] - 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. - 4. Let status be the result of performing - IteratorDestructuringAssignmentEvaluation of AssignmentElementList using - iteratorRecord as the argument. - 5. If status is an abrupt completion, then - a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, - status). - b. Return Completion(status). - - 7.4.6 IteratorClose( iterator, completion ) - - [...] - 6. Let innerResult be Call(return, iterator, « »). - 7. If completion.[[type]] is throw, return Completion(completion). - 8. If innerResult.[[type]] is throw, return Completion(innerResult). - 9. If Type(innerResult.[[value]]) is not Object, throw a TypeError - exception. - ----*/ -var iterable = {}; -var iterator = { - return: function() { - return null; - } -}; -var iter; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -function* g() { - -var counter = 0; - -async function fn() { - for await ([ {}[yield] , ] of [iterable]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -iter = g(); -iter.next(); - -assert.throws(TypeError, function() { - iter.return(); -}); diff --git a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-rtrn-close.js b/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-rtrn-close.js deleted file mode 100644 index 1cab9a05b4..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-rtrn-close.js +++ /dev/null @@ -1,94 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-trlg-iter-list-rtrn-close.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is invoked when evaluation of AssignmentElementList returns a "return" completion and the iterator has not been marked as "done" (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : - [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] - - [...] - 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. - 4. Let status be the result of performing - IteratorDestructuringAssignmentEvaluation of AssignmentElementList using - iteratorRecord as the argument. - 5. If status is an abrupt completion, then - a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, - status). - b. Return Completion(status). - - 7.4.6 IteratorClose( iterator, completion ) - - [...] - 6. Let innerResult be Call(return, iterator, « »). - 7. If completion.[[type]] is throw, return Completion(completion). - 8. If innerResult.[[type]] is throw, return Completion(innerResult). - ----*/ -var returnCount = 0; -var unreachable = 0; -var thisValue = null; -var args = null; -var iterable = {}; -var iterator = { - return: function() { - returnCount += 1; - thisValue = this; - args = arguments; - return {}; - } -}; -var iter, result; - -iterable[Symbol.iterator] = function() { - return iterator; -}; - -function* g() { - -var counter = 0; - -async function fn() { - for await ([ {}[yield] , ] of [iterable]) { - unreachable += 1; - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -}; - -iter = g(); -iter.next(); -result = iter.return(888); - -assert.sameValue(returnCount, 1); -assert.sameValue(unreachable, 0, 'Unreachable statement was not executed'); -assert.sameValue(result.value, 888); -assert(result.done, 'Iterator correctly closed'); -assert.sameValue(thisValue, iterator, 'correct `this` value'); -assert(!!args, 'arguments object provided'); -assert.sameValue(args.length, 0, 'zero arguments specified'); diff --git a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-nrml-close-skip.js b/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-nrml-close-skip.js deleted file mode 100644 index c49c8b063a..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-nrml-close-skip.js +++ /dev/null @@ -1,73 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-trlg-iter-rest-nrml-close-skip.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is not called when rest element evaluation has exhausted the iterator (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : - [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] - - [...] - 7. If AssignmentRestElement is present, then - a. Let status be the result of performing - IteratorDestructuringAssignmentEvaluation of AssignmentRestElement - with iteratorRecord as the argument. - 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, - status). - 9. Return Completion(status). - ----*/ -var nextCount = 0; -var returnCount = 0; -var iterable = {}; -var x, y; -var iterator = { - next: function() { - nextCount += 1; - return { value: nextCount, done: nextCount > 1 }; - }, - return: function() { - returnCount += 1; - } -}; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -var counter = 0; - -async function fn() { - for await ([ x , ...y ] of [iterable]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -assert.sameValue(nextCount, 2, 'nextCount'); -assert.sameValue(returnCount, 0, 'returnCount'); -assert.sameValue(x, 1, 'x'); -assert.sameValue(y.length, 0, 'y.length'); diff --git a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-rtrn-close-err.js b/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-rtrn-close-err.js deleted file mode 100644 index 566e1a75ce..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-rtrn-close-err.js +++ /dev/null @@ -1,95 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-trlg-iter-rest-rtrn-close-err.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is called when AssignmentRestEvaluation produces a "return" completion due to reference evaluation (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : - [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] - - [...] - 7. If AssignmentRestElement is present, then - a. Let status be the result of performing - IteratorDestructuringAssignmentEvaluation of AssignmentRestElement - with iteratorRecord as the argument. - 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, - status). - 9. Return Completion(status). - - 7.4.6 IteratorClose( iterator, completion ) - - [...] - 6. Let innerResult be Call(return, iterator, « »). - 7. If completion.[[type]] is throw, return Completion(completion). - 8. If innerResult.[[type]] is throw, return Completion(innerResult). - ----*/ -var nextCount = 0; -var returnCount = 0; -var unreachable = 0; -var x; -var iterable = {}; -var iterator = { - next: function() { - nextCount += 1; - // Set an upper-bound to limit unnecessary iteration in non-conformant - // implementations - return { done: nextCount > 10 }; - }, - return: function() { - returnCount += 1; - - throw new Test262Error(); - } -}; -var iter; -iterable[Symbol.iterator] = function() { - return iterator; -}; -function* g() { - -var counter = 0; - -async function fn() { - for await ([ x , ...{}[yield] ] of [iterable]) { - unreachable += 1; - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -iter = g(); -iter.next(); - -assert.throws(Test262Error, function() { - iter.return(); -}); - -assert.sameValue(nextCount, 1); -assert.sameValue(returnCount, 1); -assert.sameValue(unreachable, 0, 'Unreachable statement was not executed'); diff --git a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-rtrn-close-null.js b/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-rtrn-close-null.js deleted file mode 100644 index 073175cf13..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-rtrn-close-null.js +++ /dev/null @@ -1,90 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-trlg-iter-rest-rtrn-close-null.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose throws a TypeError when `return` returns a non-Object value (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : - [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] - - [...] - 7. If AssignmentRestElement is present, then - a. Let status be the result of performing - IteratorDestructuringAssignmentEvaluation of AssignmentRestElement - with iteratorRecord as the argument. - 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, - status). - 9. Return Completion(status). - - 7.4.6 IteratorClose( iterator, completion ) - - [...] - 6. Let innerResult be Call(return, iterator, « »). - 7. If completion.[[type]] is throw, return Completion(completion). - 8. If innerResult.[[type]] is throw, return Completion(innerResult). - ----*/ -var nextCount = 0; -var iterable = {}; -var x; -var iterator = { - next: function() { - nextCount += 1; - // Set an upper-bound to limit unnecessary iteration in non-conformant - // implementations - return { done: nextCount > 10 }; - }, - return: function() { - return null; - } -}; -var iter; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -function* g() { - -var counter = 0; - -async function fn() { - for await ([ x , ...{}[yield] ] of [iterable]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -iter = g(); -iter.next(); - -assert.throws(TypeError, function() { - iter.return(); -}); - -assert.sameValue(nextCount, 1); diff --git a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-rtrn-close.js b/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-rtrn-close.js deleted file mode 100644 index 188453533c..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-rtrn-close.js +++ /dev/null @@ -1,101 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-trlg-iter-rest-rtrn-close.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is called when AssignmentRestEvaluation produces a "return" completion due to reference evaluation (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : - [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] - - [...] - 7. If AssignmentRestElement is present, then - a. Let status be the result of performing - IteratorDestructuringAssignmentEvaluation of AssignmentRestElement - with iteratorRecord as the argument. - 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, - status). - 9. Return Completion(status). - - 7.4.6 IteratorClose( iterator, completion ) - - [...] - 6. Let innerResult be Call(return, iterator, « »). - 7. If completion.[[type]] is throw, return Completion(completion). - 8. If innerResult.[[type]] is throw, return Completion(innerResult). - ----*/ -var nextCount = 0; -var returnCount = 0; -var unreachable = 0; -var thisValue = null; -var args = null; -var iterable = {}; -var x; -var iterator = { - next: function() { - nextCount += 1; - // Set an upper-bound to limit unnecessary iteration in non-conformant - // implementations - return { done: nextCount > 10 }; - }, - return: function() { - returnCount += 1; - thisValue = this; - args = arguments; - return {}; - } -}; -var iter, result; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -function* g() { - -var counter = 0; - -async function fn() { - for await ([ x , ...{}[yield] ] of [iterable]) { - unreachable += 1; - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -iter = g(); -iter.next(); -result = iter.return(999); - -assert.sameValue(nextCount, 1); -assert.sameValue(returnCount, 1); -assert.sameValue(unreachable, 0, 'Unreachable statement was not executed'); -assert.sameValue(result.value, 999); -assert(result.done, 'Iterator correctly closed'); -assert.sameValue(thisValue, iterator, 'correct `this` value'); -assert(!!args, 'arguments object provided'); -assert.sameValue(args.length, 0, 'zero arguments specified'); diff --git a/test/language/statements/for-await-of/dstr-array-elision-iter-nrml-close-skip.js b/test/language/statements/for-await-of/dstr-array-elision-iter-nrml-close-skip.js deleted file mode 100644 index a2d2ec0139..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elision-iter-nrml-close-skip.js +++ /dev/null @@ -1,65 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elision-iter-nrml-close-skip.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is not called when iteration has exhausted the iterator (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : [ Elision ] - - 1. Let iterator be GetIterator(value). - [...] - 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, - result). - [...] - ----*/ -var nextCount = 0; -var returnCount = 0; -var iterable = {}; -var iterator = { - next: function() { - nextCount += 1; - return { done: true }; - }, - return: function() { - returnCount += 1; - return {}; - } -}; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -var counter = 0; - -async function fn() { - for await ([ , ] of [iterable]) { - assert.sameValue(nextCount, 1); - assert.sameValue(returnCount, 0); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elision-iter-nrml-close.js b/test/language/statements/for-await-of/dstr-array-elision-iter-nrml-close.js deleted file mode 100644 index 509a6001c2..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elision-iter-nrml-close.js +++ /dev/null @@ -1,80 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elision-iter-nrml-close.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is called when assignment evaluation has not exhausted the iterator (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : [ Elision ] - - 1. Let iterator be GetIterator(value). - [...] - 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, - result). - [...] - - 7.4.6 IteratorClose( iterator, completion ) - - [...] - 6. Let innerResult be Call(return, iterator, « »). - [...] - ----*/ -var nextCount = 0; -var returnCount = 0; -var thisValue = null; -var args = null; -var iterable = {}; -var iterator = { - next: function() { - nextCount += 1; - // Set an upper-bound to limit unnecessary iteration in non-conformant - // implementations - return { done: nextCount > 10 }; - }, - return: function() { - returnCount += 1; - thisValue = this; - args = arguments; - return {}; - } -}; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -var counter = 0; - -async function fn() { - for await ([ , ] of [iterable]) { - assert.sameValue(nextCount, 1); - assert.sameValue(returnCount, 1); - assert.sameValue(thisValue, iterator, 'correct `this` value'); - assert(!!args, 'arguments object provided'); - assert.sameValue(args.length, 0, 'zero arguments specified'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elision-val-array.js b/test/language/statements/for-await-of/dstr-array-elision-val-array.js deleted file mode 100644 index 9d55d53877..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elision-val-array.js +++ /dev/null @@ -1,39 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elision-val-array.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: An ArrayAssignmentPattern containing only Elisions requires iterable values (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ - -var counter = 0; - -async function fn() { - for await ([,] of [[]]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elision-val-string.js b/test/language/statements/for-await-of/dstr-array-elision-val-string.js deleted file mode 100644 index ec09b914e5..0000000000 --- a/test/language/statements/for-await-of/dstr-array-elision-val-string.js +++ /dev/null @@ -1,39 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elision-val-string.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: An ArrayAssignmentPattern containing only Elisions requires iterable values (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ - -var counter = 0; - -async function fn() { - for await ([,] of ['string literal']) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-empty-iter-close.js b/test/language/statements/for-await-of/dstr-array-empty-iter-close.js deleted file mode 100644 index c6bf46b8ca..0000000000 --- a/test/language/statements/for-await-of/dstr-array-empty-iter-close.js +++ /dev/null @@ -1,76 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-empty-iter-close.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Iterator is closed without iterating (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : [ ] - - 1. Let iterator be GetIterator(value). - 2. ReturnIfAbrupt(iterator). - 3. Return IteratorClose(iterator, NormalCompletion(empty)). - - 7.4.6 IteratorClose( iterator, completion ) - - [...] - 6. Let innerResult be Call(return, iterator, « »). - [...] - ----*/ -var nextCount = 0; -var returnCount = 0; -var thisValue = null; -var args = null; -var iterable = {}; -var iterator = { - next: function() { - nextCount += 1; - return { done: true }; - }, - return: function() { - returnCount += 1; - thisValue = this; - args = arguments; - return {}; - } -}; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -var counter = 0; - -async function fn() { - for await ([] of [iterable]) { - assert.sameValue(nextCount, 0); - assert.sameValue(returnCount, 1); - assert.sameValue(thisValue, iterator, 'correct `this` value'); - assert(!!args, 'arguments object provided'); - assert.sameValue(args.length, 0, 'zero arguments specified'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-empty-val-array.js b/test/language/statements/for-await-of/dstr-array-empty-val-array.js deleted file mode 100644 index 897d5c7e25..0000000000 --- a/test/language/statements/for-await-of/dstr-array-empty-val-array.js +++ /dev/null @@ -1,39 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-empty-val-array.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ - -var counter = 0; - -async function fn() { - for await ([] of [[]]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-empty-val-string.js b/test/language/statements/for-await-of/dstr-array-empty-val-string.js deleted file mode 100644 index 265d0f8984..0000000000 --- a/test/language/statements/for-await-of/dstr-array-empty-val-string.js +++ /dev/null @@ -1,39 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-empty-val-string.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ - -var counter = 0; - -async function fn() { - for await ([] of ['string literal']) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-iteration.js b/test/language/statements/for-await-of/dstr-array-iteration.js deleted file mode 100644 index 4552d7a751..0000000000 --- a/test/language/statements/for-await-of/dstr-array-iteration.js +++ /dev/null @@ -1,47 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-iteration.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Value iteration only proceeds for the number of elements in the ArrayAssignmentPattern. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var count = 0; -var g = function*() { - count += 1; - yield; - count += 1; - yield; - count += 1; -} - -var counter = 0; - -async function fn() { - for await ([,,] of [g()]) { - assert.sameValue(count, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-after-element.js b/test/language/statements/for-await-of/dstr-array-rest-after-element.js deleted file mode 100644 index d796a4d1d5..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-after-element.js +++ /dev/null @@ -1,43 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-after-element.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: An AssignmentRestElement following an AssignmentElement consumes all remaining iterable values. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x, y; - -var counter = 0; - -async function fn() { - for await ([x, ...y] of [[1, 2, 3]]) { - assert.sameValue(x, 1); - assert.sameValue(y.length, 2); - assert.sameValue(y[0], 2); - assert.sameValue(y[1], 3); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-after-elision.js b/test/language/statements/for-await-of/dstr-array-rest-after-elision.js deleted file mode 100644 index c87534c5e8..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-after-elision.js +++ /dev/null @@ -1,42 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-after-elision.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: An AssignmentRestElement following an elision consumes all remaining iterable values. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ([, ...x] of [[1, 2, 3]]) { - assert.sameValue(x.length, 2); - assert.sameValue(x[0], 2); - assert.sameValue(x[1], 3); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-elision.js b/test/language/statements/for-await-of/dstr-array-rest-elision.js deleted file mode 100644 index af6b841347..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-elision.js +++ /dev/null @@ -1,43 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-elision.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: ArrayAssignmentPattern may include elisions at any position preceeding a AssignmentRestElement in a AssignmentElementList. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x, y; - -var counter = 0; - -async function fn() { - for await ([, , x, , ...y] of [[1, 2, 3, 4, 5, 6]]) { - assert.sameValue(x, 3); - assert.sameValue(y.length, 2); - assert.sameValue(y[0], 5); - assert.sameValue(y[1], 6); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-iter-nrml-close-skip.js b/test/language/statements/for-await-of/dstr-array-rest-iter-nrml-close-skip.js deleted file mode 100644 index c0f24a7fd9..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-iter-nrml-close-skip.js +++ /dev/null @@ -1,67 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-iter-nrml-close-skip.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is not called when assignment evaluation has exhausted the iterator (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] - - [...] - 5. Let result be the result of performing - IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with - iteratorRecord as the argument - 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, - result). - 7. Return result. - ----*/ -var nextCount = 0; -var returnCount = 0; -var x; -var iterable = {}; -var iterator = { - next: function() { - nextCount += 1; - return { done: true }; - }, - return: function() { - returnCount += 1; - } -}; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -var counter = 0; - -async function fn() { - for await ([ ...x ] of [iterable]) { - assert.sameValue(nextCount, 1); - assert.sameValue(returnCount, 0); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-iter-rtrn-close-err.js b/test/language/statements/for-await-of/dstr-array-rest-iter-rtrn-close-err.js deleted file mode 100644 index cfa8e8f4d2..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-iter-rtrn-close-err.js +++ /dev/null @@ -1,91 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-iter-rtrn-close-err.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is called when reference evaluation produces a "return" completion (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] - - [...] - 5. Let result be the result of performing - IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with - iteratorRecord as the argument - 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, - result). - - AssignmentRestElement[Yield] : ... DestructuringAssignmentTarget - - 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an - ArrayLiteral, then - a. Let lref be the result of evaluating DestructuringAssignmentTarget. - b. ReturnIfAbrupt(lref). - - 7.4.6 IteratorClose( iterator, completion ) - - [...] - 6. Let innerResult be Call(return, iterator, « »). - 7. If completion.[[type]] is throw, return Completion(completion). - 8. If innerResult.[[type]] is throw, return Completion(innerResult). - ----*/ -var returnCount = 0; -var unreachable = 0; -function ReturnError() {} -var iterable = {}; -var iterator = { - return: function() { - returnCount += 1; - - throw new Test262Error(); - } -}; -var iter; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -function* g() { - -var counter = 0; - -async function fn() { - for await ([...{}[yield]] of [iterable]) { - unreachable += 1; - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -iter = g(); -iter.next(); -assert.throws(Test262Error, function() { - iter.return(); -}); - -assert.sameValue(returnCount, 1); -assert.sameValue(unreachable, 0, 'Unreachable statement was not executed'); diff --git a/test/language/statements/for-await-of/dstr-array-rest-iter-rtrn-close-null.js b/test/language/statements/for-await-of/dstr-array-rest-iter-rtrn-close-null.js deleted file mode 100644 index becc03c060..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-iter-rtrn-close-null.js +++ /dev/null @@ -1,90 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-iter-rtrn-close-null.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose throws a TypeError when `return` returns a non-Object value (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] - - [...] - 5. Let result be the result of performing - IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with - iteratorRecord as the argument - 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, - result). - - AssignmentRestElement[Yield] : ... DestructuringAssignmentTarget - - 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an - ArrayLiteral, then - a. Let lref be the result of evaluating DestructuringAssignmentTarget. - b. ReturnIfAbrupt(lref). - - 7.4.6 IteratorClose( iterator, completion ) - - [...] - 6. Let innerResult be Call(return, iterator, « »). - [...] - - 7.4.6 IteratorClose( iterator, completion ) - - [...] - 6. Let innerResult be Call(return, iterator, « »). - 7. If completion.[[type]] is throw, return Completion(completion). - 8. If innerResult.[[type]] is throw, return Completion(innerResult). - ----*/ -var iterable = {}; -var iterator = { - return: function() { - return null; - } -}; -var iter; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -function* g() { - -var counter = 0; - -async function fn() { - for await ([...{}[yield]] of [iterable]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -iter = g(); -iter.next(); - -assert.throws(TypeError, function() { - iter.return(); -}); diff --git a/test/language/statements/for-await-of/dstr-array-rest-iter-rtrn-close.js b/test/language/statements/for-await-of/dstr-array-rest-iter-rtrn-close.js deleted file mode 100644 index fa4c16d68d..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-iter-rtrn-close.js +++ /dev/null @@ -1,102 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-iter-rtrn-close.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is called when reference evaluation produces a "return" completion (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] - - [...] - 5. Let result be the result of performing - IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with - iteratorRecord as the argument - 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, - result). - - AssignmentRestElement[Yield] : ... DestructuringAssignmentTarget - - 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an - ArrayLiteral, then - a. Let lref be the result of evaluating DestructuringAssignmentTarget. - b. ReturnIfAbrupt(lref). - - 7.4.6 IteratorClose( iterator, completion ) - - [...] - 6. Let innerResult be Call(return, iterator, « »). - [...] - - 7.4.6 IteratorClose( iterator, completion ) - - [...] - 6. Let innerResult be Call(return, iterator, « »). - 7. If completion.[[type]] is throw, return Completion(completion). - 8. If innerResult.[[type]] is throw, return Completion(innerResult). - ----*/ -var returnCount = 0; -var unreachable = 0; -var thisValue = null; -var args = null; -var iterable = {}; -var iterator = { - return: function() { - returnCount += 1; - thisValue = this; - args = arguments; - return {}; - } -}; -var iter, result; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -function* g() { - -var counter = 0; - -async function fn() { - for await ([...{}[yield]] of [iterable]) { - unreachable += 1; - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -iter = g(); -iter.next(); -result = iter.return(444); - -assert.sameValue(returnCount, 1); -assert.sameValue(unreachable, 0, 'Unreachable statement was not executed'); -assert.sameValue(result.value, 444); -assert(result.done, 'Iterator correctly closed'); -assert.sameValue(thisValue, iterator, 'correct `this` value'); -assert(!!args, 'arguments object provided'); -assert.sameValue(args.length, 0, 'zero arguments specified'); diff --git a/test/language/statements/for-await-of/dstr-array-rest-iteration.js b/test/language/statements/for-await-of/dstr-array-rest-iteration.js deleted file mode 100644 index 76dd8bd842..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-iteration.js +++ /dev/null @@ -1,48 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-iteration.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: In the presense of an AssignmentRestElement, value iteration exhausts the iterable value; (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var count = 0; -var g = function*() { - count += 1; - yield; - count += 1; - yield; - count += 1; -} -var x; - -var counter = 0; - -async function fn() { - for await ([...x] of [g()]) { - assert.sameValue(count, 3); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-lref.js b/test/language/statements/for-await-of/dstr-array-rest-lref.js deleted file mode 100644 index 774372e2dd..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-lref.js +++ /dev/null @@ -1,76 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-lref.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Reference is evaluated during assignment (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] - - [...] - 5. Let result be the result of performing - IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with - iteratorRecord as the argument - 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, - result). - - AssignmentRestElement[Yield] : ... DestructuringAssignmentTarget - - 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an - ArrayLiteral, then - a. Let lref be the result of evaluating DestructuringAssignmentTarget. - b. ReturnIfAbrupt(lref). - [...] - ----*/ -var nextCount = 0; -var returnCount = 0; -var iterable = {}; -var iterator = { - next: function() { - nextCount += 1; - return { done: true }; - }, - return: function() { - returnCount += 1; - } -}; -var obj = {}; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -var counter = 0; - -async function fn() { - for await ([...obj['a' + 'b']] of [iterable]) { - assert.sameValue(nextCount, 1); - assert.sameValue(returnCount, 0); - assert(!!obj.ab); - assert.sameValue(obj.ab.length, 0); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-array-null.js b/test/language/statements/for-await-of/dstr-array-rest-nested-array-null.js deleted file mode 100644 index 7e77f8f08d..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-array-null.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-array-null.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an array literal and the iterable emits `null` as the only value, an array with a single `null` element should be used as the value of the nested DestructuringAssignment. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x, y; - -var counter = 0; - -async function fn() { - for await ([...[x, y]] of [[null]]) { - assert.sameValue(x, null); - assert.sameValue(y, undefined); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-array-undefined-hole.js b/test/language/statements/for-await-of/dstr-array-rest-nested-array-undefined-hole.js deleted file mode 100644 index 64475acd69..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-array-undefined-hole.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-array-undefined-hole.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an array literal and the iterable is an array with a "hole", an array with a single `undefined` element should be used as the value of the nested DestructuringAssignment. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; - -var counter = 0; - -async function fn() { - for await ([...[x]] of [[ , ]]) { - assert.sameValue(x, undefined); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-array-undefined-own.js b/test/language/statements/for-await-of/dstr-array-rest-nested-array-undefined-own.js deleted file mode 100644 index 0f7d3daad2..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-array-undefined-own.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-array-undefined-own.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an array literal and the iterable emits `undefined` as the only value, an array with a single `undefined` element should be used as the value of the nested DestructuringAssignment. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; - -var counter = 0; - -async function fn() { - for await ([...[x]] of [[undefined]]) { - assert.sameValue(x, undefined); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-array-undefined.js b/test/language/statements/for-await-of/dstr-array-rest-nested-array-undefined.js deleted file mode 100644 index 7b9e140806..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-array-undefined.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-array-undefined.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an array literal and the iterable is emits no values, an empty array should be used as the value of the nested DestructuringAssignment. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; - -var counter = 0; - -async function fn() { - for await ([...[x]] of [[]]) { - assert.sameValue(x, undefined); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-array-yield-expr.js b/test/language/statements/for-await-of/dstr-array-rest-nested-array-yield-expr.js deleted file mode 100644 index 80e9734a7b..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-array-yield-expr.js +++ /dev/null @@ -1,58 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-array-yield-expr.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the DestructuringAssignmentTarget of a nested destructuring assignment and within a generator function body, it should behave as a YieldExpression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var value = [86]; -var x = {}; -var iterationResult, iter; - -iter = (function*() { - -var counter = 0; - -async function fn() { - for await ([...[x[yield]]] of [[86]]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -}()); - -iterationResult = iter.next(); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, false); -assert.sameValue(x.prop, undefined); - -iterationResult = iter.next('prop'); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, true); -assert.sameValue(x.prop, 86); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-array-yield-ident-valid.js b/test/language/statements/for-await-of/dstr-array-rest-nested-array-yield-ident-valid.js deleted file mode 100644 index 877c2b34eb..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-array-yield-ident-valid.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-array-yield-ident-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the DestructuringAssignmentTarget of a nested destructuring assignment and outside of a generator function body, it should behave as an IdentifierExpression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield = 'prop'; -var x = {}; - -var counter = 0; - -async function fn() { - for await ([...[x[yield]]] of [[86]]) { - assert.sameValue(x.prop, 86); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-array.js b/test/language/statements/for-await-of/dstr-array-rest-nested-array.js deleted file mode 100644 index 08e0a64144..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-array.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-array.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an array literal, it should be parsed parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ([...[x]] of [[1, 2, 3]]) { - assert.sameValue(x, 1); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-obj-null.js b/test/language/statements/for-await-of/dstr-array-rest-nested-obj-null.js deleted file mode 100644 index 353c891c70..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-obj-null.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-obj-null.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an object literal and the iterable emits `null` as the only value, an array with a single `null` element should be used as the value of the nested DestructuringAssignment. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x, length; - -var counter = 0; - -async function fn() { - for await ([...{ 0: x, length }] of [[null]]) { - assert.sameValue(x, null); - assert.sameValue(length, 1); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-obj-undefined-hole.js b/test/language/statements/for-await-of/dstr-array-rest-nested-obj-undefined-hole.js deleted file mode 100644 index fe597fa823..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-obj-undefined-hole.js +++ /dev/null @@ -1,44 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-obj-undefined-hole.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an array literal and the iterable is an array with a "hole", an array with a single `undefined` element should be used as the value of the nested DestructuringAssignment. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; -// Use the the top-level lexical scope for 'length' to provide compatibility with browsers -// where length and name are properties of WindowProxy -let length; - -var counter = 0; - -async function fn() { - for await ([...{ 0: x, length }] of [[ , ]]) { - assert.sameValue(x, undefined); - assert.sameValue(length, 1); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-obj-undefined-own.js b/test/language/statements/for-await-of/dstr-array-rest-nested-obj-undefined-own.js deleted file mode 100644 index e75832cde0..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-obj-undefined-own.js +++ /dev/null @@ -1,44 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-obj-undefined-own.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an array literal and the iterable emits `undefined` as the only value, an array with a single `undefined` element should be used as the value of the nested DestructuringAssignment. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; -// Use the the top-level lexical scope for 'length' to provide compatibility with browsers -// where length and name are properties of WindowProxy -let length; - -var counter = 0; - -async function fn() { - for await ([...{ 0: x, length }] of [[undefined]]) { - assert.sameValue(x, undefined); - assert.sameValue(length, 1); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-obj-undefined.js b/test/language/statements/for-await-of/dstr-array-rest-nested-obj-undefined.js deleted file mode 100644 index 470a0ac3cd..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-obj-undefined.js +++ /dev/null @@ -1,44 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-obj-undefined.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an obect literal and the iterable is emits no values, an empty array should be used as the value of the nested DestructuringAssignment. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; -// Use the the top-level lexical scope for 'length' to provide compatibility with browsers -// where length and name are properties of WindowProxy -let length; - -var counter = 0; - -async function fn() { - for await ([...{ 0: x, length }] of [[]]) { - assert.sameValue(x, undefined); - assert.sameValue(length, 0); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-obj-yield-expr.js b/test/language/statements/for-await-of/dstr-array-rest-nested-obj-yield-expr.js deleted file mode 100644 index 2be57590b4..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-obj-yield-expr.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-obj-yield-expr.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the Initializer of a nested destructuring assignment and within a generator function body, it should behave as a YieldExpression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var iterationResult, iter, x; - -iter = (function*() { - -var counter = 0; - -async function fn() { - for await ([...{ x = yield }] of [[{}]]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -}()); - -iterationResult = iter.next(); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, false); -assert.sameValue(x, undefined); - -iterationResult = iter.next(4); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, true); -assert.sameValue(x, 4); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-obj-yield-ident-valid.js b/test/language/statements/for-await-of/dstr-array-rest-nested-obj-yield-ident-valid.js deleted file mode 100644 index f2b21cfab5..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-obj-yield-ident-valid.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-obj-yield-ident-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the Initializer of a nested destructuring assignment and outside of a generator function body, it should behave as an IdentifierExpression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield = 2; -var x; - -var counter = 0; - -async function fn() { - for await ([...{ x = yield }] of [[{}]]) { - assert.sameValue(x, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-obj.js b/test/language/statements/for-await-of/dstr-array-rest-nested-obj.js deleted file mode 100644 index 4294b8c84f..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-obj.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-obj.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an object literal, it should be parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ([...{ 1: x }] of [[1, 2, 3]]) { - assert.sameValue(x, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-put-prop-ref-no-get.js b/test/language/statements/for-await-of/dstr-array-rest-put-prop-ref-no-get.js deleted file mode 100644 index c705eae15e..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-put-prop-ref-no-get.js +++ /dev/null @@ -1,51 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-put-prop-ref-no-get.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: If the DestructuringAssignmentTarget of an AssignmentElement is a PropertyReference, it should not be evaluated. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var setValue; -var x = { - get y() { - $ERROR('The property should not be accessed.'); - }, - set y(val) { - setValue = val; - } -}; - -var counter = 0; - -async function fn() { - for await ([...x.y] of [[23, 45, 99]]) { - assert.sameValue(setValue.length, 3); - assert.sameValue(setValue[0], 23); - assert.sameValue(setValue[1], 45); - assert.sameValue(setValue[2], 99); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-put-prop-ref.js b/test/language/statements/for-await-of/dstr-array-rest-put-prop-ref.js deleted file mode 100644 index 4fe4659dc6..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-put-prop-ref.js +++ /dev/null @@ -1,43 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-put-prop-ref.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: The DestructuringAssignmentTarget of an AssignmentElement may be a PropertyReference. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = {}; - -var counter = 0; - -async function fn() { - for await ([...x.y] of [[4, 3, 2]]) { - assert.sameValue(x.y.length, 3); - assert.sameValue(x.y[0], 4); - assert.sameValue(x.y[1], 3); - assert.sameValue(x.y[2], 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-put-unresolvable-no-strict.js b/test/language/statements/for-await-of/dstr-array-rest-put-unresolvable-no-strict.js deleted file mode 100644 index 8e6ff5b606..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-put-unresolvable-no-strict.js +++ /dev/null @@ -1,44 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-put-unresolvable-no-strict.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Outside of strict mode, if the the assignment target is an unresolvable reference, a new `var` binding should be created in the environment record. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -{ - -var counter = 0; - -async function fn() { - for await ([ ...unresolvable ] of [[]]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -assert.sameValue(unresolvable.length, 0); diff --git a/test/language/statements/for-await-of/dstr-array-rest-yield-expr.js b/test/language/statements/for-await-of/dstr-array-rest-yield-expr.js deleted file mode 100644 index c437829959..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-yield-expr.js +++ /dev/null @@ -1,60 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-yield-expr.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentRestElement and within the body of a generator function, it should behave as a YieldExpression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = {}; -var iterationResult, iter; - -iter = (function*() { - -var counter = 0; - -async function fn() { - for await ([...x[yield]] of [[33, 44, 55]]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -}()); - -iterationResult = iter.next(); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, false); -assert.sameValue(x.prop, undefined); - -iterationResult = iter.next('prop'); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, true); -assert.sameValue(x.prop.length, 3); -assert.sameValue(x.prop[0], 33); -assert.sameValue(x.prop[1], 44); -assert.sameValue(x.prop[2], 55); diff --git a/test/language/statements/for-await-of/dstr-array-rest-yield-ident-valid.js b/test/language/statements/for-await-of/dstr-array-rest-yield-ident-valid.js deleted file mode 100644 index 1cb9d4ebed..0000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-yield-ident-valid.js +++ /dev/null @@ -1,44 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-yield-ident-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentRestElement and outside of a generator function body, it should behave as an IdentifierReference. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield = 'prop'; -var x = {}; - -var counter = 0; - -async function fn() { - for await ([...x[yield]] of [[33, 44, 55]]) { - assert.sameValue(x.prop.length, 3); - assert.sameValue(x.prop[0], 33); - assert.sameValue(x.prop[1], 44); - assert.sameValue(x.prop[2], 55); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-empty-bool.js b/test/language/statements/for-await-of/dstr-obj-empty-bool.js deleted file mode 100644 index ad785f1954..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-empty-bool.js +++ /dev/null @@ -1,39 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-empty-bool.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (boolean value) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ - -var counter = 0; - -async function fn() { - for await ({} of [false]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-empty-num.js b/test/language/statements/for-await-of/dstr-obj-empty-num.js deleted file mode 100644 index bcf4e95a44..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-empty-num.js +++ /dev/null @@ -1,39 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-empty-num.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (number value) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ - -var counter = 0; - -async function fn() { - for await ({} of [0]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-empty-obj.js b/test/language/statements/for-await-of/dstr-obj-empty-obj.js deleted file mode 100644 index 4c0db8e5fc..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-empty-obj.js +++ /dev/null @@ -1,39 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-empty-obj.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (object value) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ - -var counter = 0; - -async function fn() { - for await ({} of [{}]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-empty-string.js b/test/language/statements/for-await-of/dstr-obj-empty-string.js deleted file mode 100644 index b4e26d6474..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-empty-string.js +++ /dev/null @@ -1,39 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-empty-string.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (string value) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ - -var counter = 0; - -async function fn() { - for await ({} of ['']) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-empty-symbol.js b/test/language/statements/for-await-of/dstr-obj-empty-symbol.js deleted file mode 100644 index a09130983c..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-empty-symbol.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-empty-symbol.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (symbol value) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var s = Symbol(); - -var counter = 0; - -async function fn() { - for await ({} of [s]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-first.js b/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-first.js deleted file mode 100644 index 7830d74f61..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-first.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-identifier-resolution-first.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Evaluation of DestructuringAssignmentTarget (first of many) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; -var y; - -var counter = 0; - -async function fn() { - for await ({ x, y } of [{ x: 3 }]) { - assert.sameValue(x, 3); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-last.js b/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-last.js deleted file mode 100644 index 46abcb9371..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-last.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-identifier-resolution-last.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Evaluation of DestructuringAssignmentTarget (last of many) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; -var w; - -var counter = 0; - -async function fn() { - for await ({ w, x } of [{ x: 4 }]) { - assert.sameValue(x, 4); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-lone.js b/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-lone.js deleted file mode 100644 index dcce9d28d9..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-lone.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-identifier-resolution-lone.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Evaluation of DestructuringAssignmentTarget (lone identifier) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; - -var counter = 0; - -async function fn() { - for await ({ x, } of [{ x: 2 }]) { - assert.sameValue(x, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-middle.js b/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-middle.js deleted file mode 100644 index 02ff3f7f5f..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-middle.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-identifier-resolution-middle.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Evaluation of DestructuringAssignmentTarget (within many) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; -var w, y; - -var counter = 0; - -async function fn() { - for await ({ w, x, y } of [{ x: 5 }]) { - assert.sameValue(x, 5); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-trlng.js b/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-trlng.js deleted file mode 100644 index dc1dfdb3f0..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-trlng.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-identifier-resolution-trlng.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Evaluation of DestructuringAssignmentTarget (lone identifier with trailing comma) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; - -var counter = 0; - -async function fn() { - for await ({ x } of [{ x: 1 }]) { - assert.sameValue(x, 1); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-identifier-yield-ident-valid.js b/test/language/statements/for-await-of/dstr-obj-id-identifier-yield-ident-valid.js deleted file mode 100644 index cbbad6d534..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-identifier-yield-ident-valid.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-identifier-yield-ident-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: yield is a valid IdentifierReference in an AssignmentProperty outside of strict mode and generator functions. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield; - -var counter = 0; - -async function fn() { - for await ({ yield } of [{ yield: 3 }]) { - assert.sameValue(yield, 3); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-assignment-missing.js b/test/language/statements/for-await-of/dstr-obj-id-init-assignment-missing.js deleted file mode 100644 index 27be57883e..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-assignment-missing.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-assignment-missing.case -// - src/dstr-assignment/default/for-await-of.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). (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ({ x = 1 } of [{}]) { - assert.sameValue(x, 1); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-assignment-null.js b/test/language/statements/for-await-of/dstr-obj-id-init-assignment-null.js deleted file mode 100644 index fce306b29f..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-assignment-null.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-assignment-null.case -// - src/dstr-assignment/default/for-await-of.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). (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ({ x = 1 } of [{ x: null }]) { - assert.sameValue(x, null); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-assignment-truthy.js b/test/language/statements/for-await-of/dstr-obj-id-init-assignment-truthy.js deleted file mode 100644 index 4d64159d02..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-assignment-truthy.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-assignment-truthy.case -// - src/dstr-assignment/default/for-await-of.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). (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ({ x = 1 } of [{ x: 2 }]) { - assert.sameValue(x, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-assignment-undef.js b/test/language/statements/for-await-of/dstr-obj-id-init-assignment-undef.js deleted file mode 100644 index 3d414449c1..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-assignment-undef.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-assignment-undef.case -// - src/dstr-assignment/default/for-await-of.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). (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ({ x = 1 } of [{ x: undefined }]) { - assert.sameValue(x, 1); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-evaluation.js b/test/language/statements/for-await-of/dstr-obj-id-init-evaluation.js deleted file mode 100644 index 1f1c5dfbf4..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-evaluation.js +++ /dev/null @@ -1,43 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-evaluation.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: The Initializer should only be evaluated if v is undefined. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var flag1 = false; -var flag2 = false; -var x, y; - -var counter = 0; - -async function fn() { - for await ({ x = flag1 = true, y = flag2 = true } of [{ y: 1 }]) { - assert.sameValue(flag1, true); - assert.sameValue(flag2, false); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-arrow.js b/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-arrow.js deleted file mode 100644 index 0905a9d9f9..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-arrow.js +++ /dev/null @@ -1,53 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-fn-name-arrow.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (ArrowFunction) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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 counter = 0; - -async function fn() { - for await ({ arrow = () => {} } of [{}]) { - assert.sameValue(arrow.name, 'arrow'); - verifyNotEnumerable(arrow, 'name'); - verifyNotWritable(arrow, 'name'); - verifyConfigurable(arrow, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-class.js b/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-class.js deleted file mode 100644 index ac2b9629b6..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-class.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-fn-name-class.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (ClassExpression) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [class, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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 counter = 0; - -async function fn() { - for await ({ xCls = class x {}, cls = class {}, xCls2 = class { static name() {} } } of [{}]) { - assert.notSameValue(xCls.name, 'xCls'); - assert.notSameValue(xCls2.name, 'xCls2'); - - assert.sameValue(cls.name, 'cls'); - verifyNotEnumerable(cls, 'name'); - verifyNotWritable(cls, 'name'); - verifyConfigurable(cls, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-cover.js b/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-cover.js deleted file mode 100644 index a8b5ffefbf..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-cover.js +++ /dev/null @@ -1,55 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-fn-name-cover.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (CoverParenthesizedExpression) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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 xCover, cover; - -var counter = 0; - -async function fn() { - for await ({ xCover = (0, function() {}), cover = (function() {}) } of [{}]) { - assert.notSameValue(xCover.name, 'xCover'); - - assert.sameValue(cover.name, 'cover'); - verifyNotEnumerable(cover, 'name'); - verifyNotWritable(cover, 'name'); - verifyConfigurable(cover, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-fn.js b/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-fn.js deleted file mode 100644 index 52d6f587ae..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-fn.js +++ /dev/null @@ -1,55 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-fn-name-fn.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (FunctionExpression) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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 xFn, fn; - -var counter = 0; - -async function fn() { - for await ({ xFn = function x() {}, fn = function() {} } of [{}]) { - assert.notSameValue(xFn.name, 'xFn'); - - assert.sameValue(fn.name, 'fn'); - verifyNotEnumerable(fn, 'name'); - verifyNotWritable(fn, 'name'); - verifyConfigurable(fn, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-gen.js b/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-gen.js deleted file mode 100644 index 95ffac652f..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-gen.js +++ /dev/null @@ -1,55 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-fn-name-gen.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (GeneratorExpression) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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 xGen, gen; - -var counter = 0; - -async function fn() { - for await ({ xGen = function* x() {}, gen = function*() {} } of [{}]) { - assert.notSameValue(xGen.name, 'xGen'); - - assert.sameValue(gen.name, 'gen'); - verifyNotEnumerable(gen, 'name'); - verifyNotWritable(gen, 'name'); - verifyConfigurable(gen, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-in.js b/test/language/statements/for-await-of/dstr-obj-id-init-in.js deleted file mode 100644 index 5ccf0a6183..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-in.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-in.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: The Initializer in an AssignmentProperty may be an `in` expression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var prop; - -var counter = 0; - -async function fn() { - for await ({ prop = 'x' in {} } of [{}]) { - assert.sameValue(prop, false); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-order.js b/test/language/statements/for-await-of/dstr-obj-id-init-order.js deleted file mode 100644 index 67b87e0f6d..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-order.js +++ /dev/null @@ -1,43 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-order.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Initializer values should be assigned in left-to-right order. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = 0; -var a, b; - -var counter = 0; - -async function fn() { - for await ({ a = x += 1, b = x *= 2 } of [{}]) { - assert.sameValue(a, 1); - assert.sameValue(b, 2); - assert.sameValue(x, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-simple-no-strict.js b/test/language/statements/for-await-of/dstr-obj-id-init-simple-no-strict.js deleted file mode 100644 index 159a1dc274..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-simple-no-strict.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-simple-no-strict.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Evaluation of DestructuringAssignmentTarget. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var eval, arguments; - -var counter = 0; - -async function fn() { - for await ({ eval = 3, arguments = 4 } of [{}]) { - assert.sameValue(eval, 3); - assert.sameValue(arguments, 4); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-yield-expr.js b/test/language/statements/for-await-of/dstr-obj-id-init-yield-expr.js deleted file mode 100644 index bbe38946b1..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-yield-expr.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-yield-expr.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the Initializer of an AssignmentProperty and within a generator function body, it should behave as a YieldExpression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var iterationResult, x, iter; - -iter = (function*() { - -var counter = 0; - -async function fn() { - for await ({ x = yield } of [{}]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -}()); - -iterationResult = iter.next(); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, false); -assert.sameValue(x, undefined); - -iterationResult = iter.next(3); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, true); -assert.sameValue(x, 3); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-yield-ident-valid.js b/test/language/statements/for-await-of/dstr-obj-id-init-yield-ident-valid.js deleted file mode 100644 index b367dcca14..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-yield-ident-valid.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-yield-ident-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the Initializer of an AssignmentProperty and outside of a generator function body, it should behave as an IdentifierReference. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield = 3; -var x; - -var counter = 0; - -async function fn() { - for await ({ x = yield } of [{}]) { - assert.sameValue(x, 3); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-put-unresolvable-no-strict.js b/test/language/statements/for-await-of/dstr-obj-id-put-unresolvable-no-strict.js deleted file mode 100644 index d385aa8367..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-put-unresolvable-no-strict.js +++ /dev/null @@ -1,44 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-put-unresolvable-no-strict.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Outside of strict mode, if the the assignment target is an unresolvable reference, a new `var` binding should be created in the environment record. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -{ - -var counter = 0; - -async function fn() { - for await ({ unresolvable } of [{}]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -assert.sameValue(unresolvable, undefined); diff --git a/test/language/statements/for-await-of/dstr-obj-id-simple-no-strict.js b/test/language/statements/for-await-of/dstr-obj-id-simple-no-strict.js deleted file mode 100644 index 8f0f992cfa..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-simple-no-strict.js +++ /dev/null @@ -1,43 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-simple-no-strict.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Evaluation of DestructuringAssignmentTarget. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var eval, arguments; - -var counter = 0; - -async function fn() { - for await ({ eval, arguments } of [{ eval: 1, arguments: 2 }]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -assert.sameValue(eval, 1); -assert.sameValue(arguments, 2); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-missing.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-missing.js deleted file mode 100644 index 6a87653fc7..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-missing.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-assignment-missing.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: If the Initializer is present and v is undefined, the Initializer should be evaluated and the result assigned to the target reference (non-existent property) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ({ y: x = 1 } of [{}]) { - assert.sameValue(x, 1); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-null.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-null.js deleted file mode 100644 index c67bac5676..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-null.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-assignment-null.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: If the Initializer is present and v is not undefined, the Initializer should be evaluated and the result assigned to the target reference (null value) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ({ y: x = 1 } of [{ y: null }]) { - assert.sameValue(x, null); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-truthy.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-truthy.js deleted file mode 100644 index 66c39eb535..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-truthy.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-assignment-truthy.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: If the Initializer is present and v is not undefined, the Initializer should be evaluated and the result assigned to the target reference (truthy value) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ({ y: x = 1 } of [{ y: 2 }]) { - assert.sameValue(x, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-undef.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-undef.js deleted file mode 100644 index 0042c030a8..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-undef.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-assignment-undef.case -// - src/dstr-assignment/default/for-await-of.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 value) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ({ y: x = 1 } of [{ y: undefined }]) { - assert.sameValue(x, 1); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-evaluation.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-evaluation.js deleted file mode 100644 index 1d70028902..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-evaluation.js +++ /dev/null @@ -1,45 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-evaluation.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: The Initializer should only be evaluated if v is undefined. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var flag1 = false; -var flag2 = false; -var x, y; - -var counter = 0; - -async function fn() { - for await ({ x: x = flag1 = true, y: y = flag2 = true } of [{ y: 1 }]) { - assert.sameValue(x, true, 'value of `x`'); - assert.sameValue(flag1, true, 'value of `flag1`'); - assert.sameValue(y, 1, 'value of `y`'); - assert.sameValue(flag2, false, 'value of `flag2`'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-arrow.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-arrow.js deleted file mode 100644 index ad7a8b4545..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-arrow.js +++ /dev/null @@ -1,54 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-fn-name-arrow.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (ArrowFunction) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt - [...] 7. If Initializer is present and v is undefined and - IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of - DestructuringAssignmentTarget are both true, then - a. Let hasNameProperty be HasOwnProperty(rhsValue, "name"). - b. ReturnIfAbrupt(hasNameProperty). - c. If hasNameProperty is false, perform SetFunctionName(rhsValue, - GetReferencedName(lref)). - ----*/ -var arrow; - -var counter = 0; - -async function fn() { - for await ({ x: arrow = () => {} } of [{}]) { - assert.sameValue(arrow.name, 'arrow'); - verifyNotEnumerable(arrow, 'name'); - verifyNotWritable(arrow, 'name'); - verifyConfigurable(arrow, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-class.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-class.js deleted file mode 100644 index d37d7ec7ce..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-class.js +++ /dev/null @@ -1,57 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-fn-name-class.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (ClassExpression) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [class, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt - [...] 7. If Initializer is present and v is undefined and - IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of - DestructuringAssignmentTarget are both true, then - a. Let hasNameProperty be HasOwnProperty(rhsValue, "name"). - b. ReturnIfAbrupt(hasNameProperty). - c. If hasNameProperty is false, perform SetFunctionName(rhsValue, - GetReferencedName(lref)). - ----*/ -var xCls, cls, xCls2; - -var counter = 0; - -async function fn() { - for await ({ x: xCls = class x {}, x: cls = class {}, x: xCls2 = class { static name() {} } } of [{}]) { - assert.notSameValue(xCls.name, 'xCls'); - assert.notSameValue(xCls2.name, 'xCls2'); - - assert.sameValue(cls.name, 'cls'); - verifyNotEnumerable(cls, 'name'); - verifyNotWritable(cls, 'name'); - verifyConfigurable(cls, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-cover.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-cover.js deleted file mode 100644 index 5b3e3105f5..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-cover.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-fn-name-cover.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (CoverParenthesizedExpression) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt - [...] 7. If Initializer is present and v is undefined and - IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of - DestructuringAssignmentTarget are both true, then - a. Let hasNameProperty be HasOwnProperty(rhsValue, "name"). - b. ReturnIfAbrupt(hasNameProperty). - c. If hasNameProperty is false, perform SetFunctionName(rhsValue, - GetReferencedName(lref)). - ----*/ -var xCover, cover; - -var counter = 0; - -async function fn() { - for await ({ x: xCover = (0, function() {}), x: cover = (function() {}) } of [{}]) { - assert.notSameValue(xCover.name, 'xCover'); - - assert.sameValue(cover.name, 'cover'); - verifyNotEnumerable(cover, 'name'); - verifyNotWritable(cover, 'name'); - verifyConfigurable(cover, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-fn.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-fn.js deleted file mode 100644 index 933a1146d5..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-fn.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-fn-name-fn.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (FunctionExpression) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt - [...] 7. If Initializer is present and v is undefined and - IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of - DestructuringAssignmentTarget are both true, then - a. Let hasNameProperty be HasOwnProperty(rhsValue, "name"). - b. ReturnIfAbrupt(hasNameProperty). - c. If hasNameProperty is false, perform SetFunctionName(rhsValue, - GetReferencedName(lref)). - ----*/ -var xFn, fn; - -var counter = 0; - -async function fn() { - for await ({ x: xFn = function x() {}, x: fn = function() {} } of [{}]) { - assert.notSameValue(xFn.name, 'xFn'); - - assert.sameValue(fn.name, 'fn'); - verifyNotEnumerable(fn, 'name'); - verifyNotWritable(fn, 'name'); - verifyConfigurable(fn, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-gen.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-gen.js deleted file mode 100644 index e9ad13e072..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-gen.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-fn-name-gen.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (GeneratorExpression) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt - [...] 7. If Initializer is present and v is undefined and - IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of - DestructuringAssignmentTarget are both true, then - a. Let hasNameProperty be HasOwnProperty(rhsValue, "name"). - b. ReturnIfAbrupt(hasNameProperty). - c. If hasNameProperty is false, perform SetFunctionName(rhsValue, - GetReferencedName(lref)). - ----*/ -var xGen, gen; - -var counter = 0; - -async function fn() { - for await ({ x: xGen = function* x() {}, x: gen = function*() {} } of [{}]) { - assert.notSameValue(xGen.name, 'xGen'); - - assert.sameValue(gen.name, 'gen'); - verifyNotEnumerable(gen, 'name'); - verifyNotWritable(gen, 'name'); - verifyConfigurable(gen, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-in.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-in.js deleted file mode 100644 index 119402efa1..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-in.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-in.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: The Initializer in an AssignmentElement may be an `in` expression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var prop; - -var counter = 0; - -async function fn() { - for await ({ x: prop = 'x' in {} } of [{}]) { - assert.sameValue(prop, false); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-yield-expr.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-yield-expr.js deleted file mode 100644 index 614793f468..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-yield-expr.js +++ /dev/null @@ -1,55 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-yield-expr.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the Initializer of an AssignmentElement and within a generator function body, it should behave as a YieldExpression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var iterationResult, iter, x; -iter = (function*() { - -var counter = 0; - -async function fn() { - for await ({ x: x = yield } of [{}]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -}()); - -iterationResult = iter.next(); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, false); -assert.sameValue(x, undefined); - -iterationResult = iter.next(86); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, true); -assert.sameValue(x, 86); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-yield-ident-valid.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-yield-ident-valid.js deleted file mode 100644 index 7b559b44b2..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-yield-ident-valid.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-yield-ident-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the Initializer of an AssignmentElement and outside of a generator function body, it should behave as an IdentifierReference. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield = 4; -var x; - -var counter = 0; - -async function fn() { - for await ({ x: x = yield } of [{}]) { - assert.sameValue(x, 4); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-target-yield-expr.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-target-yield-expr.js deleted file mode 100644 index c281b74ed6..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-target-yield-expr.js +++ /dev/null @@ -1,57 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-target-yield-expr.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentElement and within a generator function body, it should behave as a YieldExpression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = {}; -var iterationResult, iter; - -iter = (function*() { - -var counter = 0; - -async function fn() { - for await ({ x: x[yield] } of [{ x: 23 }]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -}()); - -iterationResult = iter.next(); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, false); -assert.sameValue(x.prop, undefined); - -iterationResult = iter.next('prop'); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, true); -assert.sameValue(x.prop, 23); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-target-yield-ident-valid.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-target-yield-ident-valid.js deleted file mode 100644 index 5670e4b7da..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-target-yield-ident-valid.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-target-yield-ident-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentElement and outside of a generator function body, it should behave as an IdentifierReference. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield = 'prop'; -var x = {}; - -var counter = 0; - -async function fn() { - for await ({ x: x[yield] } of [{ x: 23 }]) { - assert.sameValue(x.prop, 23); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-first.js b/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-first.js deleted file mode 100644 index 75fd082377..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-first.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-identifier-resolution-first.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Evaluation of DestructuringAssignmentTarget (first of many). (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; -var y; - -var counter = 0; - -async function fn() { - for await ({ a: x, y } of [{ a: 3 }]) { - assert.sameValue(x, 3); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-last.js b/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-last.js deleted file mode 100644 index 31e0e54ccc..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-last.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-identifier-resolution-last.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Evaluation of DestructuringAssignmentTarget (last of many). (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; -var w; - -var counter = 0; - -async function fn() { - for await ({ w, a: x } of [{ a: 4 }]) { - assert.sameValue(x, 4); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-lone.js b/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-lone.js deleted file mode 100644 index 5a5b775121..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-lone.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-identifier-resolution-lone.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Evaluation of DestructuringAssignmentTarget (lone element). (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; - -var counter = 0; - -async function fn() { - for await ({ a: x } of [{ a: 1 }]) { - assert.sameValue(x, 1); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-middle.js b/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-middle.js deleted file mode 100644 index 827c0081f2..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-middle.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-identifier-resolution-middle.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Evaluation of DestructuringAssignmentTarget (within many). (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; -var w, y; - -var counter = 0; - -async function fn() { - for await ({ w, a: x, y } of [{ a: 5 }]) { - assert.sameValue(x, 5); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-trlng.js b/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-trlng.js deleted file mode 100644 index 34c9ed03a1..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-trlng.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-identifier-resolution-trlng.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Evaluation of DestructuringAssignmentTarget (lone element with trailing comma). (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; - -var counter = 0; - -async function fn() { - for await ({ a: x, } of [{ a: 2 }]) { - assert.sameValue(x, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-name-evaluation.js b/test/language/statements/for-await-of/dstr-obj-prop-name-evaluation.js deleted file mode 100644 index 2ddb1000eb..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-name-evaluation.js +++ /dev/null @@ -1,42 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-name-evaluation.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: PropertyName of an AssignmentProperty may be a ComputedPropertyName. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x, y, xy; - -var counter = 0; - -async function fn() { - for await ({ ['x' + 'y']: x } of [{ x: 1, xy: 23, y: 2 }]) { - assert.sameValue(x, 23); - assert.sameValue(y, undefined); - assert.sameValue(xy, undefined); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-nested-array-yield-expr.js b/test/language/statements/for-await-of/dstr-obj-prop-nested-array-yield-expr.js deleted file mode 100644 index 497cc6c313..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-nested-array-yield-expr.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-nested-array-yield-expr.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the Initializer of a nested destructuring assignment and within a generator function body, it should behave as a YieldExpression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var iterationResult, iter, x; - -iter = (function*() { - -var counter = 0; - -async function fn() { - for await ({ x: [x = yield] } of [{ x: [] }]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -}()); - -iterationResult = iter.next(); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, false); -assert.sameValue(x, undefined); - -iterationResult = iter.next(24601); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, true); -assert.sameValue(x, 24601); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-nested-array-yield-ident-valid.js b/test/language/statements/for-await-of/dstr-obj-prop-nested-array-yield-ident-valid.js deleted file mode 100644 index fb7d3f4132..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-nested-array-yield-ident-valid.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-nested-array-yield-ident-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the Initializer of a nested destructuring assignment and outside of a generator function body, it should behave as an IdentifierReference. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield = 22; -var x; - -var counter = 0; - -async function fn() { - for await ({ x: [x = yield] } of [{ x: [] }]) { - assert.sameValue(x, 22); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-nested-array.js b/test/language/statements/for-await-of/dstr-obj-prop-nested-array.js deleted file mode 100644 index f1a26cb1a5..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-nested-array.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-nested-array.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an array literal, it should be parsed parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var y; - -var counter = 0; - -async function fn() { - for await ({ x: [y] } of [{ x: [321] }]) { - assert.sameValue(y, 321); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-nested-obj-yield-expr.js b/test/language/statements/for-await-of/dstr-obj-prop-nested-obj-yield-expr.js deleted file mode 100644 index 9219d743c5..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-nested-obj-yield-expr.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-nested-obj-yield-expr.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the Initializer of a nested destructuring assignment and within a generator function body, it should behave as a YieldExpression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var iterationResult, iter, x = undefined; - -iter = (function*() { - -var counter = 0; - -async function fn() { - for await ({ x: { x = yield } } of [{ x: {} }]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -}()); - -iterationResult = iter.next(); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, false); -assert.sameValue(x, undefined); - -iterationResult = iter.next(4); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, true); -assert.sameValue(x, 4); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-nested-obj-yield-ident-valid.js b/test/language/statements/for-await-of/dstr-obj-prop-nested-obj-yield-ident-valid.js deleted file mode 100644 index f7e0f63873..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-nested-obj-yield-ident-valid.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-nested-obj-yield-ident-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the Initializer of a nested destructuring assignment and outside of a generator function body, it should behave as an IdentifierReference. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield = 2; -var result, x; - -var counter = 0; - -async function fn() { - for await ({ x: { x = yield } } of [{ x: {} }]) { - assert.sameValue(x, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-nested-obj.js b/test/language/statements/for-await-of/dstr-obj-prop-nested-obj.js deleted file mode 100644 index 55e6e14b43..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-nested-obj.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-nested-obj.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an object literal, it should be parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var result, y; - -var counter = 0; - -async function fn() { - for await ({ x: { y } } of [{ x: { y: 2 } }]) { - assert.sameValue(y, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-put-order.js b/test/language/statements/for-await-of/dstr-obj-prop-put-order.js deleted file mode 100644 index 0a48ac6b61..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-put-order.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-put-order.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: The AssignmentElements in an AssignmentElementList are evaluated in left- to-right order. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ({ z: x, a: x } of [{ a: 2, z: 1 }]) { - assert.sameValue(x, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-put-prop-ref-no-get.js b/test/language/statements/for-await-of/dstr-obj-prop-put-prop-ref-no-get.js deleted file mode 100644 index 04b04ad028..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-put-prop-ref-no-get.js +++ /dev/null @@ -1,48 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-put-prop-ref-no-get.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: If the DestructuringAssignmentTarget of an AssignmentElement is a PropertyReference, it should not be evaluated. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var setValue; -var x = { - get y() { - $ERROR('The property should not be accessed.'); - }, - set y(val) { - setValue = val; - } -}; - -var counter = 0; - -async function fn() { - for await ({ a: x.y } of [{ a: 23 }]) { - assert.sameValue(setValue, 23); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-put-prop-ref.js b/test/language/statements/for-await-of/dstr-obj-prop-put-prop-ref.js deleted file mode 100644 index 730e40577b..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-put-prop-ref.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-put-prop-ref.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: The DestructuringAssignmentTarget of an AssignmentElement may be a PropertyReference. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = {}; - -var counter = 0; - -async function fn() { - for await ({ xy: x.y } of [{ xy: 4 }]) { - assert.sameValue(x.y, 4); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-put-unresolvable-no-strict.js b/test/language/statements/for-await-of/dstr-obj-prop-put-unresolvable-no-strict.js deleted file mode 100644 index d374794b4b..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-put-unresolvable-no-strict.js +++ /dev/null @@ -1,44 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-put-unresolvable-no-strict.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Outside of strict mode, if the the assignment target is an unresolvable reference, a new `var` binding should be created in the environment record. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -{ - -var counter = 0; - -async function fn() { - for await ({ x: unresolvable } of [{}]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -assert.sameValue(unresolvable, undefined); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-descriptors.js b/test/language/statements/for-await-of/dstr-obj-rest-descriptors.js deleted file mode 100644 index 5dcfe88c61..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-descriptors.js +++ /dev/null @@ -1,54 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-descriptors.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Object created from rest deconstruction doesn't copy source object property descriptors. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var rest; -var obj = {}; -Object.defineProperty(obj, "a", { value: 3, configurable: false, enumerable: true }); -Object.defineProperty(obj, "b", { value: 4, writable: false, enumerable: true }); - -var counter = 0; - -async function fn() { - for await ({...rest} of [obj]) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); - - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-empty-obj.js b/test/language/statements/for-await-of/dstr-obj-rest-empty-obj.js deleted file mode 100644 index fb8351c3b9..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-empty-obj.js +++ /dev/null @@ -1,44 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-empty-obj.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: RestBindingInitialization creates a new object even if lhs is an empty object (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var rest; - - -var counter = 0; - -async function fn() { - for await ({...rest} of [{}]) { - assert.notSameValue(rest, undefined); - assert.notSameValue(rest, null); - assert.sameValue(typeof rest, "object"); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-getter.js b/test/language/statements/for-await-of/dstr-obj-rest-getter.js deleted file mode 100644 index 6c20d66a60..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-getter.js +++ /dev/null @@ -1,48 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-getter.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Getter is called when obj is being deconstructed to a rest Object (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; -var count = 0; - -var counter = 0; - -async function fn() { - for await ({...x} of [{ get v() { count++; return 2; } }]) { - assert.sameValue(x.v, 2); - assert.sameValue(count, 1); - - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-nested-obj-nested-rest.js b/test/language/statements/for-await-of/dstr-obj-rest-nested-obj-nested-rest.js deleted file mode 100644 index eb5fbd358a..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-nested-obj-nested-rest.js +++ /dev/null @@ -1,55 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-nested-obj-nested-rest.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an object literal, it should be parsed parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment and object rest desconstruction is allowed in that case. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var a, b, c, rest; - -var counter = 0; - -async function fn() { - for await ({a, b, ...{c, ...rest}} of [{a: 1, b: 2, c: 3, d: 4, e: 5}]) { - assert.sameValue(a, 1); - assert.sameValue(b, 2); - assert.sameValue(c, 3); - - assert.sameValue(rest.d, 4); - assert.sameValue(rest.e, 5); - - verifyEnumerable(rest, "d"); - verifyWritable(rest, "d"); - verifyConfigurable(rest, "d"); - - verifyEnumerable(rest, "e"); - verifyWritable(rest, "e"); - verifyConfigurable(rest, "e"); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-nested-obj.js b/test/language/statements/for-await-of/dstr-obj-rest-nested-obj.js deleted file mode 100644 index 54b86c9406..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-nested-obj.js +++ /dev/null @@ -1,45 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-nested-obj.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an object literal, it should be parsed parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var a, b, c, d, e; - -var counter = 0; - -async function fn() { - for await ({a, b, ...{c, e}} of [{a: 1, b: 2, c: 3, d: 4, e: 5}]) { - assert.sameValue(a, 1); - assert.sameValue(b, 2); - assert.sameValue(c, 3); - assert.sameValue(e, 5); - assert.sameValue(d, undefined); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-number.js b/test/language/statements/for-await-of/dstr-obj-rest-number.js deleted file mode 100644 index fcc93e86bd..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-number.js +++ /dev/null @@ -1,44 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-number.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: RestBindingInitialization creates a new object even if lhs is a Number (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var rest; - - -var counter = 0; - -async function fn() { - for await ({...rest} of [51]) { - assert.notSameValue(rest, undefined); - assert.notSameValue(rest, null); - assert(rest instanceof Object); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-obj-own-property.js b/test/language/statements/for-await-of/dstr-obj-rest-obj-own-property.js deleted file mode 100644 index d6e9b17555..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-obj-own-property.js +++ /dev/null @@ -1,46 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-obj-own-property.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Rest object contains just source object's own properties (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var o = Object.create({ x: 1, y: 2 }); -o.z = 3; - -var x, y, z; - -var counter = 0; - -async function fn() { - for await ({ x, ...{y , z} } of [o]) { - assert.sameValue(x, 1); - assert.sameValue(y, undefined); - assert.sameValue(z, 3); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-same-name.js b/test/language/statements/for-await-of/dstr-obj-rest-same-name.js deleted file mode 100644 index 63c531898d..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-same-name.js +++ /dev/null @@ -1,54 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-same-name.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Proper setting in the values for rest name equal to a property name. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var o = { - x: 42, - y: 39, - z: 'cheeseburger' -}; - -var x, y, z; - -var counter = 0; - -async function fn() { - for await ({ x, ...z } of [o]) { - assert.sameValue(x, 42); - assert.sameValue(y, undefined); - assert.sameValue(z.y, 39); - assert.sameValue(z.z, 'cheeseburger'); - - var keys = Object.keys(z); - assert.sameValue(keys.length, 2); - assert.sameValue(keys[0], 'y'); - assert.sameValue(keys[1], 'z'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-skip-non-enumerable.js b/test/language/statements/for-await-of/dstr-obj-rest-skip-non-enumerable.js deleted file mode 100644 index 70f108e0d0..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-skip-non-enumerable.js +++ /dev/null @@ -1,54 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-skip-non-enumerable.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Rest object doesn't contain non-enumerable properties (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var rest; -var obj = {a: 3, b: 4}; -Object.defineProperty(obj, "x", { value: 4, enumerable: false }); - -var counter = 0; - -async function fn() { - for await ({...rest} of [obj]) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); - assert.sameValue(Object.getOwnPropertyDescriptor(rest, "x"), undefined); - - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-str-val.js b/test/language/statements/for-await-of/dstr-obj-rest-str-val.js deleted file mode 100644 index be48d9b239..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-str-val.js +++ /dev/null @@ -1,45 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-str-val.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: RestBindingInitialization creats an object with indexes as property name (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var rest; - - -var counter = 0; - -async function fn() { - for await ({...rest} of ["foo"]) { - assert.sameValue(rest["0"], "f"); - assert.sameValue(rest["1"], "o"); - assert.sameValue(rest["2"], "o"); - assert(rest instanceof Object); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-symbol-val.js b/test/language/statements/for-await-of/dstr-obj-rest-symbol-val.js deleted file mode 100644 index 77b0e7fdf7..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-symbol-val.js +++ /dev/null @@ -1,44 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-symbol-val.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: RestBindingInitialization creates a new object if lhs is a Symbol (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var rest; - - -var counter = 0; - -async function fn() { - for await ({...rest} of [Symbol("foo")]) { - assert.notSameValue(rest, undefined); - assert.notSameValue(rest, null); - assert(rest instanceof Object); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-to-property-with-setter.js b/test/language/statements/for-await-of/dstr-obj-rest-to-property-with-setter.js deleted file mode 100644 index 9c28cb5805..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-to-property-with-setter.js +++ /dev/null @@ -1,51 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-to-property-with-setter.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an object property setter, its value should be binded as rest object. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var settedValue; -var executedGetter = false; -var src = { - get y() { executedGetter = true; }, - set y(v) { - settedValue = v; - } -} -src.y = undefined; - -var counter = 0; - -async function fn() { - for await ({...src.y} of [{ x: 1, y: 2}]) { - assert.sameValue(settedValue.x, 1); - assert.sameValue(settedValue.y, 2); - assert(!executedGetter, "The property should not be accessed"); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-to-property.js b/test/language/statements/for-await-of/dstr-obj-rest-to-property.js deleted file mode 100644 index 3f8a1e9d87..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-to-property.js +++ /dev/null @@ -1,47 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-to-property.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an object property, its value should be binded as rest object. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var src = {}; - -var counter = 0; - -async function fn() { - for await ({...src.y} of [{ x: 1, y: 2}]) { - assert.sameValue(src.y.x, 1); - assert.sameValue(src.y.y, 2); - - verifyEnumerable(src, "y"); - verifyWritable(src, "y"); - verifyConfigurable(src, "y"); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-valid-object.js b/test/language/statements/for-await-of/dstr-obj-rest-valid-object.js deleted file mode 100644 index 5462f7fa22..0000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-valid-object.js +++ /dev/null @@ -1,54 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-valid-object.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Rest object contains just unextracted data (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var rest, a, b; - - -var counter = 0; - -async function fn() { - for await ({a, b, ...rest} of [{x: 1, y: 2, a: 5, b: 3}]) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); - assert.sameValue(rest.a, undefined); - assert.sameValue(rest.b, undefined); - - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); -- GitLab