diff --git a/crates/oxc_ast/src/ast/js.rs b/crates/oxc_ast/src/ast/js.rs index 2c46018a7cb6b..73940b08d33c1 100644 --- a/crates/oxc_ast/src/ast/js.rs +++ b/crates/oxc_ast/src/ast/js.rs @@ -884,9 +884,16 @@ pub enum AssignmentTargetProperty<'a> { #[ast(visit)] #[derive(Debug)] #[generate_derive(CloneIn, GetSpan, GetSpanMut, ContentEq, ESTree)] +#[estree( + rename = "Property", + add_fields(kind = "\"init\"", method = false, shorthand = true, computed = false), + add_ts = "kind: \"init\"; method: false; shorthand: false; computed: false" +)] pub struct AssignmentTargetPropertyIdentifier<'a> { pub span: Span, + #[estree(rename = "key")] pub binding: IdentifierReference<'a>, + #[estree(rename = "value", via = crate::serialize::AssignmentTargetPropertyIdentifierValue(self), ts_type = "IdentifierReference | AssignmentTargetWithDefault")] pub init: Option>, } diff --git a/crates/oxc_ast/src/generated/derive_estree.rs b/crates/oxc_ast/src/generated/derive_estree.rs index 6743b62eb74c7..795b4b13ddf25 100644 --- a/crates/oxc_ast/src/generated/derive_estree.rs +++ b/crates/oxc_ast/src/generated/derive_estree.rs @@ -709,11 +709,18 @@ impl Serialize for AssignmentTargetProperty<'_> { impl Serialize for AssignmentTargetPropertyIdentifier<'_> { fn serialize(&self, serializer: S) -> Result { let mut map = serializer.serialize_map(None)?; - map.serialize_entry("type", "AssignmentTargetPropertyIdentifier")?; + map.serialize_entry("type", "Property")?; map.serialize_entry("start", &self.span.start)?; map.serialize_entry("end", &self.span.end)?; - map.serialize_entry("binding", &self.binding)?; - map.serialize_entry("init", &self.init)?; + map.serialize_entry("key", &self.binding)?; + map.serialize_entry( + "value", + &crate::serialize::AssignmentTargetPropertyIdentifierValue(self), + )?; + map.serialize_entry("kind", &"init")?; + map.serialize_entry("method", &false)?; + map.serialize_entry("shorthand", &true)?; + map.serialize_entry("computed", &false)?; map.end() } } diff --git a/crates/oxc_ast/src/serialize.rs b/crates/oxc_ast/src/serialize.rs index a30844b66ff10..301e3618f5e9a 100644 --- a/crates/oxc_ast/src/serialize.rs +++ b/crates/oxc_ast/src/serialize.rs @@ -307,3 +307,33 @@ impl Serialize for ArrowFunctionExpressionBody<'_> { } } } + +pub struct AssignmentTargetPropertyIdentifierValue<'a>( + pub &'a AssignmentTargetPropertyIdentifier<'a>, +); + +impl Serialize for AssignmentTargetPropertyIdentifierValue<'_> { + fn serialize(&self, serializer: S) -> Result { + if let Some(init) = &self.0.init { + AssignmentTargetPropertyIdentifierValueAssignmentPattern { + span: self.0.span, + left: &self.0.binding, + right: init, + } + .serialize(serializer) + } else { + self.0.binding.serialize(serializer) + } + } +} + +/// wrapper to serialize same as `AssignmentTargetWithDefault` +/// but without extra enum/Box for `AssignmentTargetWithDefault.binding` +#[derive(Serialize)] +#[serde(tag = "type", rename = "AssignmentPattern")] +pub struct AssignmentTargetPropertyIdentifierValueAssignmentPattern<'a> { + #[serde(flatten)] + pub span: Span, + pub left: &'a IdentifierReference<'a>, + pub right: &'a Expression<'a>, +} diff --git a/npm/oxc-types/types.d.ts b/npm/oxc-types/types.d.ts index dedbd6daf94c8..5f8a9258cb22f 100644 --- a/npm/oxc-types/types.d.ts +++ b/npm/oxc-types/types.d.ts @@ -268,9 +268,13 @@ export interface AssignmentTargetWithDefault extends Span { export type AssignmentTargetProperty = AssignmentTargetPropertyIdentifier | AssignmentTargetPropertyProperty; export interface AssignmentTargetPropertyIdentifier extends Span { - type: 'AssignmentTargetPropertyIdentifier'; - binding: IdentifierReference; - init: Expression | null; + type: 'Property'; + key: IdentifierReference; + value: IdentifierReference | AssignmentTargetWithDefault; + kind: 'init'; + method: false; + shorthand: false; + computed: false; } export interface AssignmentTargetPropertyProperty extends Span { diff --git a/tasks/ast_tools/src/derives/estree.rs b/tasks/ast_tools/src/derives/estree.rs index 65b214b69dae5..8bfcab6843b73 100644 --- a/tasks/ast_tools/src/derives/estree.rs +++ b/tasks/ast_tools/src/derives/estree.rs @@ -4,7 +4,7 @@ use std::borrow::Cow; use proc_macro2::TokenStream; use quote::quote; -use syn::{parse_str, Expr, Type}; +use syn::{parse_str, Expr}; use crate::{ schema::{Def, EnumDef, FieldDef, Schema, StructDef, TypeDef, VariantDef, Visibility}, @@ -186,9 +186,9 @@ fn parse_estree_attr(location: AttrLocation, part: AttrPart) -> Result<()> { /// Generate body of `serialize` method for a struct. fn generate_body_for_struct(struct_def: &StructDef, schema: &Schema) -> TokenStream { if let Some(via_str) = struct_def.estree.via.as_deref() { - let via_ty = parse_str::(via_str).unwrap(); + let via_expr = parse_str::(via_str).unwrap(); return quote! { - #via_ty::from(self).serialize(serializer) + #via_expr.serialize(serializer) }; } diff --git a/tasks/coverage/snapshots/estree_test262.snap b/tasks/coverage/snapshots/estree_test262.snap index b7ca1c69c6cac..0f6505ce5bd66 100644 --- a/tasks/coverage/snapshots/estree_test262.snap +++ b/tasks/coverage/snapshots/estree_test262.snap @@ -2,7 +2,7 @@ commit: bc5c1417 estree_test262 Summary: AST Parsed : 44293/44293 (100.00%) -Positive Passed: 37962/44293 (85.71%) +Positive Passed: 38154/44293 (86.14%) Mismatch: tasks/coverage/test262/test/annexB/built-ins/RegExp/prototype/compile/flags-string-invalid.js Mismatch: tasks/coverage/test262/test/annexB/built-ins/RegExp/prototype/compile/flags-undefined.js Mismatch: tasks/coverage/test262/test/annexB/built-ins/RegExp/prototype/compile/pattern-regexp-props.js @@ -17,7 +17,6 @@ serde_json error: lone leading surrogate in hex escape at line 154 column 28 Mismatch: tasks/coverage/test262/test/annexB/built-ins/escape/argument_bigint.js Mismatch: tasks/coverage/test262/test/annexB/built-ins/unescape/argument_bigint.js -Mismatch: tasks/coverage/test262/test/annexB/language/expressions/assignment/dstr/object-pattern-emulates-undefined.js Mismatch: tasks/coverage/test262/test/built-ins/Array/fromAsync/asyncitems-arraylike-length-accessor-throws.js Mismatch: tasks/coverage/test262/test/built-ins/Array/fromAsync/asyncitems-asynciterator-not-callable.js Mismatch: tasks/coverage/test262/test/built-ins/Array/fromAsync/asyncitems-bigint.js @@ -201,18 +200,7 @@ Mismatch: tasks/coverage/test262/test/built-ins/Iterator/concat/throws-typeerror Mismatch: tasks/coverage/test262/test/built-ins/Iterator/concat/throws-typeerror-when-iterator-not-an-object.js Mismatch: tasks/coverage/test262/test/built-ins/Iterator/from/primitives.js Mismatch: tasks/coverage/test262/test/built-ins/Iterator/prototype/Symbol.iterator/return-val.js -Mismatch: tasks/coverage/test262/test/built-ins/Iterator/prototype/drop/underlying-iterator-advanced-in-parallel.js -Mismatch: tasks/coverage/test262/test/built-ins/Iterator/prototype/every/iterator-has-no-return.js -Mismatch: tasks/coverage/test262/test/built-ins/Iterator/prototype/filter/iterator-already-exhausted.js -Mismatch: tasks/coverage/test262/test/built-ins/Iterator/prototype/filter/underlying-iterator-advanced-in-parallel.js -Mismatch: tasks/coverage/test262/test/built-ins/Iterator/prototype/find/iterator-has-no-return.js -Mismatch: tasks/coverage/test262/test/built-ins/Iterator/prototype/flatMap/iterator-already-exhausted.js -Mismatch: tasks/coverage/test262/test/built-ins/Iterator/prototype/flatMap/underlying-iterator-advanced-in-parallel.js -Mismatch: tasks/coverage/test262/test/built-ins/Iterator/prototype/map/iterator-already-exhausted.js -Mismatch: tasks/coverage/test262/test/built-ins/Iterator/prototype/map/underlying-iterator-advanced-in-parallel.js Mismatch: tasks/coverage/test262/test/built-ins/Iterator/prototype/reduce/reducer-memo-can-be-any-type.js -Mismatch: tasks/coverage/test262/test/built-ins/Iterator/prototype/some/iterator-has-no-return.js -Mismatch: tasks/coverage/test262/test/built-ins/Iterator/prototype/take/underlying-iterator-advanced-in-parallel.js Mismatch: tasks/coverage/test262/test/built-ins/JSON/rawJSON/bigint-raw-json-can-be-stringified.js Mismatch: tasks/coverage/test262/test/built-ins/JSON/stringify/value-bigint-order.js Mismatch: tasks/coverage/test262/test/built-ins/JSON/stringify/value-bigint-replacer.js @@ -2132,57 +2120,6 @@ Mismatch: tasks/coverage/test262/test/language/expressions/addition/bigint-error Mismatch: tasks/coverage/test262/test/language/expressions/addition/bigint-toprimitive.js Mismatch: tasks/coverage/test262/test/language/expressions/addition/bigint-wrapped-values.js Mismatch: tasks/coverage/test262/test/language/expressions/addition/coerce-bigint-to-string.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/array-elem-nested-obj-null.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/array-elem-nested-obj-undefined-hole.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/array-elem-nested-obj-undefined-own.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/array-elem-nested-obj-undefined.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/array-elem-nested-obj-yield-expr.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/array-elem-nested-obj-yield-ident-valid.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/array-elem-nested-obj.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/array-rest-nested-obj-null.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/array-rest-nested-obj-undefined-hole.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/array-rest-nested-obj-undefined-own.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/array-rest-nested-obj-undefined.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/array-rest-nested-obj-yield-expr.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/array-rest-nested-obj-yield-ident-valid.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-identifier-resolution-first.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-identifier-resolution-last.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-identifier-resolution-lone.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-identifier-resolution-middle.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-identifier-resolution-trlng.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-identifier-yield-ident-valid.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-init-assignment-missing.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-init-assignment-null.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-init-assignment-truthy.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-init-assignment-undef.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-init-evaluation.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-init-fn-name-arrow.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-init-fn-name-class.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-init-fn-name-cover.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-init-fn-name-fn.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-init-fn-name-gen.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-init-in.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-init-let.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-init-order.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-init-simple-no-strict.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-init-yield-expr.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-init-yield-ident-valid.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-put-const.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-put-let.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-put-unresolvable-no-strict.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-put-unresolvable-strict.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-id-simple-no-strict.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-prop-identifier-resolution-first.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-prop-identifier-resolution-last.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-prop-identifier-resolution-middle.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-prop-nested-obj-null.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-prop-nested-obj-undefined-own.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-prop-nested-obj-undefined.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-prop-nested-obj-yield-expr.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-prop-nested-obj-yield-ident-valid.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-prop-nested-obj.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-rest-same-name.js -Mismatch: tasks/coverage/test262/test/language/expressions/assignment/dstr/obj-rest-valid-object.js Mismatch: tasks/coverage/test262/test/language/expressions/assignment/fn-name-lhs-cover.js Mismatch: tasks/coverage/test262/test/language/expressions/assignment/target-cover-id.js Mismatch: tasks/coverage/test262/test/language/expressions/bitwise-and/bigint-and-number.js @@ -6276,136 +6213,7 @@ Mismatch: tasks/coverage/test262/test/language/statements/class/elements/wrapped Mismatch: tasks/coverage/test262/test/language/statements/class/elements/wrapped-in-sc-static-private-methods.js Mismatch: tasks/coverage/test262/test/language/statements/class/scope-name-lex-open-heritage.js Mismatch: tasks/coverage/test262/test/language/statements/class/static-init-scope-private.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-nested-obj-null.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-nested-obj-undefined-hole.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-nested-obj-undefined-own.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-nested-obj-undefined.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-nested-obj-yield-ident-valid.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-array-elem-nested-obj.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-array-rest-nested-obj-null.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-array-rest-nested-obj-undefined-hole.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-array-rest-nested-obj-undefined-own.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-array-rest-nested-obj-undefined.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-array-rest-nested-obj-yield-ident-valid.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-identifier-resolution-first.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-identifier-resolution-last.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-identifier-resolution-lone.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-identifier-resolution-middle.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-identifier-resolution-trlng.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-assignment-missing.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-assignment-null.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-assignment-truthy.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-assignment-undef.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-evaluation.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-arrow.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-class.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-cover.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-fn.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-fn-name-gen.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-in.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-order.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-simple-no-strict.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-init-yield-ident-valid.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-put-unresolvable-no-strict.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-id-simple-no-strict.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-identifier-resolution-first.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-identifier-resolution-last.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-identifier-resolution-middle.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-nested-obj-yield-ident-valid.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-prop-nested-obj.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-rest-same-name.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-func-decl-dstr-obj-rest-valid-object.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-nested-obj-null.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-nested-obj-undefined-hole.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-nested-obj-undefined-own.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-nested-obj-undefined.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-nested-obj-yield-expr.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-nested-obj.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-array-rest-nested-obj-null.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-array-rest-nested-obj-undefined-hole.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-array-rest-nested-obj-undefined-own.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-array-rest-nested-obj-undefined.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-array-rest-nested-obj-yield-expr.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-identifier-resolution-first.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-identifier-resolution-last.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-identifier-resolution-lone.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-identifier-resolution-middle.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-identifier-resolution-trlng.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-assignment-missing.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-assignment-null.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-assignment-truthy.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-assignment-undef.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-evaluation.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-arrow.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-class.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-cover.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-fn.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-fn-name-gen.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-in.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-order.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-simple-no-strict.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-init-yield-expr.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-put-unresolvable-no-strict.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-id-simple-no-strict.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-identifier-resolution-first.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-identifier-resolution-last.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-identifier-resolution-middle.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-nested-obj-yield-expr.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-prop-nested-obj.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-rest-same-name.js -Mismatch: tasks/coverage/test262/test/language/statements/for-await-of/async-gen-decl-dstr-obj-rest-valid-object.js Mismatch: tasks/coverage/test262/test/language/statements/for-in/head-lhs-cover.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/array-elem-nested-obj-null.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/array-elem-nested-obj-undefined-hole.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/array-elem-nested-obj-undefined-own.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/array-elem-nested-obj-undefined.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/array-elem-nested-obj-yield-expr.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/array-elem-nested-obj-yield-ident-valid.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/array-elem-nested-obj.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/array-rest-nested-obj-null.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/array-rest-nested-obj-undefined-hole.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/array-rest-nested-obj-undefined-own.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/array-rest-nested-obj-undefined.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/array-rest-nested-obj-yield-expr.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/array-rest-nested-obj-yield-ident-valid.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-identifier-resolution-first.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-identifier-resolution-last.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-identifier-resolution-lone.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-identifier-resolution-middle.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-identifier-resolution-trlng.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-identifier-yield-ident-valid.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-init-assignment-missing.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-init-assignment-null.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-init-assignment-truthy.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-init-assignment-undef.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-init-evaluation.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-init-fn-name-arrow.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-init-fn-name-class.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-init-fn-name-cover.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-init-fn-name-fn.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-init-fn-name-gen.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-init-in.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-init-let.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-init-order.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-init-simple-no-strict.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-init-yield-expr.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-init-yield-ident-valid.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-put-const.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-put-let.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-put-unresolvable-no-strict.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-put-unresolvable-strict.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-id-simple-no-strict.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-prop-identifier-resolution-first.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-prop-identifier-resolution-last.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-prop-identifier-resolution-middle.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-prop-nested-obj-null.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-prop-nested-obj-undefined-own.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-prop-nested-obj-undefined.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-prop-nested-obj-yield-expr.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-prop-nested-obj-yield-ident-valid.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-prop-nested-obj.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-rest-same-name.js -Mismatch: tasks/coverage/test262/test/language/statements/for-of/dstr/obj-rest-valid-object.js Mismatch: tasks/coverage/test262/test/language/statements/for-of/head-lhs-async-parens.js Mismatch: tasks/coverage/test262/test/language/statements/for-of/head-lhs-cover.js tasks/coverage/test262/test/language/statements/for-of/string-astral-truncated.js