diff --git a/Cargo.lock b/Cargo.lock index 6967b4016..d73150f09 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -922,6 +922,7 @@ dependencies = [ name = "oxc_linter" version = "0.0.0" dependencies = [ + "indextree", "insta", "lazy_static", "miette", diff --git a/crates/oxc_linter/Cargo.toml b/crates/oxc_linter/Cargo.toml index 8d2cca715..5409b551d 100644 --- a/crates/oxc_linter/Cargo.toml +++ b/crates/oxc_linter/Cargo.toml @@ -17,6 +17,7 @@ oxc_semantic = { path = "../oxc_semantic" } lazy_static = { workspace = true } serde_json = { workspace = true } +indextree = { workspace = true } [dev_dependencies] oxc_allocator = { path = "../oxc_allocator" } diff --git a/crates/oxc_linter/src/context.rs b/crates/oxc_linter/src/context.rs index f4364720a..87920de2a 100644 --- a/crates/oxc_linter/src/context.rs +++ b/crates/oxc_linter/src/context.rs @@ -1,8 +1,9 @@ use std::{cell::RefCell, rc::Rc}; +use indextree::{Ancestors, NodeId}; use oxc_ast::AstKind; use oxc_diagnostics::Error; -use oxc_semantic::{AstNodes, Scope, ScopeTree, Semantic}; +use oxc_semantic::{AstNodes, Scope, ScopeTree, Semantic, SemanticNode}; use crate::{ fixer::{Fix, Message}, @@ -63,6 +64,11 @@ impl<'a> LintContext<'a> { self.semantic().nodes() } + #[must_use] + pub fn kind(&self, node_id: NodeId) -> AstKind<'a> { + self.nodes().kind(node_id) + } + #[must_use] pub fn parent_kind(&self, node: &AstNode<'a>) -> AstKind<'a> { self.nodes().parent_kind(node) @@ -73,6 +79,12 @@ impl<'a> LintContext<'a> { node.parent().and_then(|node_id| self.nodes().get(node_id)) } + #[must_use] + pub fn ancestors(&self, node: &AstNode<'a>) -> Ancestors<'_, SemanticNode<'a>> { + let node_id = self.nodes().get_node_id(node).unwrap(); + node_id.ancestors(self.nodes()) + } + /* Scopes */ #[must_use] diff --git a/crates/oxc_linter/src/rules/early_error/javascript.rs b/crates/oxc_linter/src/rules/early_error/javascript.rs index ea3ec6157..10d36675b 100644 --- a/crates/oxc_linter/src/rules/early_error/javascript.rs +++ b/crates/oxc_linter/src/rules/early_error/javascript.rs @@ -1,5 +1,5 @@ #[allow(clippy::wildcard_imports)] -use oxc_ast::{ast::*, AstKind, Span}; +use oxc_ast::{ast::*, AstKind, Atom, Span}; use oxc_diagnostics::{ miette::{self, Diagnostic}, thiserror::Error, @@ -14,6 +14,7 @@ impl Rule for EarlyErrorJavaScript { #[allow(clippy::single_match)] fn run<'a>(&self, node: &AstNode<'a>, ctx: &LintContext<'a>) { match node.get().kind() { + AstKind::PrivateIdentifier(ident) => check_private_identifier(ident, node, ctx), AstKind::RegExpLiteral(lit) => check_regexp_literal(lit, ctx), AstKind::NumberLiteral(lit) => check_number_literal(lit, node, ctx), _ => {} @@ -21,6 +22,68 @@ impl Rule for EarlyErrorJavaScript { } } +fn check_private_identifier<'a>( + ident: &PrivateIdentifier, + node: &AstNode<'a>, + ctx: &LintContext<'a>, +) { + // Ignore private identifier declaration inside class + if matches!(ctx.parent_kind(node), AstKind::PropertyKey(_)) { + return; + } + + // Find enclosing classes + let mut classes = vec![]; + for node_id in ctx.ancestors(node).skip(1) { + let kind = ctx.kind(node_id); + if let AstKind::Class(class) = kind { + classes.push(class); + } + // stop lookup when the class is a heritage, e.g. + // `class C extends class extends class { x = this.#foo; } {} { #foo }` + // `class C extends function() { x = this.#foo; } { #foo }` + if matches!(kind, AstKind::ClassHeritage(_)) { + break; + } + } + + if classes.is_empty() { + #[derive(Debug, Error, Diagnostic)] + #[error("Private identifier '#{0:?}' is not allowed outside class bodies")] + #[diagnostic()] + struct PrivateNotInClass(Atom, #[label] Span); + ctx.diagnostic(PrivateNotInClass(ident.name.clone(), ident.span)); + return; + }; + + // Check private identifier declarations in class. + // This implementations does a simple lookup for private identifier declarations inside a class. + // Performance can be improved by storing private identifiers for each class inside a lookup table, + // but there are not many private identifiers in the wild so we should be good fow now. + let found_private_ident = classes.iter().any(|class| { + class.body.body.iter().any(|def| { + // let key = match def { + // ClassElement::PropertyDefinition(def) => &def.key, + // ClassElement::MethodDefinition(def) => &def.key, + // _ => return false, + // }; + if let Some(key) = def.property_key() + && let PropertyKey::PrivateIdentifier(prop_ident) = key { + return prop_ident.name == ident.name; + } + false + }) + }); + + if !found_private_ident { + #[derive(Debug, Error, Diagnostic)] + #[error("Private field '{0:?}' must be declared in an enclosing class")] + #[diagnostic()] + struct PrivateFieldUndeclared(Atom, #[label] Span); + ctx.diagnostic(PrivateFieldUndeclared(ident.name.clone(), ident.span)); + } +} + fn check_number_literal(lit: &NumberLiteral, node: &AstNode, ctx: &LintContext) { // NumericLiteral :: LegacyOctalIntegerLiteral // DecimalIntegerLiteral :: NonOctalDecimalIntegerLiteral diff --git a/crates/oxc_semantic/src/lib.rs b/crates/oxc_semantic/src/lib.rs index 3811ee9e6..580b35559 100644 --- a/crates/oxc_semantic/src/lib.rs +++ b/crates/oxc_semantic/src/lib.rs @@ -5,7 +5,7 @@ mod scope; use std::rc::Rc; pub use builder::SemanticBuilder; -pub use node::{AstNode, AstNodes}; +pub use node::{AstNode, AstNodes, SemanticNode}; use oxc_ast::Trivias; pub use scope::{Scope, ScopeTree}; diff --git a/tasks/coverage/test262.snap b/tasks/coverage/test262.snap index deda22b10..3a53687a5 100644 --- a/tasks/coverage/test262.snap +++ b/tasks/coverage/test262.snap @@ -1,7 +1,7 @@ Test262 Summary: AST Parsed : 44000/44009 (99.98%) Positive Passed: 44000/44009 (99.98%) -Negative Passed: 1945/3917 (49.66%) +Negative Passed: 2182/3917 (55.71%) Expect Syntax Error: "annexB/language/expressions/template-literal/legacy-octal-escape-sequence-strict.js" Expect Syntax Error: "annexB/language/statements/for-in/const-initializer.js" Expect Syntax Error: "annexB/language/statements/for-in/let-initializer.js" @@ -502,110 +502,39 @@ Expect Syntax Error: "language/expressions/class/elements/static-string-literal- Expect Syntax Error: "language/expressions/class/elements/static-string-literal-name-init-err-contains-super.js" Expect Syntax Error: "language/expressions/class/elements/string-literal-name-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/string-literal-name-init-err-contains-super.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-method-accessor-get.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-method-accessor-set.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-method-async-gen.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-method-async.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-method-gen.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-method.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-no-reference.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-privatename.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-method-accessor-get.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-method-accessor-set.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-method-async-gen.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-method-async.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-method-gen.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-method.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-no-reference.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-privatename.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-method-accessor-get.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-method-accessor-set.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-method-async-gen.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-method-async.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-method-gen.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-method.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-no-reference.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-privatename.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-member-expression-private-method-accessor-get.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-member-expression-private-method-accessor-set.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-member-expression-private-method-async-gen.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-member-expression-private-method-async.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-member-expression-private-method-gen.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-member-expression-private-method.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-member-expression-private-no-reference.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-member-expression-privatename.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-method-async.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-method-gen.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-method.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-no-reference.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-privatename.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-member-expression-private-method-async.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-member-expression-private-method-gen.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-member-expression-private-method.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-member-expression-private-no-reference.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-member-expression-privatename.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-method-accessor-get.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-method-accessor-set.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-method-async-gen.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-method-async.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-method-gen.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-method.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-no-reference.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-privatename.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-member-expression-private-method-accessor-get.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-member-expression-private-method-accessor-set.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-member-expression-private-method-async-gen.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-member-expression-private-method-async.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-member-expression-private-method-gen.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-member-expression-private-method.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-member-expression-private-no-reference.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-member-expression-privatename.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-method-accessor-get.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-method-accessor-set.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-method-async-gen.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-method-async.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-method-gen.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-method.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-no-reference.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-privatename.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-member-expression-private-method-accessor-get.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-member-expression-private-method-accessor-set.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-member-expression-private-method-async-gen.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-member-expression-private-method-async.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-member-expression-private-method-gen.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-member-expression-private-method.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-member-expression-private-no-reference.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-member-expression-privatename.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-method-async.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-method-gen.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-method.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-no-reference.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-privatename.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-method-async.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-method-gen.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-method.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-no-reference.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-privatename.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-class-body-ctor-duplicate.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-ctor-super-no-heritage.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage-chained-usage.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage-function-expression.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage-recursive.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-private-field-super-access.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-privatename-in-computed-property-missing.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-special-meth-contains-super-async-gen.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-special-meth-contains-super-async.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-special-meth-contains-super-gen.js" @@ -626,34 +555,6 @@ Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/gr Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-static-private-gen-meth-super.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-static-private-meth-super.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/grammar-static-set-meth-super.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-call-expression-bad-reference.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-call-expression-this.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-fn-call-expression-bad-reference.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-fn-call-expression-this.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-fn-member-expression-bad-reference.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-fn-member-expression-this.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-heritage-call-expression-bad-reference.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-heritage-call-expression-this.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-heritage-member-expression-bad-reference.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-heritage-member-expression-this.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-member-expression-bad-reference.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-member-expression-this.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/method-call-expression-bad-reference.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/method-call-expression-this.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/method-fn-call-expression-bad-reference.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/method-fn-call-expression-this.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/method-fn-member-expression-bad-reference.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/method-fn-member-expression-this.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/method-heritage-call-expression-bad-reference.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/method-heritage-call-expression-this.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/method-heritage-member-expression-bad-reference.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/method-heritage-member-expression-this.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/method-member-expression-bad-reference.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/method-member-expression-this.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/method-outter-call-expression-bad-reference.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/method-outter-call-expression-this.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/method-outter-member-expression-bad-reference.js" -Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/invalid-names/method-outter-member-expression-this.js" Expect Syntax Error: "language/expressions/class/elements/syntax/early-errors/super-private-access-invalid.js" Expect Syntax Error: "language/expressions/class/elements/ternary-init-err-contains-arguments.js" Expect Syntax Error: "language/expressions/class/elements/ternary-init-err-contains-super.js" @@ -744,10 +645,6 @@ Expect Syntax Error: "language/expressions/function/dstr/dflt-ary-ptrn-rest-init Expect Syntax Error: "language/expressions/function/dstr/dflt-ary-ptrn-rest-init-obj.js" Expect Syntax Error: "language/expressions/function/early-body-super-call.js" Expect Syntax Error: "language/expressions/function/early-body-super-prop.js" -Expect Syntax Error: "language/expressions/function/early-errors/invalid-names-call-expression-bad-reference.js" -Expect Syntax Error: "language/expressions/function/early-errors/invalid-names-call-expression-this.js" -Expect Syntax Error: "language/expressions/function/early-errors/invalid-names-member-expression-bad-reference.js" -Expect Syntax Error: "language/expressions/function/early-errors/invalid-names-member-expression-this.js" Expect Syntax Error: "language/expressions/function/early-params-super-call.js" Expect Syntax Error: "language/expressions/function/early-params-super-prop.js" Expect Syntax Error: "language/expressions/function/name-arguments-strict-body.js" @@ -793,8 +690,6 @@ Expect Syntax Error: "language/expressions/generators/yield-as-parameter.js" Expect Syntax Error: "language/expressions/generators/yield-identifier-spread-strict.js" Expect Syntax Error: "language/expressions/generators/yield-identifier-strict.js" Expect Syntax Error: "language/expressions/import.meta/syntax/goal-script.js" -Expect Syntax Error: "language/expressions/in/private-field-invalid-identifier-complex.js" -Expect Syntax Error: "language/expressions/in/private-field-invalid-identifier-simple.js" Expect Syntax Error: "language/expressions/in/private-field-rhs-yield-absent.js" Expect Syntax Error: "language/expressions/in/rhs-yield-absent-strict.js" Expect Syntax Error: "language/expressions/logical-assignment/lgcl-and-arguments-strict.js" @@ -930,10 +825,6 @@ Expect Syntax Error: "language/future-reserved-words/yield-strict-escaped.js" Expect Syntax Error: "language/future-reserved-words/yield-strict.js" Expect Syntax Error: "language/global-code/export.js" Expect Syntax Error: "language/global-code/import.js" -Expect Syntax Error: "language/global-code/invalid-private-names-call-expression-bad-reference.js" -Expect Syntax Error: "language/global-code/invalid-private-names-call-expression-this.js" -Expect Syntax Error: "language/global-code/invalid-private-names-member-expression-bad-reference.js" -Expect Syntax Error: "language/global-code/invalid-private-names-member-expression-this.js" Expect Syntax Error: "language/global-code/new.target-arrow.js" Expect Syntax Error: "language/global-code/new.target.js" Expect Syntax Error: "language/global-code/return.js" @@ -989,10 +880,6 @@ Expect Syntax Error: "language/module-code/export-default-asyncfunction-declarat Expect Syntax Error: "language/module-code/export-default-asyncgenerator-declaration-binding-exists.js" Expect Syntax Error: "language/module-code/export-default-function-declaration-binding-exists.js" Expect Syntax Error: "language/module-code/export-default-generator-declaration-binding-exists.js" -Expect Syntax Error: "language/module-code/invalid-private-names-call-expression-bad-reference.js" -Expect Syntax Error: "language/module-code/invalid-private-names-call-expression-this.js" -Expect Syntax Error: "language/module-code/invalid-private-names-member-expression-bad-reference.js" -Expect Syntax Error: "language/module-code/invalid-private-names-member-expression-this.js" Expect Syntax Error: "language/module-code/parse-err-decl-pos-export-arrow-function.js" Expect Syntax Error: "language/module-code/parse-err-decl-pos-export-block-stmt-list.js" Expect Syntax Error: "language/module-code/parse-err-decl-pos-export-block-stmt.js" @@ -1083,15 +970,6 @@ Expect Syntax Error: "language/module-code/parse-err-hoist-lex-fun.js" Expect Syntax Error: "language/module-code/parse-err-hoist-lex-gen.js" Expect Syntax Error: "language/module-code/parse-err-return.js" Expect Syntax Error: "language/module-code/parse-err-yield.js" -Expect Syntax Error: "language/module-code/private-identifiers-not-empty.js" -Expect Syntax Error: "language/module-code/privatename-not-valid-earlyerr-module-1.js" -Expect Syntax Error: "language/module-code/privatename-not-valid-earlyerr-module-2.js" -Expect Syntax Error: "language/module-code/privatename-not-valid-earlyerr-module-3.js" -Expect Syntax Error: "language/module-code/privatename-not-valid-earlyerr-module-4.js" -Expect Syntax Error: "language/module-code/privatename-not-valid-earlyerr-module-5.js" -Expect Syntax Error: "language/module-code/privatename-not-valid-earlyerr-module-6.js" -Expect Syntax Error: "language/module-code/privatename-not-valid-earlyerr-module-7.js" -Expect Syntax Error: "language/module-code/privatename-not-valid-earlyerr-module-8.js" Expect Syntax Error: "language/module-code/top-level-await/new-await.js" Expect Syntax Error: "language/module-code/top-level-await/syntax/early-does-not-propagate-to-fn-declaration-body.js" Expect Syntax Error: "language/module-code/top-level-await/syntax/early-does-not-propagate-to-fn-declaration-params.js" @@ -1136,10 +1014,6 @@ Expect Syntax Error: "language/statements/async-generator/yield-as-identifier-re Expect Syntax Error: "language/statements/async-generator/yield-as-identifier-reference.js" Expect Syntax Error: "language/statements/async-generator/yield-identifier-spread-strict.js" Expect Syntax Error: "language/statements/async-generator/yield-identifier-strict.js" -Expect Syntax Error: "language/statements/block/early-errors/invalid-names-call-expression-bad-reference.js" -Expect Syntax Error: "language/statements/block/early-errors/invalid-names-call-expression-this.js" -Expect Syntax Error: "language/statements/block/early-errors/invalid-names-member-expression-bad-reference.js" -Expect Syntax Error: "language/statements/block/early-errors/invalid-names-member-expression-this.js" Expect Syntax Error: "language/statements/block/labeled-continue.js" Expect Syntax Error: "language/statements/break/S12.8_A1_T1.js" Expect Syntax Error: "language/statements/break/S12.8_A1_T2.js" @@ -1359,14 +1233,6 @@ Expect Syntax Error: "language/statements/class/elements/private-ternary-init-er Expect Syntax Error: "language/statements/class/elements/private-ternary-init-err-contains-super.js" Expect Syntax Error: "language/statements/class/elements/private-typeof-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/private-typeof-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/privatename-not-valid-earlyerr-script-1.js" -Expect Syntax Error: "language/statements/class/elements/privatename-not-valid-earlyerr-script-2.js" -Expect Syntax Error: "language/statements/class/elements/privatename-not-valid-earlyerr-script-3.js" -Expect Syntax Error: "language/statements/class/elements/privatename-not-valid-earlyerr-script-4.js" -Expect Syntax Error: "language/statements/class/elements/privatename-not-valid-earlyerr-script-5.js" -Expect Syntax Error: "language/statements/class/elements/privatename-not-valid-earlyerr-script-6.js" -Expect Syntax Error: "language/statements/class/elements/privatename-not-valid-earlyerr-script-7.js" -Expect Syntax Error: "language/statements/class/elements/privatename-not-valid-earlyerr-script-8.js" Expect Syntax Error: "language/statements/class/elements/static-comp-name-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/static-comp-name-init-err-contains-super.js" Expect Syntax Error: "language/statements/class/elements/static-literal-init-err-contains-arguments.js" @@ -1377,110 +1243,39 @@ Expect Syntax Error: "language/statements/class/elements/static-string-literal-n Expect Syntax Error: "language/statements/class/elements/static-string-literal-name-init-err-contains-super.js" Expect Syntax Error: "language/statements/class/elements/string-literal-name-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/string-literal-name-init-err-contains-super.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-method-accessor-get.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-method-accessor-set.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-method-async-gen.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-method-async.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-method-gen.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-method.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-no-reference.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-privatename.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-method-accessor-get.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-method-accessor-set.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-method-async-gen.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-method-async.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-method-gen.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-method.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-no-reference.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-privatename.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-method-accessor-get.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-method-accessor-set.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-method-async-gen.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-method-async.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-method-gen.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-method.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-no-reference.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-privatename.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-member-expression-private-method-accessor-get.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-member-expression-private-method-accessor-set.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-member-expression-private-method-async-gen.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-member-expression-private-method-async.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-member-expression-private-method-gen.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-member-expression-private-method.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-member-expression-private-no-reference.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-member-expression-privatename.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-method-async.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-method-gen.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-method.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-no-reference.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-privatename.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-member-expression-private-method-async.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-member-expression-private-method-gen.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-member-expression-private-method.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-member-expression-private-no-reference.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-member-expression-privatename.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-method-accessor-get.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-method-accessor-set.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-method-async-gen.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-method-async.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-method-gen.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-method.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-no-reference.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-privatename.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-member-expression-private-method-accessor-get.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-member-expression-private-method-accessor-set.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-member-expression-private-method-async-gen.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-member-expression-private-method-async.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-member-expression-private-method-gen.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-member-expression-private-method.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-member-expression-private-no-reference.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-member-expression-privatename.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-method-accessor-get.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-method-accessor-set.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-method-async-gen.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-method-async.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-method-gen.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-method.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-no-reference.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-privatename.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-member-expression-private-method-accessor-get.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-member-expression-private-method-accessor-set.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-member-expression-private-method-async-gen.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-member-expression-private-method-async.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-member-expression-private-method-gen.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-member-expression-private-method.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-member-expression-private-no-reference.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-member-expression-privatename.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-method-async.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-method-gen.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-method.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-no-reference.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-privatename.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-method-async.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-method-gen.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-method.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-no-reference.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-privatename.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-class-body-ctor-duplicate.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-ctor-super-no-heritage.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage-chained-usage.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage-function-expression.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage-recursive.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-private-field-super-access.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-privatename-in-computed-property-missing.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-special-meth-contains-super-async-gen.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-special-meth-contains-super-async.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-special-meth-contains-super-gen.js" @@ -1501,34 +1296,6 @@ Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/gra Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-static-private-gen-meth-super.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-static-private-meth-super.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/grammar-static-set-meth-super.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/field-init-call-expression-bad-reference.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/field-init-call-expression-this.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/field-init-fn-call-expression-bad-reference.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/field-init-fn-call-expression-this.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/field-init-fn-member-expression-bad-reference.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/field-init-fn-member-expression-this.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/field-init-member-expression-bad-reference.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/field-init-member-expression-this.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/fields-init-heritage-call-expression-bad-reference.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/fields-init-heritage-call-expression-this.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/fields-init-heritage-member-expression-bad-reference.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/fields-init-heritage-member-expression-this.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/method-call-expression-bad-reference.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/method-call-expression-this.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/method-fn-call-expression-bad-reference.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/method-fn-call-expression-this.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/method-fn-member-expression-bad-reference.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/method-fn-member-expression-this.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/method-heritage-call-expression-bad-reference.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/method-heritage-call-expression-this.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/method-heritage-member-expression-bad-reference.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/method-heritage-member-expression-this.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/method-member-expression-bad-reference.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/method-member-expression-this.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/method-outter-call-expression-bad-reference.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/method-outter-call-expression-this.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/method-outter-member-expression-bad-reference.js" -Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/invalid-names/method-outter-member-expression-this.js" Expect Syntax Error: "language/statements/class/elements/syntax/early-errors/super-private-access-invalid.js" Expect Syntax Error: "language/statements/class/elements/ternary-init-err-contains-arguments.js" Expect Syntax Error: "language/statements/class/elements/ternary-init-err-contains-super.js" @@ -1771,10 +1538,6 @@ Expect Syntax Error: "language/statements/function/dstr/dflt-ary-ptrn-rest-init- Expect Syntax Error: "language/statements/function/dstr/dflt-ary-ptrn-rest-init-obj.js" Expect Syntax Error: "language/statements/function/early-body-super-call.js" Expect Syntax Error: "language/statements/function/early-body-super-prop.js" -Expect Syntax Error: "language/statements/function/early-errors/invalid-names-call-expression-bad-reference.js" -Expect Syntax Error: "language/statements/function/early-errors/invalid-names-call-expression-this.js" -Expect Syntax Error: "language/statements/function/early-errors/invalid-names-member-expression-bad-reference.js" -Expect Syntax Error: "language/statements/function/early-errors/invalid-names-member-expression-this.js" Expect Syntax Error: "language/statements/function/early-params-super-call.js" Expect Syntax Error: "language/statements/function/early-params-super-prop.js" Expect Syntax Error: "language/statements/function/enable-strict-via-body.js" @@ -7889,6 +7652,534 @@ Expect to Parse: "language/statements/class/decorator/syntax/class-valid/decorat 24 │ ╰──── + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-method-accessor-get.js:39:1] + 39 │ g = this.f; + 40 │ x = delete (g().#m); + · ── + 41 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-method-accessor-set.js:39:1] + 39 │ g = this.f; + 40 │ x = delete (g().#m); + · ── + 41 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-method-async-gen.js:39:1] + 39 │ g = this.f; + 40 │ x = delete (g().#m); + · ── + 41 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-method-async.js:39:1] + 39 │ g = this.f; + 40 │ x = delete (g().#m); + · ── + 41 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-method-gen.js:39:1] + 39 │ g = this.f; + 40 │ x = delete (g().#m); + · ── + 41 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-method.js:39:1] + 39 │ g = this.f; + 40 │ x = delete (g().#m); + · ── + 41 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-no-reference.js:39:1] + 39 │ g = this.f; + 40 │ x = delete (g().#m); + · ── + 41 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-method-accessor-get.js:39:1] + 39 │ + 40 │ x = delete (this.#m + · ── + 41 │ ); + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-method-accessor-set.js:39:1] + 39 │ + 40 │ x = delete (this.#m + · ── + 41 │ ); + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-method.js:39:1] + 39 │ + 40 │ x = delete (this.#m + · ── + 41 │ ); + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-no-reference.js:39:1] + 39 │ + 40 │ x = delete (this.#m); + · ── + 41 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-method-accessor-get.js:33:1] + 33 │ g = this.f; + 34 │ x = delete g().#m; + · ── + 35 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-method-accessor-set.js:33:1] + 33 │ g = this.f; + 34 │ x = delete g().#m; + · ── + 35 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-method-async-gen.js:33:1] + 33 │ g = this.f; + 34 │ x = delete g().#m; + · ── + 35 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-method-async.js:33:1] + 33 │ g = this.f; + 34 │ x = delete g().#m; + · ── + 35 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-method-gen.js:33:1] + 33 │ g = this.f; + 34 │ x = delete g().#m; + · ── + 35 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-method.js:33:1] + 33 │ g = this.f; + 34 │ x = delete g().#m; + · ── + 35 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-no-reference.js:33:1] + 33 │ g = this.f; + 34 │ x = delete g().#m; + · ── + 35 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-member-expression-private-method-accessor-get.js:33:1] + 33 │ + 34 │ x = delete this.#m + · ── + 35 │ ; + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-member-expression-private-method-accessor-set.js:33:1] + 33 │ + 34 │ x = delete this.#m + · ── + 35 │ ; + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-member-expression-private-method.js:33:1] + 33 │ + 34 │ x = delete this.#m + · ── + 35 │ ; + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-err-delete-member-expression-private-no-reference.js:33:1] + 33 │ + 34 │ x = delete this.#m; + · ── + 35 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js:39:1] + 39 │ g = this.f; + 40 │ x = delete ((g().#m)); + · ── + 41 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js:39:1] + 39 │ g = this.f; + 40 │ x = delete ((g().#m)); + · ── + 41 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js:39:1] + 39 │ g = this.f; + 40 │ x = delete ((g().#m)); + · ── + 41 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-method-async.js:39:1] + 39 │ g = this.f; + 40 │ x = delete ((g().#m)); + · ── + 41 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-method-gen.js:39:1] + 39 │ g = this.f; + 40 │ x = delete ((g().#m)); + · ── + 41 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-method.js:39:1] + 39 │ g = this.f; + 40 │ x = delete ((g().#m)); + · ── + 41 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-no-reference.js:39:1] + 39 │ g = this.f; + 40 │ x = delete ((g().#m)); + · ── + 41 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js:39:1] + 39 │ + 40 │ x = delete ((this.#m + · ── + 41 │ )); + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js:39:1] + 39 │ + 40 │ x = delete ((this.#m + · ── + 41 │ )); + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-member-expression-private-method.js:39:1] + 39 │ + 40 │ x = delete ((this.#m + · ── + 41 │ )); + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-member-expression-private-no-reference.js:39:1] + 39 │ + 40 │ x = delete ((this.#m)); + · ── + 41 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-method-accessor-get.js:41:1] + 41 │ var g = this.f; + 42 │ delete (g().#m); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-method-accessor-set.js:41:1] + 41 │ var g = this.f; + 42 │ delete (g().#m); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-method-async-gen.js:41:1] + 41 │ var g = this.f; + 42 │ delete (g().#m); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-method-async.js:41:1] + 41 │ var g = this.f; + 42 │ delete (g().#m); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-method-gen.js:41:1] + 41 │ var g = this.f; + 42 │ delete (g().#m); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-method.js:41:1] + 41 │ var g = this.f; + 42 │ delete (g().#m); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-no-reference.js:41:1] + 41 │ var g = this.f; + 42 │ delete (g().#m); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-member-expression-private-method-accessor-get.js:41:1] + 41 │ + 42 │ delete (this.#m + · ── + 43 │ ); + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-member-expression-private-method-accessor-set.js:41:1] + 41 │ + 42 │ delete (this.#m + · ── + 43 │ ); + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-member-expression-private-method.js:41:1] + 41 │ + 42 │ delete (this.#m + · ── + 43 │ ); + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-member-expression-private-no-reference.js:41:1] + 41 │ + 42 │ delete (this.#m); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-method-accessor-get.js:35:1] + 35 │ var g = this.f; + 36 │ delete g().#m; + · ── + 37 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-method-accessor-set.js:35:1] + 35 │ var g = this.f; + 36 │ delete g().#m; + · ── + 37 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-method-async-gen.js:35:1] + 35 │ var g = this.f; + 36 │ delete g().#m; + · ── + 37 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-method-async.js:35:1] + 35 │ var g = this.f; + 36 │ delete g().#m; + · ── + 37 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-method-gen.js:35:1] + 35 │ var g = this.f; + 36 │ delete g().#m; + · ── + 37 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-method.js:35:1] + 35 │ var g = this.f; + 36 │ delete g().#m; + · ── + 37 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-no-reference.js:35:1] + 35 │ var g = this.f; + 36 │ delete g().#m; + · ── + 37 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-member-expression-private-method-accessor-get.js:35:1] + 35 │ + 36 │ delete this.#m + · ── + 37 │ ; + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-member-expression-private-method-accessor-set.js:35:1] + 35 │ + 36 │ delete this.#m + · ── + 37 │ ; + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-member-expression-private-method.js:35:1] + 35 │ + 36 │ delete this.#m + · ── + 37 │ ; + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-err-delete-member-expression-private-no-reference.js:35:1] + 35 │ + 36 │ delete this.#m; + · ── + 37 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js:41:1] + 41 │ var g = this.f; + 42 │ delete ((g().#m)); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js:41:1] + 41 │ var g = this.f; + 42 │ delete ((g().#m)); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js:41:1] + 41 │ var g = this.f; + 42 │ delete ((g().#m)); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-method-async.js:41:1] + 41 │ var g = this.f; + 42 │ delete ((g().#m)); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-method-gen.js:41:1] + 41 │ var g = this.f; + 42 │ delete ((g().#m)); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-method.js:41:1] + 41 │ var g = this.f; + 42 │ delete ((g().#m)); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-no-reference.js:41:1] + 41 │ var g = this.f; + 42 │ delete ((g().#m)); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js:41:1] + 41 │ + 42 │ delete ((this.#m + · ── + 43 │ )); + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js:41:1] + 41 │ + 42 │ delete ((this.#m + · ── + 43 │ )); + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-method.js:41:1] + 41 │ + 42 │ delete ((this.#m + · ── + 43 │ )); + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-no-reference.js:41:1] + 41 │ + 42 │ delete ((this.#m)); + · ── + 43 │ } + ╰──── + × Invalid Character `'\0'` ╭─[language/expressions/class/elements/syntax/early-errors/grammar-field-identifier-invalid-ues-error.js:68:1] 68 │ var C = class { @@ -7935,6 +8226,38 @@ Expect to Parse: "language/statements/class/decorator/syntax/class-valid/decorat 37 │ { ╰──── + × Private field '"foo"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage-chained-usage.js:35:1] + 35 │ + 36 │ var C = class extends class extends class extends class { x = this.#foo; } { #foo; x = this.#bar; } { #bar; x = this.#fuz; } + · ──── + 37 │ { + ╰──── + + × Private field '"bar"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage-chained-usage.js:35:1] + 35 │ + 36 │ var C = class extends class extends class extends class { x = this.#foo; } { #foo; x = this.#bar; } { #bar; x = this.#fuz; } + · ──── + 37 │ { + ╰──── + + × Private field '"fuz"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage-chained-usage.js:35:1] + 35 │ + 36 │ var C = class extends class extends class extends class { x = this.#foo; } { #foo; x = this.#bar; } { #bar; x = this.#fuz; } + · ──── + 37 │ { + ╰──── + + × Private identifier '#"foo"' is not allowed outside class bodies + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage-function-expression.js:35:1] + 35 │ + 36 │ var C = class extends function() { x = this.#foo; } + · ──── + 37 │ { + ╰──── + × Expect token ╭─[language/expressions/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage-obj-literal.js:35:1] 35 │ @@ -7944,6 +8267,22 @@ Expect to Parse: "language/statements/class/decorator/syntax/class-valid/decorat 37 │ { ╰──── + × Private field '"foo"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage-recursive.js:35:1] + 35 │ + 36 │ var C = class extends class extends class { x = this.#foo; } {} + · ──── + 37 │ { + ╰──── + + × Private field '"foo"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage.js:35:1] + 35 │ + 36 │ var C = class extends class { x = this.#foo; } + · ──── + 37 │ { + ╰──── + × Unexpected token ╭─[language/expressions/class/elements/syntax/early-errors/grammar-private-field-on-object-destructuring.js:29:1] 29 │ destructureX() { @@ -8153,6 +8492,14 @@ Expect to Parse: "language/statements/class/decorator/syntax/class-valid/decorat 64 │ ╰──── + × Private field '"f"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/grammar-privatename-in-computed-property-missing.js:50:1] + 50 │ var C = class { + 51 │ [this.#f] = 'Test262' + · ── + 52 │ }; + ╰──── + × Invalid Character `' '` ╭─[language/expressions/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-accessor-get-meth.js:27:1] 27 │ var C = class { @@ -8568,6 +8915,230 @@ Expect to Parse: "language/statements/class/decorator/syntax/class-valid/decorat 25 │ }; ╰──── + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-call-expression-bad-reference.js:50:1] + 50 │ var C = class { + 51 │ f = (() => {})().#x + · ── + 52 │ }; + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-call-expression-this.js:50:1] + 50 │ var C = class { + 51 │ f = (() => this)().#x + · ── + 52 │ }; + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-fn-call-expression-bad-reference.js:50:1] + 50 │ var C = class { + 51 │ f = function() { (() => {})().#x } + · ── + 52 │ }; + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-fn-call-expression-this.js:50:1] + 50 │ var C = class { + 51 │ f = function() { (() => this)().#x } + · ── + 52 │ }; + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-fn-member-expression-bad-reference.js:50:1] + 50 │ var C = class { + 51 │ f = function() { something.#x } + · ── + 52 │ }; + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-fn-member-expression-this.js:50:1] + 50 │ var C = class { + 51 │ f = function() { this.#x } + · ── + 52 │ }; + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-heritage-call-expression-bad-reference.js:54:1] + 54 │ var C = class extends Parent { + 55 │ f = (() => {})().#x + · ── + 56 │ }; + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-heritage-call-expression-this.js:54:1] + 54 │ var C = class extends Parent { + 55 │ f = (() => this)().#x + · ── + 56 │ }; + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-heritage-member-expression-bad-reference.js:54:1] + 54 │ var C = class extends Parent { + 55 │ f = something.#x + · ── + 56 │ }; + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-heritage-member-expression-this.js:54:1] + 54 │ var C = class extends Parent { + 55 │ f = this.#x + · ── + 56 │ }; + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-member-expression-bad-reference.js:50:1] + 50 │ var C = class { + 51 │ f = something.#x + · ── + 52 │ }; + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/field-init-member-expression-this.js:50:1] + 50 │ var C = class { + 51 │ f = this.#x + · ── + 52 │ }; + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/method-call-expression-bad-reference.js:50:1] + 50 │ var C = class { + 51 │ m() { (() => {})().#x } + · ── + 52 │ }; + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/method-call-expression-this.js:50:1] + 50 │ var C = class { + 51 │ m() { (() => this)().#x } + · ── + 52 │ }; + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/method-fn-call-expression-bad-reference.js:51:1] + 51 │ m() { + 52 │ function fn() { (() => {})().#x } + · ── + 53 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/method-fn-call-expression-this.js:51:1] + 51 │ m() { + 52 │ function fn() { (() => this)().#x } + · ── + 53 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/method-fn-member-expression-bad-reference.js:51:1] + 51 │ m() { + 52 │ function fn() { something.#x } + · ── + 53 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/method-fn-member-expression-this.js:51:1] + 51 │ m() { + 52 │ function fn() { this.#x } + · ── + 53 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/method-heritage-call-expression-bad-reference.js:55:1] + 55 │ m() { + 56 │ (() => {})().#x + · ── + 57 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/method-heritage-call-expression-this.js:55:1] + 55 │ m() { + 56 │ (() => this)().#x + · ── + 57 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/method-heritage-member-expression-bad-reference.js:55:1] + 55 │ m() { + 56 │ something.#x + · ── + 57 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/method-heritage-member-expression-this.js:55:1] + 55 │ m() { + 56 │ this.#x + · ── + 57 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/method-member-expression-bad-reference.js:50:1] + 50 │ var C = class { + 51 │ m() { something.#x } + · ── + 52 │ }; + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/method-member-expression-this.js:50:1] + 50 │ var C = class { + 51 │ m() { this.#x } + · ── + 52 │ }; + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/method-outter-call-expression-bad-reference.js:55:1] + 55 │ + 56 │ this.#x; + · ── + 57 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/method-outter-call-expression-this.js:55:1] + 55 │ + 56 │ this.#x; + · ── + 57 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/method-outter-member-expression-bad-reference.js:55:1] + 55 │ + 56 │ this.#x; + · ── + 57 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/expressions/class/elements/syntax/early-errors/invalid-names/method-outter-member-expression-this.js:55:1] + 55 │ + 56 │ this.#x; + · ── + 57 │ } + ╰──── + × Invalid Character `'#'` ╭─[language/expressions/class/elements/syntax/early-errors/private-async-generator-cannot-escape-token.js:23:1] 23 │ var C = class { @@ -9729,6 +10300,34 @@ Expect to Parse: "language/statements/class/decorator/syntax/class-valid/decorat 54 │ ╰──── + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/expressions/function/early-errors/invalid-names-call-expression-bad-reference.js:39:1] + 39 │ + 40 │ var fn = function() { (() => {})().#x }; + · ── + ╰──── + + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/expressions/function/early-errors/invalid-names-call-expression-this.js:39:1] + 39 │ + 40 │ var fn = function() { (() => this)().#x }; + · ── + ╰──── + + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/expressions/function/early-errors/invalid-names-member-expression-bad-reference.js:39:1] + 39 │ + 40 │ var fn = function() { something.#x }; + · ── + ╰──── + + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/expressions/function/early-errors/invalid-names-member-expression-this.js:39:1] + 39 │ + 40 │ var fn = function() { this.#x }; + · ── + ╰──── + × Rest element must be last element ╭─[language/expressions/function/rest-params-trailing-comma-early-error.js:54:1] 54 │ @@ -10003,6 +10602,21 @@ Expect to Parse: "language/statements/class/decorator/syntax/class-valid/decorat 30 │ } ╰──── + × Private field '"b"' must be declared in an enclosing class + ╭─[language/expressions/in/private-field-invalid-identifier-complex.js:28:1] + 28 │ constructor() { + 29 │ #b in {}; + · ── + 30 │ } + ╰──── + + × Private identifier '#"name"' is not allowed outside class bodies + ╭─[language/expressions/in/private-field-invalid-identifier-simple.js:24:1] + 24 │ + 25 │ #name in {}; + · ───── + ╰──── + × Empty parenthesized expression ╭─[language/expressions/in/private-field-invalid-rhs.js:23:1] 23 │ constructor() { @@ -11201,6 +11815,34 @@ Expect to Parse: "language/statements/class/decorator/syntax/class-valid/decorat · ───── ╰──── + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/global-code/invalid-private-names-call-expression-bad-reference.js:39:1] + 39 │ + 40 │ (() => {})().#x + · ── + ╰──── + + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/global-code/invalid-private-names-call-expression-this.js:39:1] + 39 │ + 40 │ (() => this)().#x + · ── + ╰──── + + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/global-code/invalid-private-names-member-expression-bad-reference.js:39:1] + 39 │ + 40 │ something.#x + · ── + ╰──── + + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/global-code/invalid-private-names-member-expression-this.js:39:1] + 39 │ + 40 │ this.#x + · ── + ╰──── + × Unexpected token ╭─[language/identifier-resolution/static-init-invalid-await.js:22:1] 22 │ static { @@ -13512,6 +14154,34 @@ Expect to Parse: "language/statements/class/decorator/syntax/class-valid/decorat 22 │ ╰──── + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/module-code/invalid-private-names-call-expression-bad-reference.js:39:1] + 39 │ + 40 │ (() => {})().#x + · ── + ╰──── + + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/module-code/invalid-private-names-call-expression-this.js:39:1] + 39 │ + 40 │ (() => this)().#x + · ── + ╰──── + + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/module-code/invalid-private-names-member-expression-bad-reference.js:39:1] + 39 │ + 40 │ something.#x + · ── + ╰──── + + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/module-code/invalid-private-names-member-expression-this.js:39:1] + 39 │ + 40 │ this.#x + · ── + ╰──── + × Unexpected token ╭─[language/module-code/parse-err-export-dflt-const.js:14:1] 14 │ @@ -13620,6 +14290,74 @@ Expect to Parse: "language/statements/class/decorator/syntax/class-valid/decorat · ╰── Cannot assign to this expression ╰──── + × Private identifier '#"f"' is not allowed outside class bodies + ╭─[language/module-code/private-identifiers-not-empty.js:17:1] + 17 │ var x = {}; + 18 │ x.#f = 'Test262'; + · ── + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/module-code/privatename-not-valid-earlyerr-module-1.js:20:1] + 20 │ constructor() { + 21 │ this.#x; + · ── + 22 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/module-code/privatename-not-valid-earlyerr-module-2.js:20:1] + 20 │ f() { + 21 │ this.#x; + · ── + 22 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/module-code/privatename-not-valid-earlyerr-module-3.js:19:1] + 19 │ class C { + 20 │ y = this.#x; + · ── + 21 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/module-code/privatename-not-valid-earlyerr-module-4.js:21:1] + 21 │ f() { + 22 │ this.#x; + · ── + 23 │ class D extends C { + ╰──── + + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/module-code/privatename-not-valid-earlyerr-module-5.js:22:1] + 22 │ + 23 │ new C().#x; + · ── + ╰──── + + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/module-code/privatename-not-valid-earlyerr-module-6.js:20:1] + 20 │ + 21 │ new C().#x; + · ── + ╰──── + + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/module-code/privatename-not-valid-earlyerr-module-7.js:20:1] + 20 │ + 21 │ obj.#x; + · ── + ╰──── + + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/module-code/privatename-not-valid-earlyerr-module-8.js:19:1] + 19 │ function f() { + 20 │ this.#x; + · ── + 21 │ } + ╰──── + × Invalid assignment ╭─[language/module-code/top-level-await/early-errors-await-not-simple-assignment-target.js:16:1] 16 │ @@ -14276,6 +15014,34 @@ Expect to Parse: "language/statements/class/decorator/syntax/class-valid/decorat 20 │ // ╰──── + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/statements/block/early-errors/invalid-names-call-expression-bad-reference.js:39:1] + 39 │ + 40 │ { (() => {})().#x } + · ── + ╰──── + + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/statements/block/early-errors/invalid-names-call-expression-this.js:39:1] + 39 │ + 40 │ { (() => this)().#x } + · ── + ╰──── + + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/statements/block/early-errors/invalid-names-member-expression-bad-reference.js:39:1] + 39 │ + 40 │ { something.#x } + · ── + ╰──── + + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/statements/block/early-errors/invalid-names-member-expression-this.js:39:1] + 39 │ + 40 │ { this.#x } + · ── + ╰──── + × Keywords cannot contain escape characters ╭─[language/statements/class/async-gen-meth-escaped-async.js:24:1] 24 │ class C { @@ -15721,6 +16487,67 @@ Expect to Parse: "language/statements/class/decorator/syntax/class-valid/decorat ╰──── help: Try insert a semicolon here + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/privatename-not-valid-earlyerr-script-1.js:21:1] + 21 │ constructor() { + 22 │ this.#x; + · ── + 23 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/privatename-not-valid-earlyerr-script-2.js:21:1] + 21 │ f() { + 22 │ this.#x; + · ── + 23 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/privatename-not-valid-earlyerr-script-3.js:20:1] + 20 │ class C { + 21 │ y = this.#x; + · ── + 22 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/privatename-not-valid-earlyerr-script-4.js:21:1] + 21 │ f() { + 22 │ this.#x; + · ── + 23 │ class D extends C { + ╰──── + + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/statements/class/elements/privatename-not-valid-earlyerr-script-5.js:23:1] + 23 │ + 24 │ new C().#x; + · ── + ╰──── + + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/statements/class/elements/privatename-not-valid-earlyerr-script-6.js:21:1] + 21 │ + 22 │ new C().#x; + · ── + ╰──── + + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/statements/class/elements/privatename-not-valid-earlyerr-script-7.js:21:1] + 21 │ + 22 │ obj.#x; + · ── + ╰──── + + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/statements/class/elements/privatename-not-valid-earlyerr-script-8.js:20:1] + 20 │ function f() { + 21 │ this.#x; + · ── + 22 │ } + ╰──── + × Empty parenthesized expression ╭─[language/statements/class/elements/syntax/early-errors/class-heritage-array-literal-arrow-heritage.js:22:1] 22 │ @@ -15748,6 +16575,534 @@ Expect to Parse: "language/statements/class/decorator/syntax/class-valid/decorat 24 │ ╰──── + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-method-accessor-get.js:36:1] + 36 │ g = this.f; + 37 │ x = delete (g().#m); + · ── + 38 │ f() { + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-method-accessor-set.js:36:1] + 36 │ g = this.f; + 37 │ x = delete (g().#m); + · ── + 38 │ f() { + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-method-async-gen.js:36:1] + 36 │ g = this.f; + 37 │ x = delete (g().#m); + · ── + 38 │ f() { + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-method-async.js:36:1] + 36 │ g = this.f; + 37 │ x = delete (g().#m); + · ── + 38 │ f() { + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-method-gen.js:36:1] + 36 │ g = this.f; + 37 │ x = delete (g().#m); + · ── + 38 │ f() { + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-method.js:36:1] + 36 │ g = this.f; + 37 │ x = delete (g().#m); + · ── + 38 │ f() { + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-call-expression-private-no-reference.js:36:1] + 36 │ g = this.f; + 37 │ x = delete (g().#m); + · ── + 38 │ f() { + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-method-accessor-get.js:36:1] + 36 │ + 37 │ x = delete (this.#m + · ── + 38 │ ); + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-method-accessor-set.js:36:1] + 36 │ + 37 │ x = delete (this.#m + · ── + 38 │ ); + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-method.js:36:1] + 36 │ + 37 │ x = delete (this.#m + · ── + 38 │ ); + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-covered-err-delete-member-expression-private-no-reference.js:36:1] + 36 │ + 37 │ x = delete (this.#m); + · ── + 38 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-method-accessor-get.js:33:1] + 33 │ g = this.f; + 34 │ x = delete g().#m; + · ── + 35 │ f() { + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-method-accessor-set.js:33:1] + 33 │ g = this.f; + 34 │ x = delete g().#m; + · ── + 35 │ f() { + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-method-async-gen.js:33:1] + 33 │ g = this.f; + 34 │ x = delete g().#m; + · ── + 35 │ f() { + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-method-async.js:33:1] + 33 │ g = this.f; + 34 │ x = delete g().#m; + · ── + 35 │ f() { + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-method-gen.js:33:1] + 33 │ g = this.f; + 34 │ x = delete g().#m; + · ── + 35 │ f() { + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-method.js:33:1] + 33 │ g = this.f; + 34 │ x = delete g().#m; + · ── + 35 │ f() { + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-call-expression-private-no-reference.js:33:1] + 33 │ g = this.f; + 34 │ x = delete g().#m; + · ── + 35 │ f() { + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-member-expression-private-method-accessor-get.js:33:1] + 33 │ + 34 │ x = delete this.#m + · ── + 35 │ ; + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-member-expression-private-method-accessor-set.js:33:1] + 33 │ + 34 │ x = delete this.#m + · ── + 35 │ ; + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-member-expression-private-method.js:33:1] + 33 │ + 34 │ x = delete this.#m + · ── + 35 │ ; + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-err-delete-member-expression-private-no-reference.js:33:1] + 33 │ + 34 │ x = delete this.#m; + · ── + 35 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js:36:1] + 36 │ g = this.f; + 37 │ x = delete ((g().#m)); + · ── + 38 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js:36:1] + 36 │ g = this.f; + 37 │ x = delete ((g().#m)); + · ── + 38 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js:36:1] + 36 │ g = this.f; + 37 │ x = delete ((g().#m)); + · ── + 38 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-method-async.js:36:1] + 36 │ g = this.f; + 37 │ x = delete ((g().#m)); + · ── + 38 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-method-gen.js:36:1] + 36 │ g = this.f; + 37 │ x = delete ((g().#m)); + · ── + 38 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-method.js:36:1] + 36 │ g = this.f; + 37 │ x = delete ((g().#m)); + · ── + 38 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-call-expression-private-no-reference.js:36:1] + 36 │ g = this.f; + 37 │ x = delete ((g().#m)); + · ── + 38 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js:36:1] + 36 │ + 37 │ x = delete ((this.#m + · ── + 38 │ )); + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js:36:1] + 36 │ + 37 │ x = delete ((this.#m + · ── + 38 │ )); + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-member-expression-private-method.js:36:1] + 36 │ + 37 │ x = delete ((this.#m + · ── + 38 │ )); + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/field-delete-twice-covered-err-delete-member-expression-private-no-reference.js:36:1] + 36 │ + 37 │ x = delete ((this.#m)); + · ── + 38 │ + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-method-accessor-get.js:41:1] + 41 │ var g = this.f; + 42 │ delete (g().#m); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-method-accessor-set.js:41:1] + 41 │ var g = this.f; + 42 │ delete (g().#m); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-method-async-gen.js:41:1] + 41 │ var g = this.f; + 42 │ delete (g().#m); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-method-async.js:41:1] + 41 │ var g = this.f; + 42 │ delete (g().#m); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-method-gen.js:41:1] + 41 │ var g = this.f; + 42 │ delete (g().#m); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-method.js:41:1] + 41 │ var g = this.f; + 42 │ delete (g().#m); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-call-expression-private-no-reference.js:41:1] + 41 │ var g = this.f; + 42 │ delete (g().#m); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-member-expression-private-method-accessor-get.js:41:1] + 41 │ + 42 │ delete (this.#m + · ── + 43 │ ); + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-member-expression-private-method-accessor-set.js:41:1] + 41 │ + 42 │ delete (this.#m + · ── + 43 │ ); + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-member-expression-private-method.js:41:1] + 41 │ + 42 │ delete (this.#m + · ── + 43 │ ); + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-covered-err-delete-member-expression-private-no-reference.js:41:1] + 41 │ + 42 │ delete (this.#m); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-method-accessor-get.js:35:1] + 35 │ var g = this.f; + 36 │ delete g().#m; + · ── + 37 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-method-accessor-set.js:35:1] + 35 │ var g = this.f; + 36 │ delete g().#m; + · ── + 37 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-method-async-gen.js:35:1] + 35 │ var g = this.f; + 36 │ delete g().#m; + · ── + 37 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-method-async.js:35:1] + 35 │ var g = this.f; + 36 │ delete g().#m; + · ── + 37 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-method-gen.js:35:1] + 35 │ var g = this.f; + 36 │ delete g().#m; + · ── + 37 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-method.js:35:1] + 35 │ var g = this.f; + 36 │ delete g().#m; + · ── + 37 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-call-expression-private-no-reference.js:35:1] + 35 │ var g = this.f; + 36 │ delete g().#m; + · ── + 37 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-member-expression-private-method-accessor-get.js:35:1] + 35 │ + 36 │ delete this.#m + · ── + 37 │ ; + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-member-expression-private-method-accessor-set.js:35:1] + 35 │ + 36 │ delete this.#m + · ── + 37 │ ; + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-member-expression-private-method.js:35:1] + 35 │ + 36 │ delete this.#m + · ── + 37 │ ; + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-err-delete-member-expression-private-no-reference.js:35:1] + 35 │ + 36 │ delete this.#m; + · ── + 37 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js:41:1] + 41 │ var g = this.f; + 42 │ delete ((g().#m)); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js:41:1] + 41 │ var g = this.f; + 42 │ delete ((g().#m)); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js:41:1] + 41 │ var g = this.f; + 42 │ delete ((g().#m)); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-method-async.js:41:1] + 41 │ var g = this.f; + 42 │ delete ((g().#m)); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-method-gen.js:41:1] + 41 │ var g = this.f; + 42 │ delete ((g().#m)); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-method.js:41:1] + 41 │ var g = this.f; + 42 │ delete ((g().#m)); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-call-expression-private-no-reference.js:41:1] + 41 │ var g = this.f; + 42 │ delete ((g().#m)); + · ── + 43 │ } + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js:41:1] + 41 │ + 42 │ delete ((this.#m + · ── + 43 │ )); + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js:41:1] + 41 │ + 42 │ delete ((this.#m + · ── + 43 │ )); + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-method.js:41:1] + 41 │ + 42 │ delete ((this.#m + · ── + 43 │ )); + ╰──── + + × Private field '"m"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/delete/method-delete-twice-covered-err-delete-member-expression-private-no-reference.js:41:1] + 41 │ + 42 │ delete ((this.#m)); + · ── + 43 │ } + ╰──── + × Invalid Character `'\0'` ╭─[language/statements/class/elements/syntax/early-errors/grammar-field-identifier-invalid-ues-error.js:68:1] 68 │ class C { @@ -15794,6 +17149,38 @@ Expect to Parse: "language/statements/class/decorator/syntax/class-valid/decorat 37 │ { ╰──── + × Private field '"foo"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage-chained-usage.js:35:1] + 35 │ + 36 │ class C extends class extends class extends class { x = this.#foo; } { #foo; x = this.#bar; } { #bar; x = this.#fuz; } + · ──── + 37 │ { + ╰──── + + × Private field '"bar"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage-chained-usage.js:35:1] + 35 │ + 36 │ class C extends class extends class extends class { x = this.#foo; } { #foo; x = this.#bar; } { #bar; x = this.#fuz; } + · ──── + 37 │ { + ╰──── + + × Private field '"fuz"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage-chained-usage.js:35:1] + 35 │ + 36 │ class C extends class extends class extends class { x = this.#foo; } { #foo; x = this.#bar; } { #bar; x = this.#fuz; } + · ──── + 37 │ { + ╰──── + + × Private identifier '#"foo"' is not allowed outside class bodies + ╭─[language/statements/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage-function-expression.js:35:1] + 35 │ + 36 │ class C extends function() { x = this.#foo; } + · ──── + 37 │ { + ╰──── + × Expect token ╭─[language/statements/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage-obj-literal.js:35:1] 35 │ @@ -15803,6 +17190,22 @@ Expect to Parse: "language/statements/class/decorator/syntax/class-valid/decorat 37 │ { ╰──── + × Private field '"foo"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage-recursive.js:35:1] + 35 │ + 36 │ class C extends class extends class { x = this.#foo; } {} + · ──── + 37 │ { + ╰──── + + × Private field '"foo"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage.js:35:1] + 35 │ + 36 │ class C extends class { x = this.#foo; } + · ──── + 37 │ { + ╰──── + × Unexpected token ╭─[language/statements/class/elements/syntax/early-errors/grammar-private-field-on-object-destructuring.js:29:1] 29 │ destructureX() { @@ -16012,6 +17415,14 @@ Expect to Parse: "language/statements/class/decorator/syntax/class-valid/decorat 64 │ ╰──── + × Private field '"f"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/grammar-privatename-in-computed-property-missing.js:50:1] + 50 │ class C { + 51 │ [this.#f] = 'Test262' + · ── + 52 │ } + ╰──── + × Invalid Character `' '` ╭─[language/statements/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-accessor-get-meth.js:27:1] 27 │ class C { @@ -16427,6 +17838,230 @@ Expect to Parse: "language/statements/class/decorator/syntax/class-valid/decorat 25 │ } ╰──── + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/field-init-call-expression-bad-reference.js:40:1] + 40 │ class C { + 41 │ f = (() => {})().#x + · ── + 42 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/field-init-call-expression-this.js:40:1] + 40 │ class C { + 41 │ f = (() => this)().#x + · ── + 42 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/field-init-fn-call-expression-bad-reference.js:40:1] + 40 │ class C { + 41 │ f = function() { (() => {})().#x } + · ── + 42 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/field-init-fn-call-expression-this.js:40:1] + 40 │ class C { + 41 │ f = function() { (() => this)().#x } + · ── + 42 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/field-init-fn-member-expression-bad-reference.js:40:1] + 40 │ class C { + 41 │ f = function() { something.#x } + · ── + 42 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/field-init-fn-member-expression-this.js:40:1] + 40 │ class C { + 41 │ f = function() { this.#x } + · ── + 42 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/field-init-member-expression-bad-reference.js:40:1] + 40 │ class C { + 41 │ f = something.#x + · ── + 42 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/field-init-member-expression-this.js:40:1] + 40 │ class C { + 41 │ f = this.#x + · ── + 42 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/fields-init-heritage-call-expression-bad-reference.js:55:1] + 55 │ class C extends Parent { + 56 │ f = (() => {})().#x + · ── + 57 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/fields-init-heritage-call-expression-this.js:55:1] + 55 │ class C extends Parent { + 56 │ f = (() => this)().#x + · ── + 57 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/fields-init-heritage-member-expression-bad-reference.js:55:1] + 55 │ class C extends Parent { + 56 │ f = something.#x + · ── + 57 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/fields-init-heritage-member-expression-this.js:55:1] + 55 │ class C extends Parent { + 56 │ f = this.#x + · ── + 57 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/method-call-expression-bad-reference.js:40:1] + 40 │ class C { + 41 │ m() { (() => {})().#x } + · ── + 42 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/method-call-expression-this.js:40:1] + 40 │ class C { + 41 │ m() { (() => this)().#x } + · ── + 42 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/method-fn-call-expression-bad-reference.js:41:1] + 41 │ m() { + 42 │ function fn() { (() => {})().#x } + · ── + 43 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/method-fn-call-expression-this.js:41:1] + 41 │ m() { + 42 │ function fn() { (() => this)().#x } + · ── + 43 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/method-fn-member-expression-bad-reference.js:41:1] + 41 │ m() { + 42 │ function fn() { something.#x } + · ── + 43 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/method-fn-member-expression-this.js:41:1] + 41 │ m() { + 42 │ function fn() { this.#x } + · ── + 43 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/method-heritage-call-expression-bad-reference.js:55:1] + 55 │ m() { + 56 │ (() => {})().#x + · ── + 57 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/method-heritage-call-expression-this.js:55:1] + 55 │ m() { + 56 │ (() => this)().#x + · ── + 57 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/method-heritage-member-expression-bad-reference.js:55:1] + 55 │ m() { + 56 │ something.#x + · ── + 57 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/method-heritage-member-expression-this.js:55:1] + 55 │ m() { + 56 │ this.#x + · ── + 57 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/method-member-expression-bad-reference.js:40:1] + 40 │ class C { + 41 │ m() { something.#x } + · ── + 42 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/method-member-expression-this.js:40:1] + 40 │ class C { + 41 │ m() { this.#x } + · ── + 42 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/method-outter-call-expression-bad-reference.js:55:1] + 55 │ + 56 │ this.#x; + · ── + 57 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/method-outter-call-expression-this.js:55:1] + 55 │ + 56 │ this.#x; + · ── + 57 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/method-outter-member-expression-bad-reference.js:55:1] + 55 │ + 56 │ this.#x; + · ── + 57 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[language/statements/class/elements/syntax/early-errors/invalid-names/method-outter-member-expression-this.js:55:1] + 55 │ + 56 │ this.#x; + · ── + 57 │ } + ╰──── + × Invalid Character `'#'` ╭─[language/statements/class/elements/syntax/early-errors/private-async-generator-cannot-escape-token.js:23:1] 23 │ class C { @@ -18276,6 +19911,34 @@ Expect to Parse: "language/statements/class/decorator/syntax/class-valid/decorat 54 │ ╰──── + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/statements/function/early-errors/invalid-names-call-expression-bad-reference.js:39:1] + 39 │ + 40 │ function fn() { (() => {})().#x } + · ── + ╰──── + + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/statements/function/early-errors/invalid-names-call-expression-this.js:39:1] + 39 │ + 40 │ function fn() { (() => this)().#x } + · ── + ╰──── + + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/statements/function/early-errors/invalid-names-member-expression-bad-reference.js:39:1] + 39 │ + 40 │ function fn() { something.#x } + · ── + ╰──── + + × Private identifier '#"x"' is not allowed outside class bodies + ╭─[language/statements/function/early-errors/invalid-names-member-expression-this.js:39:1] + 39 │ + 40 │ function fn() { this.#x } + · ── + ╰──── + × Expect token ╭─[language/statements/function/invalid-2-names.js:15:1] 15 │ diff --git a/tasks/coverage/typescript.snap b/tasks/coverage/typescript.snap index 56a8dc491..35436c84c 100644 --- a/tasks/coverage/typescript.snap +++ b/tasks/coverage/typescript.snap @@ -1,6 +1,6 @@ TypeScript Summary: -AST Parsed : 4329/4869 (88.91%) -Positive Passed: 4329/4869 (88.91%) +AST Parsed : 4306/4869 (88.44%) +Positive Passed: 4306/4869 (88.44%) Expect to Parse: "async/es2017/asyncArrowFunction/asyncArrowFunction6_es2017.ts" × Automatic Semicolon Insertion @@ -343,6 +343,23 @@ Expect to Parse: "classes/classDeclarations/classWithPredefinedTypesAsNames2.ts" · ──┬─ · ╰── Expect `{` here, but found `void` ╰──── +Expect to Parse: "classes/classStaticBlock/classStaticBlock16.ts" + + × Private field '"y"' must be declared in an enclosing class + ╭─[classes/classStaticBlock/classStaticBlock16.ts:12:1] + 12 │ getX = (obj: C) => obj.#x; + 13 │ getY = (obj: D) => obj.#y; + · ── + 14 │ } + ╰──── + + × Private field '"x"' must be declared in an enclosing class + ╭─[classes/classStaticBlock/classStaticBlock16.ts:22:1] + 22 │ // getY has privileged access to y + 23 │ getX = (obj: C) => obj.#x; + · ── + 24 │ getY = (obj: D) => obj.#y; + ╰──── Expect to Parse: "classes/classStaticBlock/classStaticBlock20.ts" × Expect token @@ -412,6 +429,74 @@ Expect to Parse: "classes/members/accessibility/privateInstanceMemberAccessibili 13 │ } ╰──── help: Try insert a semicolon here +Expect to Parse: "classes/members/privateNames/privateNameAccessorsAccess.ts" + + × Private identifier '#"prop"' is not allowed outside class bodies + ╭─[classes/members/privateNames/privateNameAccessorsAccess.ts:15:1] + 15 │ } + 16 │ new A2().#prop; // Error + · ───── + 17 │ + ╰──── + + × Private identifier '#"prop"' is not allowed outside class bodies + ╭─[classes/members/privateNames/privateNameAccessorsAccess.ts:18:1] + 18 │ function foo (){ + 19 │ new A2().#prop; // Error + · ───── + 20 │ } + ╰──── + + × Private field '"prop"' must be declared in an enclosing class + ╭─[classes/members/privateNames/privateNameAccessorsAccess.ts:23:1] + 23 │ m() { + 24 │ new A2().#prop; + · ───── + 25 │ } + ╰──── +Expect to Parse: "classes/members/privateNames/privateNameAccessorssDerivedClasses.ts" + + × Private field '"prop"' must be declared in an enclosing class + ╭─[classes/members/privateNames/privateNameAccessorssDerivedClasses.ts:10:1] + 10 │ static method(x: Derived) { + 11 │ console.log(x.#prop); + · ───── + 12 │ } + ╰──── +Expect to Parse: "classes/members/privateNames/privateNameAndAny.ts" + + × Private field '"bar"' must be declared in an enclosing class + ╭─[classes/members/privateNames/privateNameAndAny.ts:11:1] + 11 │ thing.#baz; + 12 │ thing.#bar; // Error + · ──── + 13 │ thing.#foo(); + ╰──── + + × Private field '"bar"' must be declared in an enclosing class + ╭─[classes/members/privateNames/privateNameAndAny.ts:18:1] + 18 │ thing.#baz; + 19 │ thing.#bar; + · ──── + 20 │ thing.#foo(); + ╰──── + + × Private field '"bar"' must be declared in an enclosing class + ╭─[classes/members/privateNames/privateNameAndAny.ts:25:1] + 25 │ thing.#baz; + 26 │ thing.#bar; + · ──── + 27 │ thing.#foo(); + ╰──── +Expect to Parse: "classes/members/privateNames/privateNameAndIndexSignature.ts" + + × Private field '"f"' must be declared in an enclosing class + ╭─[classes/members/privateNames/privateNameAndIndexSignature.ts:8:1] + 8 │ constructor(message: string) { + 9 │ this.#f = 3 // Error (index signatures do not implicitly declare private names) + · ── + 10 │ this["#foo"] = 3; // Okay (type has index signature and "#foo" does not collide with private identifier #foo) + ╰──── Expect to Parse: "classes/members/privateNames/privateNameAndPropertySignature.ts" × Unexpected token @@ -421,6 +506,39 @@ Expect to Parse: "classes/members/privateNames/privateNameAndPropertySignature.t · ──── 3 │ #bar(): string; ╰──── +Expect to Parse: "classes/members/privateNames/privateNameBadAssignment.ts" + + × Private identifier '#"nope"' is not allowed outside class bodies + ╭─[classes/members/privateNames/privateNameBadAssignment.ts:2:1] + 2 │ + 3 │ exports.#nope = 1; // Error (outside class body) + · ───── + 4 │ function A() { } + ╰──── + + × Private identifier '#"no"' is not allowed outside class bodies + ╭─[classes/members/privateNames/privateNameBadAssignment.ts:4:1] + 4 │ function A() { } + 5 │ A.prototype.#no = 2; // Error (outside class body) + · ─── + 6 │ + ╰──── + + × Private identifier '#"foo"' is not allowed outside class bodies + ╭─[classes/members/privateNames/privateNameBadAssignment.ts:7:1] + 7 │ class B {} + 8 │ B.#foo = 3; // Error (outside class body) + · ──── + 9 │ + ╰──── + + × Private field '"foo"' must be declared in an enclosing class + ╭─[classes/members/privateNames/privateNameBadAssignment.ts:13:1] + 13 │ exports.#bar = 6; // Error + 14 │ this.#foo = 3; // Error (undeclared) + · ──── + 15 │ } + ╰──── Expect to Parse: "classes/members/privateNames/privateNameBadDeclaration.ts" × Unexpected token @@ -1170,6 +1288,15 @@ Expect to Parse: "classes/members/privateNames/privateNameEnum.ts" · ── 4 │ } ╰──── +Expect to Parse: "classes/members/privateNames/privateNameFieldDerivedClasses.ts" + + × Private field '"prop"' must be declared in an enclosing class + ╭─[classes/members/privateNames/privateNameFieldDerivedClasses.ts:10:1] + 10 │ static method(x: Derived) { + 11 │ console.log(x.#prop); + · ───── + 12 │ } + ╰──── Expect to Parse: "classes/members/privateNames/privateNameHashCharName.ts" × Invalid Character `'\r'` @@ -1180,6 +1307,15 @@ Expect to Parse: "classes/members/privateNames/privateNameHashCharName.ts" · ╰── Invalid Character ` ` 4 │ ╰──── +Expect to Parse: "classes/members/privateNames/privateNameImplicitDeclaration.ts" + + × Private field '"x"' must be declared in an enclosing class + ╭─[classes/members/privateNames/privateNameImplicitDeclaration.ts:8:1] + 8 │ /** @type {string} */ + 9 │ this.#x; + · ── + 10 │ } + ╰──── Expect to Parse: "classes/members/privateNames/privateNameInInExpression.ts" × Expect token @@ -1227,6 +1363,39 @@ Expect to Parse: "classes/members/privateNames/privateNameInObjectLiteral-3.ts" · ──── 3 │ return "" ╰──── +Expect to Parse: "classes/members/privateNames/privateNameJsBadAssignment.ts" + + × Private identifier '#"nope"' is not allowed outside class bodies + ╭─[classes/members/privateNames/privateNameJsBadAssignment.ts:6:1] + 6 │ + 7 │ exports.#nope = 1; // Error (outside class body) + · ───── + 8 │ function A() { } + ╰──── + + × Private identifier '#"no"' is not allowed outside class bodies + ╭─[classes/members/privateNames/privateNameJsBadAssignment.ts:8:1] + 8 │ function A() { } + 9 │ A.prototype.#no = 2; // Error (outside class body) + · ─── + 10 │ + ╰──── + + × Private identifier '#"foo"' is not allowed outside class bodies + ╭─[classes/members/privateNames/privateNameJsBadAssignment.ts:11:1] + 11 │ class B {} + 12 │ B.#foo = 3; // Error (outside class body) + · ──── + 13 │ + ╰──── + + × Private field '"foo"' must be declared in an enclosing class + ╭─[classes/members/privateNames/privateNameJsBadAssignment.ts:16:1] + 16 │ constructor () { + 17 │ this.#foo = 3; // Error (undeclared) + · ──── + 18 │ } + ╰──── Expect to Parse: "classes/members/privateNames/privateNameJsBadDeclaration.ts" × Unexpected token @@ -1236,6 +1405,74 @@ Expect to Parse: "classes/members/privateNames/privateNameJsBadDeclaration.ts" · ── 9 │ #m() {}, // Error ╰──── +Expect to Parse: "classes/members/privateNames/privateNameMethodAccess.ts" + + × Private identifier '#"method"' is not allowed outside class bodies + ╭─[classes/members/privateNames/privateNameMethodAccess.ts:13:1] + 13 │ } + 14 │ new A2().#method(); // Error + · ─────── + 15 │ + ╰──── + + × Private identifier '#"method"' is not allowed outside class bodies + ╭─[classes/members/privateNames/privateNameMethodAccess.ts:16:1] + 16 │ function foo (){ + 17 │ new A2().#method(); // Error + · ─────── + 18 │ } + ╰──── + + × Private field '"method"' must be declared in an enclosing class + ╭─[classes/members/privateNames/privateNameMethodAccess.ts:21:1] + 21 │ m() { + 22 │ new A2().#method(); + · ─────── + 23 │ } + ╰──── +Expect to Parse: "classes/members/privateNames/privateNameMethodClassExpression.ts" + + × Private identifier '#"method"' is not allowed outside class bodies + ╭─[classes/members/privateNames/privateNameMethodClassExpression.ts:10:1] + 10 │ console.log(C.getInstance().getField()); + 11 │ C.getInstance().#method; // Error + · ─────── + 12 │ C.getInstance().#field; // Error + ╰──── + + × Private identifier '#"field"' is not allowed outside class bodies + ╭─[classes/members/privateNames/privateNameMethodClassExpression.ts:11:1] + 11 │ C.getInstance().#method; // Error + 12 │ C.getInstance().#field; // Error + · ────── + 13 │ + ╰──── +Expect to Parse: "classes/members/privateNames/privateNameMethodsDerivedClasses.ts" + + × Private field '"prop"' must be declared in an enclosing class + ╭─[classes/members/privateNames/privateNameMethodsDerivedClasses.ts:10:1] + 10 │ static method(x: Derived) { + 11 │ console.log(x.#prop()); + · ───── + 12 │ } + ╰──── +Expect to Parse: "classes/members/privateNames/privateNameNestedMethodAccess.ts" + + × Private field '"unknown"' must be declared in an enclosing class + ╭─[classes/members/privateNames/privateNameNestedMethodAccess.ts:20:1] + 20 │ x.#bar; + 21 │ x.#unknown; // Error + · ──────── + 22 │ } + ╰──── +Expect to Parse: "classes/members/privateNames/privateNameNotAccessibleOutsideDefiningClass.ts" + + × Private identifier '#"foo"' is not allowed outside class bodies + ╭─[classes/members/privateNames/privateNameNotAccessibleOutsideDefiningClass.ts:7:1] + 7 │ + 8 │ new A().#foo = 4; // Error + · ──── + ╰──── Expect to Parse: "classes/members/privateNames/privateNameNotAllowedOutsideClass.ts" × Unexpected token @@ -1244,6 +1481,57 @@ Expect to Parse: "classes/members/privateNames/privateNameNotAllowedOutsideClass 4 │ const #foo = 3; · ──── ╰──── +Expect to Parse: "classes/members/privateNames/privateNameStaticAccessorsAccess.ts" + + × Private identifier '#"prop"' is not allowed outside class bodies + ╭─[classes/members/privateNames/privateNameStaticAccessorsAccess.ts:16:1] + 16 │ + 17 │ A2.#prop; // Error + · ───── + 18 │ + ╰──── + + × Private identifier '#"prop"' is not allowed outside class bodies + ╭─[classes/members/privateNames/privateNameStaticAccessorsAccess.ts:19:1] + 19 │ function foo (){ + 20 │ A2.#prop; // Error + · ───── + 21 │ } + ╰──── + + × Private field '"prop"' must be declared in an enclosing class + ╭─[classes/members/privateNames/privateNameStaticAccessorsAccess.ts:24:1] + 24 │ m() { + 25 │ A2.#prop; + · ───── + 26 │ } + ╰──── +Expect to Parse: "classes/members/privateNames/privateNameStaticAccessorssDerivedClasses.ts" + + × Private field '"prop"' must be declared in an enclosing class + ╭─[classes/members/privateNames/privateNameStaticAccessorssDerivedClasses.ts:10:1] + 10 │ static method(x: typeof Derived) { + 11 │ console.log(x.#prop); + · ───── + 12 │ } + ╰──── +Expect to Parse: "classes/members/privateNames/privateNameStaticFieldDerivedClasses.ts" + + × Private field '"derivedProp"' must be declared in an enclosing class + ╭─[classes/members/privateNames/privateNameStaticFieldDerivedClasses.ts:5:1] + 5 │ static method(x: Derived) { + 6 │ Derived.#derivedProp // error + · ──────────── + 7 │ Base.#prop = 10; + ╰──── + + × Private field '"prop"' must be declared in an enclosing class + ╭─[classes/members/privateNames/privateNameStaticFieldDerivedClasses.ts:13:1] + 13 │ Derived.#derivedProp + 14 │ Base.#prop = 10; // error + · ───── + 15 │ } + ╰──── Expect to Parse: "classes/members/privateNames/privateNameStaticMethodAsync.ts" × Expect token @@ -1254,6 +1542,41 @@ Expect to Parse: "classes/members/privateNames/privateNameStaticMethodAsync.ts" · ╰── Expect `(` here, but found `*` 14 │ } ╰──── +Expect to Parse: "classes/members/privateNames/privateNameStaticMethodClassExpression.ts" + + × Private identifier '#"method"' is not allowed outside class bodies + ╭─[classes/members/privateNames/privateNameStaticMethodClassExpression.ts:10:1] + 10 │ console.log(C.getClass().getField()); + 11 │ C.getClass().#method; // Error + · ─────── + 12 │ C.getClass().#field; // Error + ╰──── + + × Private identifier '#"field"' is not allowed outside class bodies + ╭─[classes/members/privateNames/privateNameStaticMethodClassExpression.ts:11:1] + 11 │ C.getClass().#method; // Error + 12 │ C.getClass().#field; // Error + · ────── + 13 │ + ╰──── +Expect to Parse: "classes/members/privateNames/privateNameUncheckedJsOptionalChain.ts" + + × Private field '"foo"' must be declared in an enclosing class + ╭─[classes/members/privateNames/privateNameUncheckedJsOptionalChain.ts:9:1] + 9 │ constructor () { + 10 │ this?.#foo; + · ──── + 11 │ this?.#bar; + ╰──── +Expect to Parse: "classes/members/privateNames/privateNamesAndGenericClasses-2.ts" + + × Private identifier '#"foo"' is not allowed outside class bodies + ╭─[classes/members/privateNames/privateNamesAndGenericClasses-2.ts:26:1] + 26 │ const x: number = a.baz // OK + 27 │ a.#foo; // Error + · ──── + 28 │ a = b; // Error + ╰──── Expect to Parse: "classes/members/privateNames/privateNamesAndIndexedAccess.ts" × Unexpected token @@ -1263,6 +1586,31 @@ Expect to Parse: "classes/members/privateNames/privateNamesAndIndexedAccess.ts" · ──── 12 │ // will never use this syntax, already taken: ╰──── +Expect to Parse: "classes/members/privateNames/privateNamesInGenericClasses.ts" + + × Private identifier '#"foo"' is not allowed outside class bodies + ╭─[classes/members/privateNames/privateNamesInGenericClasses.ts:25:1] + 25 │ declare let b: C; + 26 │ a.#foo; // Error + · ──── + 27 │ a.#method; // Error + ╰──── + + × Private identifier '#"method"' is not allowed outside class bodies + ╭─[classes/members/privateNames/privateNamesInGenericClasses.ts:26:1] + 26 │ a.#foo; // Error + 27 │ a.#method; // Error + · ─────── + 28 │ a.#prop; // Error + ╰──── + + × Private identifier '#"prop"' is not allowed outside class bodies + ╭─[classes/members/privateNames/privateNamesInGenericClasses.ts:27:1] + 27 │ a.#method; // Error + 28 │ a.#prop; // Error + · ───── + 29 │ a = b; // Error + ╰──── Expect to Parse: "classes/members/privateNames/privateNamesIncompatibleModifiers.ts" × Expect token @@ -1273,6 +1621,15 @@ Expect to Parse: "classes/members/privateNames/privateNamesIncompatibleModifiers · ╰── Expect `(` here, but found `#identifier` 31 │ async set #asyncProp(value: number) { } // Error ╰──── +Expect to Parse: "classes/members/privateNames/privateNamesInterfaceExtendingClass.ts" + + × Private identifier '#"prop"' is not allowed outside class bodies + ╭─[classes/members/privateNames/privateNamesInterfaceExtendingClass.ts:11:1] + 11 │ function func(x: I) { + 12 │ x.#prop = 123; + · ───── + 13 │ } + ╰──── Expect to Parse: "classes/members/privateNames/privateNamesNotAllowedAsParameters.ts" × Unexpected token @@ -5828,6 +6185,14 @@ Expect to Parse: "salsa/plainJSGrammarErrors.ts" · ╰── Expect `in` here, but found `Identifier` 10 │ #p ╰──── +Expect to Parse: "salsa/privateIdentifierExpando.ts" + + × Private identifier '#"bar"' is not allowed outside class bodies + ╭─[salsa/privateIdentifierExpando.ts:7:1] + 7 │ const x = {}; + 8 │ x.#bar.baz = 20; + · ──── + ╰──── Expect to Parse: "scanner/ecmascript3/scannerES3NumericLiteral3.ts" × Automatic Semicolon Insertion