From f3d771c150155ff8a5fff59c215d646394402bb3 Mon Sep 17 00:00:00 2001 From: Leo Balter Date: Thu, 16 Jul 2020 16:02:38 -0700 Subject: [PATCH 1/2] Question about delete expression + opt chain I'm not sure what is the accurate intention here. The text says prohibits listed derivations (in Strict Mode) of UnaryExpression such as `MemberExpression . PrivateIdentifier`. The problem is, OptionalChain is not an immediate derivation, but part of a composition. So I believe the intention is to add he derivations I'm suggesting here. It's a bit verbose but accurate. The original text would target cases like: ```js delete ?. # delete ?.x.#y ``` but they are already not possible. In the suggested prose we disallow: ```js delete this?.#x // OptionalExpression : MemberExpression `?.` PrivateIdentifier delete this?.x.#y // OptionalExpression : MemberExpression OptionalChain PrivateIdentifier delete this?.x?.#x // OptionalExpression : OptionalExpression `?.` PrivateIdentifier delete this?.x?.y.#x // OptionalExpression : OptionalExpression OptionalChain PrivateIdentifier delete super()?.#x // OptionalExpression : CallExpression `?.` PrivateIdentifier delete super()?.x.#y // OptionalExpression : CallExpression OptionalChain PrivateIdentifier delete super().x?.#x delete super()?.x?.y.#x ``` am I missing anything? --- spec.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec.html b/spec.html index 5476d3d..1bf245f 100644 --- a/spec.html +++ b/spec.html @@ -195,7 +195,7 @@

Static Semantics: Early Errors

UnaryExpression : `delete` UnaryExpression