diff --git a/test/language/statements/class/privatefieldadd-typeerror.js b/test/language/statements/class/privatefieldadd-typeerror.js index a22d0536c743c8ba8d0cee104906bd0ec4899a10..e1275219325a534342fe8c957103038cfd837cdf 100644 --- a/test/language/statements/class/privatefieldadd-typeerror.js +++ b/test/language/statements/class/privatefieldadd-typeerror.js @@ -19,8 +19,8 @@ info: | 2. Assert: Assert constructor is an ECMAScript function object. 3. Let fieldRecords be the value of constructor's [[Fields]] internal slot. 4. For each item fieldRecord in order from fieldRecords, - a. If fieldRecord.[[static]] is false, then - i. Perform ? DefineField(O, fieldRecord). + a. Perform ? DefineField(O, fieldRecord). + 5. Return. DefineField(receiver, fieldRecord) ... @@ -32,6 +32,7 @@ info: | 2. If O is not an object, throw a TypeError exception. 3. Let entry be PrivateFieldFind(P, O). 4. If entry is not empty, throw a TypeError exception. + ... features: [class, class-fields-private] ---*/ diff --git a/test/language/statements/class/privatefieldget-success-1.js b/test/language/statements/class/privatefieldget-success-1.js index 834d6c876a774ded87002bd61d5f068ac0d0272c..385ff09c9f8d13373ea1dd90be7246af60f3734d 100644 --- a/test/language/statements/class/privatefieldget-success-1.js +++ b/test/language/statements/class/privatefieldget-success-1.js @@ -8,12 +8,12 @@ info: | GetValue ( V ) ... 5. If IsPropertyReference(V), then - ... - b. If IsPrivateReference(V), then - i. Let env be the running execution context's PrivateNameEnvironment. - ii. Let field be ? ResolveBinding(GetReferencedName(V), env). - iii. Assert: field is a Private Name. - iv. Return ? PrivateFieldGet(field, base). + ... + b. If IsPrivateReference(V), then + i. Let env be the running execution context's PrivateNameEnvironment. + ii. Let field be ? ResolveBinding(GetReferencedName(V), env). + iii. Assert: field is a Private Name. + iv. Return ? PrivateFieldGet(field, base). PrivateFieldGet (P, O ) 1. Assert: P is a Private Name value. diff --git a/test/language/statements/class/privatefieldget-success-2.js b/test/language/statements/class/privatefieldget-success-2.js index a404985e224a3a0b7e58f06b72f1b200dfed2947..d5e091012c49e797939f274da1edec3bb0799c4a 100644 --- a/test/language/statements/class/privatefieldget-success-2.js +++ b/test/language/statements/class/privatefieldget-success-2.js @@ -8,12 +8,12 @@ info: | GetValue ( V ) ... 5. If IsPropertyReference(V), then - ... - b. If IsPrivateReference(V), then - i. Let env be the running execution context's PrivateNameEnvironment. - ii. Let field be ? ResolveBinding(GetReferencedName(V), env). - iii. Assert: field is a Private Name. - iv. Return ? PrivateFieldGet(field, base). + ... + b. If IsPrivateReference(V), then + i. Let env be the running execution context's PrivateNameEnvironment. + ii. Let field be ? ResolveBinding(GetReferencedName(V), env). + iii. Assert: field is a Private Name. + iv. Return ? PrivateFieldGet(field, base). PrivateFieldGet (P, O ) 1. Assert: P is a Private Name value. diff --git a/test/language/statements/class/privatefieldget-success-3.js b/test/language/statements/class/privatefieldget-success-3.js index 9b6104eabc640c7945ee05a246cffe466b93bbf6..0dd43e38a95a54eff4f23d0ce0eb7567dc5d8039 100644 --- a/test/language/statements/class/privatefieldget-success-3.js +++ b/test/language/statements/class/privatefieldget-success-3.js @@ -8,12 +8,12 @@ info: | GetValue ( V ) ... 5. If IsPropertyReference(V), then - ... - b. If IsPrivateReference(V), then - i. Let env be the running execution context's PrivateNameEnvironment. - ii. Let field be ? ResolveBinding(GetReferencedName(V), env). - iii. Assert: field is a Private Name. - iv. Return ? PrivateFieldGet(field, base). + ... + b. If IsPrivateReference(V), then + i. Let env be the running execution context's PrivateNameEnvironment. + ii. Let field be ? ResolveBinding(GetReferencedName(V), env). + iii. Assert: field is a Private Name. + iv. Return ? PrivateFieldGet(field, base). PrivateFieldGet (P, O ) 1. Assert: P is a Private Name value. diff --git a/test/language/statements/class/privatefieldget-success-4.js b/test/language/statements/class/privatefieldget-success-4.js index b6c296afb300c2a84f49bce965c04032311540e5..7466fb4db239fd56cb60144d839d668ee9f91434 100644 --- a/test/language/statements/class/privatefieldget-success-4.js +++ b/test/language/statements/class/privatefieldget-success-4.js @@ -8,12 +8,12 @@ info: | GetValue ( V ) ... 5. If IsPropertyReference(V), then - ... - b. If IsPrivateReference(V), then - i. Let env be the running execution context's PrivateNameEnvironment. - ii. Let field be ? ResolveBinding(GetReferencedName(V), env). - iii. Assert: field is a Private Name. - iv. Return ? PrivateFieldGet(field, base). + ... + b. If IsPrivateReference(V), then + i. Let env be the running execution context's PrivateNameEnvironment. + ii. Let field be ? ResolveBinding(GetReferencedName(V), env). + iii. Assert: field is a Private Name. + iv. Return ? PrivateFieldGet(field, base). PrivateFieldGet (P, O ) 1. Assert: P is a Private Name value. diff --git a/test/language/statements/class/privatefieldget-success-5.js b/test/language/statements/class/privatefieldget-success-5.js index 64c0ad55117df012c3781baee65fa0e9c4baef46..1dc9700e8eb81fe34c501decebd5cd057af1c177 100644 --- a/test/language/statements/class/privatefieldget-success-5.js +++ b/test/language/statements/class/privatefieldget-success-5.js @@ -8,12 +8,12 @@ info: | GetValue ( V ) ... 5. If IsPropertyReference(V), then - ... - b. If IsPrivateReference(V), then - i. Let env be the running execution context's PrivateNameEnvironment. - ii. Let field be ? ResolveBinding(GetReferencedName(V), env). - iii. Assert: field is a Private Name. - iv. Return ? PrivateFieldGet(field, base). + ... + b. If IsPrivateReference(V), then + i. Let env be the running execution context's PrivateNameEnvironment. + ii. Let field be ? ResolveBinding(GetReferencedName(V), env). + iii. Assert: field is a Private Name. + iv. Return ? PrivateFieldGet(field, base). PrivateFieldGet (P, O ) 1. Assert: P is a Private Name value. diff --git a/test/language/statements/class/privatefieldget-typeerror-1.js b/test/language/statements/class/privatefieldget-typeerror-1.js index d90c45efae16d83dca47301fa264ee3fa4e38ad7..9cc17bf3d57e3f2f34741e3b0b2ec20f2a2d63f8 100644 --- a/test/language/statements/class/privatefieldget-typeerror-1.js +++ b/test/language/statements/class/privatefieldget-typeerror-1.js @@ -8,12 +8,12 @@ info: | GetValue ( V ) ... 5. If IsPropertyReference(V), then - ... - b. If IsPrivateReference(V), then - i. Let env be the running execution context's PrivateNameEnvironment. - ii. Let field be ? ResolveBinding(GetReferencedName(V), env). - iii. Assert: field is a Private Name. - iv. Return ? PrivateFieldGet(field, base). + ... + b. If IsPrivateReference(V), then + i. Let env be the running execution context's PrivateNameEnvironment. + ii. Let field be ? ResolveBinding(GetReferencedName(V), env). + iii. Assert: field is a Private Name. + iv. Return ? PrivateFieldGet(field, base). PrivateFieldGet (P, O ) 1. Assert: P is a Private Name value. diff --git a/test/language/statements/class/privatefieldget-typeerror-2.js b/test/language/statements/class/privatefieldget-typeerror-2.js index 3594f41021a8068d5b38e6af19900d5e2326f36d..a06439748ba2b56d61b7860e424bb88c674e154a 100644 --- a/test/language/statements/class/privatefieldget-typeerror-2.js +++ b/test/language/statements/class/privatefieldget-typeerror-2.js @@ -8,12 +8,12 @@ info: | GetValue ( V ) ... 5. If IsPropertyReference(V), then - ... - b. If IsPrivateReference(V), then - i. Let env be the running execution context's PrivateNameEnvironment. - ii. Let field be ? ResolveBinding(GetReferencedName(V), env). - iii. Assert: field is a Private Name. - iv. Return ? PrivateFieldGet(field, base). + ... + b. If IsPrivateReference(V), then + i. Let env be the running execution context's PrivateNameEnvironment. + ii. Let field be ? ResolveBinding(GetReferencedName(V), env). + iii. Assert: field is a Private Name. + iv. Return ? PrivateFieldGet(field, base). PrivateFieldGet (P, O ) 1. Assert: P is a Private Name value. diff --git a/test/language/statements/class/privatefieldget-typeerror-3.js b/test/language/statements/class/privatefieldget-typeerror-3.js index f9669a661028f2f56bd9c3d7783e81591127ee19..542e38097cac7c667f3b28c72f21a4e161f125b8 100644 --- a/test/language/statements/class/privatefieldget-typeerror-3.js +++ b/test/language/statements/class/privatefieldget-typeerror-3.js @@ -9,12 +9,12 @@ info: | GetValue ( V ) ... 5. If IsPropertyReference(V), then - ... - b. If IsPrivateReference(V), then - i. Let env be the running execution context's PrivateNameEnvironment. - ii. Let field be ? ResolveBinding(GetReferencedName(V), env). - iii. Assert: field is a Private Name. - iv. Return ? PrivateFieldGet(field, base). + ... + b. If IsPrivateReference(V), then + i. Let env be the running execution context's PrivateNameEnvironment. + ii. Let field be ? ResolveBinding(GetReferencedName(V), env). + iii. Assert: field is a Private Name. + iv. Return ? PrivateFieldGet(field, base). PrivateFieldGet (P, O ) 1. Assert: P is a Private Name value. diff --git a/test/language/statements/class/privatefieldset-typeerror-1.js b/test/language/statements/class/privatefieldset-typeerror-1.js index 8ad4492c069fd7db7b59e762208c716cc3e4c376..01fc83c2dbe59683cf044f9c0f0f9fe1c10a9fe9 100644 --- a/test/language/statements/class/privatefieldset-typeerror-1.js +++ b/test/language/statements/class/privatefieldset-typeerror-1.js @@ -7,7 +7,7 @@ esid: sec-putvalue info: | PutValue ( V, W ) ... - 5. Else if IsPropertyReference(V), then + 6. Else if IsPropertyReference(V), then ... b. If IsPrivateReference(V), then i. Let env be the running execution context's PrivateNameEnvironment. diff --git a/test/language/statements/class/privatefieldset-typeerror-2.js b/test/language/statements/class/privatefieldset-typeerror-2.js index a4054aaf6886a961e638618d860b8123e34e15b8..e64451445b24d0bc68d0ac5cac31038a48c4fd9e 100644 --- a/test/language/statements/class/privatefieldset-typeerror-2.js +++ b/test/language/statements/class/privatefieldset-typeerror-2.js @@ -7,7 +7,7 @@ esid: sec-putvalue info: | PutValue ( V, W ) ... - 5. Else if IsPropertyReference(V), then + 6. Else if IsPropertyReference(V), then ... b. If IsPrivateReference(V), then i. Let env be the running execution context's PrivateNameEnvironment. diff --git a/test/language/statements/class/privatefieldset-typeerror-3.js b/test/language/statements/class/privatefieldset-typeerror-3.js index 3f64d3eb74854b04d0f6b5e721ec7f13ce29f705..656e8e34904b0aee7c2a8350aad5f3514a7382e3 100644 --- a/test/language/statements/class/privatefieldset-typeerror-3.js +++ b/test/language/statements/class/privatefieldset-typeerror-3.js @@ -8,7 +8,7 @@ esid: sec-putvalue info: | PutValue ( V, W ) ... - 5. Else if IsPropertyReference(V), then + 6. Else if IsPropertyReference(V), then ... b. If IsPrivateReference(V), then i. Let env be the running execution context's PrivateNameEnvironment. diff --git a/test/language/statements/class/privatefieldset-typeerror-4.js b/test/language/statements/class/privatefieldset-typeerror-4.js index 0520bff4613e7bc24d900f84bab1bfd750cc531b..20eff276e522862f7dfa8ecfd69f954955451fdf 100644 --- a/test/language/statements/class/privatefieldset-typeerror-4.js +++ b/test/language/statements/class/privatefieldset-typeerror-4.js @@ -7,7 +7,7 @@ esid: sec-putvalue info: | PutValue ( V, W ) ... - 5. Else if IsPropertyReference(V), then + 6. Else if IsPropertyReference(V), then ... b. If IsPrivateReference(V), then i. Let env be the running execution context's PrivateNameEnvironment. diff --git a/test/language/statements/class/privatefieldset-typeerror-5.js b/test/language/statements/class/privatefieldset-typeerror-5.js index 5cc240289698c4fb78cb938cb99fbd3b4a90f1f4..e8703f5c69c9ede1ec896bdb9b8355feeadca195 100644 --- a/test/language/statements/class/privatefieldset-typeerror-5.js +++ b/test/language/statements/class/privatefieldset-typeerror-5.js @@ -7,7 +7,7 @@ esid: sec-putvalue info: | PutValue ( V, W ) ... - 5. Else if IsPropertyReference(V), then + 6. Else if IsPropertyReference(V), then ... b. If IsPrivateReference(V), then i. Let env be the running execution context's PrivateNameEnvironment. diff --git a/test/language/statements/class/privatename-not-valid-earlyerr-script-1.js b/test/language/statements/class/privatename-not-valid-earlyerr-script-1.js index a617f44b9e673748648f67ab48a383528e33c22e..f1cb3d47c68c7d5e01147f4518e5843de231f97d 100644 --- a/test/language/statements/class/privatename-not-valid-earlyerr-script-1.js +++ b/test/language/statements/class/privatename-not-valid-earlyerr-script-1.js @@ -5,10 +5,10 @@ esid: sec-scripts-static-semantics-early-errors description: Early error when referencing privatename in constructor without being declared in class fields info: | Static Semantics: Early Errors - Script : ScriptBody - 1. Let names be an empty List. - ... - 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. + ScriptBody : StatementList + + It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval. + features: [class, class-fields-private] negative: phase: parse diff --git a/test/language/statements/class/privatename-not-valid-earlyerr-script-2.js b/test/language/statements/class/privatename-not-valid-earlyerr-script-2.js index a2583a39871d965cf5a34f84e8756523c61cca92..5a4b1c125f3e01faffc97367aad72339013b08f1 100644 --- a/test/language/statements/class/privatename-not-valid-earlyerr-script-2.js +++ b/test/language/statements/class/privatename-not-valid-earlyerr-script-2.js @@ -5,10 +5,10 @@ esid: sec-scripts-static-semantics-early-errors description: Early error when referencing privatename in function in class without declaring in field info: | Static Semantics: Early Errors - Script : ScriptBody - 1. Let names be an empty List. - ... - 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. + ScriptBody : StatementList + + It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval. + features: [class, class-fields-private] negative: phase: parse diff --git a/test/language/statements/class/privatename-not-valid-earlyerr-script-3.js b/test/language/statements/class/privatename-not-valid-earlyerr-script-3.js index 18e0feaa41e121c3f0975141339e451a7b8f4df8..67f7aaf50eca6948bfe4f3e456d2952c80ec0e54 100644 --- a/test/language/statements/class/privatename-not-valid-earlyerr-script-3.js +++ b/test/language/statements/class/privatename-not-valid-earlyerr-script-3.js @@ -5,10 +5,10 @@ esid: sec-scripts-static-semantics-early-errors description: Early error when referencing privatename that has not been declared in class. info: | Static Semantics: Early Errors - Script : ScriptBody - 1. Let names be an empty List. - ... - 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. + ScriptBody : StatementList + + It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval. + features: [class, class-fields-private, class-fields-public] negative: phase: parse diff --git a/test/language/statements/class/privatename-not-valid-earlyerr-script-4.js b/test/language/statements/class/privatename-not-valid-earlyerr-script-4.js index 728b669ae053e5382d8a8cdc77d67420611b0272..1c7553efa3b60605250edcd431aea12b51c06101 100644 --- a/test/language/statements/class/privatename-not-valid-earlyerr-script-4.js +++ b/test/language/statements/class/privatename-not-valid-earlyerr-script-4.js @@ -5,10 +5,10 @@ esid: sec-scripts-static-semantics-early-errors description: Early error when referencing privatename that has not been declared in class. info: | Static Semantics: Early Errors - Script : ScriptBody - 1. Let names be an empty List. - ... - 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. + ScriptBody : StatementList + + It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval. + features: [class, class-fields-private] negative: phase: parse diff --git a/test/language/statements/class/privatename-not-valid-earlyerr-script-5.js b/test/language/statements/class/privatename-not-valid-earlyerr-script-5.js index e5ed92bcee826db7f3b827410a9e9abc64413534..f9a9bd414c2b236f126678882fc864f83b6c5c41 100644 --- a/test/language/statements/class/privatename-not-valid-earlyerr-script-5.js +++ b/test/language/statements/class/privatename-not-valid-earlyerr-script-5.js @@ -5,10 +5,10 @@ esid: sec-scripts-static-semantics-early-errors description: Early error when referencing privatename outside of class info: | Static Semantics: Early Errors - Script : ScriptBody - 1. Let names be an empty List. - ... - 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. + ScriptBody : StatementList + + It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval. + features: [class, class-fields-private] negative: phase: parse diff --git a/test/language/statements/class/privatename-not-valid-earlyerr-script-6.js b/test/language/statements/class/privatename-not-valid-earlyerr-script-6.js index 5901158cfaadfb9d15d24eb564584ba920cd711c..f1a4f8ca8695e7c8946baf2b154a8309d880ecbe 100644 --- a/test/language/statements/class/privatename-not-valid-earlyerr-script-6.js +++ b/test/language/statements/class/privatename-not-valid-earlyerr-script-6.js @@ -5,10 +5,10 @@ esid: sec-scripts-static-semantics-early-errors description: Early error when referencing privatename outside of class. info: | Static Semantics: Early Errors - Script : ScriptBody - 1. Let names be an empty List. - ... - 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. + ScriptBody : StatementList + + It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval. + features: [class, class-fields-private] negative: phase: parse diff --git a/test/language/statements/class/privatename-not-valid-earlyerr-script-7.js b/test/language/statements/class/privatename-not-valid-earlyerr-script-7.js index 185ddb54df8e81f0bf20a28545a8ab9fac4633e1..58c14e57dcd3425c79dc44db15d235237a0a46e8 100644 --- a/test/language/statements/class/privatename-not-valid-earlyerr-script-7.js +++ b/test/language/statements/class/privatename-not-valid-earlyerr-script-7.js @@ -5,10 +5,10 @@ esid: sec-scripts-static-semantics-early-errors description: Early error when referencing privatename on object, outside of class. info: | Static Semantics: Early Errors - Script : ScriptBody - 1. Let names be an empty List. - ... - 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. + ScriptBody : StatementList + + It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval. + features: [class-fields-private] negative: phase: parse diff --git a/test/language/statements/class/privatename-not-valid-earlyerr-script-8.js b/test/language/statements/class/privatename-not-valid-earlyerr-script-8.js index 6b6e96374836d7b1555defbb9ed83c6714c6aab7..c134b47409744a24a788fdcc7db9a13d08d1f54d 100644 --- a/test/language/statements/class/privatename-not-valid-earlyerr-script-8.js +++ b/test/language/statements/class/privatename-not-valid-earlyerr-script-8.js @@ -5,10 +5,10 @@ esid: sec-scripts-static-semantics-early-errors description: Early error when referencing privatename on object, outside of class. info: | Static Semantics: Early Errors - Script : ScriptBody - 1. Let names be an empty List. - ... - 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. + ScriptBody : StatementList + + It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval. + features: [class-fields-private] negative: phase: parse diff --git a/test/language/statements/class/privatename-not-valid-eval-earlyerr-1.js b/test/language/statements/class/privatename-not-valid-eval-earlyerr-1.js index 44a3f94835f03f9d2027d772c029c1a497526092..0da3536a984a677d3b8d8a8a9f4f90690afbfc47 100644 --- a/test/language/statements/class/privatename-not-valid-eval-earlyerr-1.js +++ b/test/language/statements/class/privatename-not-valid-eval-earlyerr-1.js @@ -5,15 +5,10 @@ esid: sec-scripts-static-semantics-early-errors description: Early error when referencing privatename in constructor without being declared in class fields info: | Static Semantics: Early Errors - Script : ScriptBody - 1. Let names be an empty List. - 2. If Script is parsed directly from PerformEval, - a. Let env be the running execution context's PrivateNameEnvironment. - b. Repeat while env is not null, - i. For each binding named N in env, - 1. If names does not contain N, append N to names. - ii. Let env be env's outer environment reference. - 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. + ScriptBody : StatementList + + It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval. + features: [class, class-fields-private] ---*/ diff --git a/test/language/statements/class/privatename-not-valid-eval-earlyerr-2.js b/test/language/statements/class/privatename-not-valid-eval-earlyerr-2.js index 69ea3b5432a31cf979b139ad368393090e3d75d0..434e1345c47568e1c2f3dbd50e9baf261a9bbe21 100644 --- a/test/language/statements/class/privatename-not-valid-eval-earlyerr-2.js +++ b/test/language/statements/class/privatename-not-valid-eval-earlyerr-2.js @@ -5,15 +5,10 @@ esid: sec-scripts-static-semantics-early-errors description: Early error when referencing privatename in function in class without declaring in field info: | Static Semantics: Early Errors - Script : ScriptBody - 1. Let names be an empty List. - 2. If Script is parsed directly from PerformEval, - a. Let env be the running execution context's PrivateNameEnvironment. - b. Repeat while env is not null, - i. For each binding named N in env, - 1. If names does not contain N, append N to names. - ii. Let env be env's outer environment reference. - 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. + ScriptBody : StatementList + + It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval. + features: [class, class-fields-private] ---*/ diff --git a/test/language/statements/class/privatename-not-valid-eval-earlyerr-3.js b/test/language/statements/class/privatename-not-valid-eval-earlyerr-3.js index be2283ccb2682d97e67087d1a08720ba09ce6a76..dbfeef0d3a9b62732834c125deba6eae73d975a7 100644 --- a/test/language/statements/class/privatename-not-valid-eval-earlyerr-3.js +++ b/test/language/statements/class/privatename-not-valid-eval-earlyerr-3.js @@ -5,15 +5,10 @@ esid: sec-scripts-static-semantics-early-errors description: Early error when referencing privatename that has not been declared in class. info: | Static Semantics: Early Errors - Script : ScriptBody - 1. Let names be an empty List. - 2. If Script is parsed directly from PerformEval, - a. Let env be the running execution context's PrivateNameEnvironment. - b. Repeat while env is not null, - i. For each binding named N in env, - 1. If names does not contain N, append N to names. - ii. Let env be env's outer environment reference. - 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. + ScriptBody : StatementList + + It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval. + features: [class, class-fields-private, class-fields-public] ---*/ diff --git a/test/language/statements/class/privatename-not-valid-eval-earlyerr-4.js b/test/language/statements/class/privatename-not-valid-eval-earlyerr-4.js index 78395d58da5d63ec1ef15aa41cfb70214afd7e8b..513999ebc32dd5bb53ff399b79739c7b93c5cd81 100644 --- a/test/language/statements/class/privatename-not-valid-eval-earlyerr-4.js +++ b/test/language/statements/class/privatename-not-valid-eval-earlyerr-4.js @@ -5,15 +5,10 @@ esid: sec-scripts-static-semantics-early-errors description: Early error when referencing privatename that has not been declared in class. info: | Static Semantics: Early Errors - Script : ScriptBody - 1. Let names be an empty List. - 2. If Script is parsed directly from PerformEval, - a. Let env be the running execution context's PrivateNameEnvironment. - b. Repeat while env is not null, - i. For each binding named N in env, - 1. If names does not contain N, append N to names. - ii. Let env be env's outer environment reference. - 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. + ScriptBody : StatementList + + It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval. + features: [class, class-fields-private] ---*/ diff --git a/test/language/statements/class/privatename-not-valid-eval-earlyerr-5.js b/test/language/statements/class/privatename-not-valid-eval-earlyerr-5.js index 5572340e6799d1e8dc2c4a4d3c20a67b0f97bddb..b3a7bf5a170f8ec3a7c5a8a6653b56e1e2d6fb67 100644 --- a/test/language/statements/class/privatename-not-valid-eval-earlyerr-5.js +++ b/test/language/statements/class/privatename-not-valid-eval-earlyerr-5.js @@ -5,15 +5,10 @@ esid: sec-scripts-static-semantics-early-errors description: Early error when referencing privatename outside of class info: | Static Semantics: Early Errors - Script : ScriptBody - 1. Let names be an empty List. - 2. If Script is parsed directly from PerformEval, - a. Let env be the running execution context's PrivateNameEnvironment. - b. Repeat while env is not null, - i. For each binding named N in env, - 1. If names does not contain N, append N to names. - ii. Let env be env's outer environment reference. - 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. + ScriptBody : StatementList + + It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval. + features: [class, class-fields-private] ---*/ diff --git a/test/language/statements/class/privatename-not-valid-eval-earlyerr-6.js b/test/language/statements/class/privatename-not-valid-eval-earlyerr-6.js index cb50fa1912af84f2523ec1d30b96d956376ac849..1026d9271d748ad987e78d2ff7cbb4361ce99fe2 100644 --- a/test/language/statements/class/privatename-not-valid-eval-earlyerr-6.js +++ b/test/language/statements/class/privatename-not-valid-eval-earlyerr-6.js @@ -5,15 +5,10 @@ esid: sec-scripts-static-semantics-early-errors description: Early error when referencing privatename outside of class. info: | Static Semantics: Early Errors - Script : ScriptBody - 1. Let names be an empty List. - 2. If Script is parsed directly from PerformEval, - a. Let env be the running execution context's PrivateNameEnvironment. - b. Repeat while env is not null, - i. For each binding named N in env, - 1. If names does not contain N, append N to names. - ii. Let env be env's outer environment reference. - 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. + ScriptBody : StatementList + + It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval. + features: [class, class-fields-private] ---*/ diff --git a/test/language/statements/class/privatename-not-valid-eval-earlyerr-7.js b/test/language/statements/class/privatename-not-valid-eval-earlyerr-7.js index 972a395c8e46833fc9da9045ec4f26d6241fe47d..a5dee6c068490ca8250be94e7a472d5f058f2ee6 100644 --- a/test/language/statements/class/privatename-not-valid-eval-earlyerr-7.js +++ b/test/language/statements/class/privatename-not-valid-eval-earlyerr-7.js @@ -5,9 +5,10 @@ esid: sec-scripts-static-semantics-early-errors description: Early error when referencing privatename on object, outside of class. info: | Static Semantics: Early Errors - 1. Let names be an empty List. - ... - 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. + ScriptBody : StatementList + + It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval. + features: [class-fields-private] ---*/ diff --git a/test/language/statements/class/privatename-not-valid-eval-earlyerr-8.js b/test/language/statements/class/privatename-not-valid-eval-earlyerr-8.js index b433d6a6d3a2abf94f60e09b17bfcf9b8b6f3581..fc1ca835e2ecb72c532f2fc2c30602eee4117669 100644 --- a/test/language/statements/class/privatename-not-valid-eval-earlyerr-8.js +++ b/test/language/statements/class/privatename-not-valid-eval-earlyerr-8.js @@ -5,9 +5,10 @@ esid: sec-scripts-static-semantics-early-errors description: Early error when referencing privatename on object, outside of class. info: | Static Semantics: Early Errors - 1. Let names be an empty List. - ... - 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. + ScriptBody : StatementList + + It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List as an argument is false unless the source code is eval code that is being processed by a direct eval. + features: [class-fields-private] ---*/ diff --git a/test/language/statements/class/privatename-valid-no-earlyerr.js b/test/language/statements/class/privatename-valid-no-earlyerr.js index 85efc04213264aa843e20cd2363f8a62c4f57375..7d3f1f52b7bf54bfe898f3433c818f2382cb4cbe 100644 --- a/test/language/statements/class/privatename-valid-no-earlyerr.js +++ b/test/language/statements/class/privatename-valid-no-earlyerr.js @@ -1,16 +1,11 @@ // Copyright (C) 2017 Valerie Young. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -esid: sec-scripts-static-semantics-early-errors +esid: sec-all-private-names-valid description: Referencing privatename in class within class does not error. info: | - Static Semantics: Early Errors - Script : ScriptBody - 1. Let names be an empty List. - ... - 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. - Static Semantics: AllPrivateNamesValid + AllPrivateNamesValid is an abstract operation which takes names as an argument. MemberExpression : MemberExpression . PrivateName @@ -21,9 +16,9 @@ info: | 1. If StringValue of PrivateName is in names, return true. 2. Return false. - ClassBody:ClassElementList + ClassBody : ClassElementList 1. Let newNames be the concatenation of names with PrivateBoundNames of ClassBody. - 2.Return AllPrivateNamesValid of ClassElementList with the argument newNames. + 2. Return AllPrivateNamesValid of ClassElementList with the argument newNames. For all other grammatical productions, recurse on subexpressions/substatements, passing in the names of the caller. If all pieces return true, then return true. If any returns false, return false. diff --git a/test/language/statements/class/static-classelementname-abrupt-completion.js b/test/language/statements/class/static-classelementname-abrupt-completion.js index d86d1f30d815962ef7e078ce079e49a603a21c76..e173f443302f93c31b617b8c3f2faf2982d51d64 100644 --- a/test/language/statements/class/static-classelementname-abrupt-completion.js +++ b/test/language/statements/class/static-classelementname-abrupt-completion.js @@ -9,26 +9,17 @@ info: | ... 27. For each ClassElement e in order from elements a. If IsStatic of e is false, then - i. Let fields be the result of performing ClassElementEvaluation for e with arguments proto and false. + i. Let fields be the result of performing ClassElementEvaluation + for e with arguments proto and false. b. Else, - i. Let fields be the result of performing ClassElementEvaluation for e with arguments F and false. + i. Let fields be the result of performing ClassElementEvaluation + for e with arguments F and false. c. If fields is an abrupt completion, then - i. Set the running execution context's LexicalEnvironment to lex. - ii. Set the running execution context's PrivateNameEnvironment to outerPrivateEnvironment. - iii. Return Completion(status). + i. Set the running execution context's LexicalEnvironment to lex. + ii. Set the running execution context's PrivateNameEnvironment to outerPrivateEnvironment. + iii. Return Completion(status). - Runtime Semantics: ClassElementEvaluation - ... - ClassElement : static FieldDefinition ; - 1. Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter true and object. - - Runtime Semantics: ClassFieldDefinitionEvaluation - With parameters isStatic and homeObject. - FieldDefinition : ClassElementNameInitializer - 1. Let fieldName be the result of evaluating ClassElementName. - 2. ReturnIfAbrupt(fieldName). - -features: [class-fields] +features: [class-static-fields-public] ---*/ function f() { diff --git a/test/language/statements/class/static-fielddefinition-initializer-abrupt-completion.js b/test/language/statements/class/static-fielddefinition-initializer-abrupt-completion.js index 226586d8b744d9ce27b341afc79d5e5c7a6d8817..616acd38c2222ab0b2068dd851f36976c943e861 100644 --- a/test/language/statements/class/static-fielddefinition-initializer-abrupt-completion.js +++ b/test/language/statements/class/static-fielddefinition-initializer-abrupt-completion.js @@ -7,28 +7,19 @@ esid: runtime-semantics-class-definition-evaluation info: | Runtime Semantics: ClassDefinitionEvaluation ... - 33. Let result be InitializeStaticFields(F). - 34. If result is an abrupt completion, then - a. Set the running execution context's LexicalEnvironment to lex. - b. Return Completion(result). + 27. For each ClassElement e in order from elements + a. If IsStatic of e is false, then + i. Let fields be the result of performing ClassElementEvaluation + for e with arguments proto and false. + b. Else, + i. Let fields be the result of performing ClassElementEvaluation + for e with arguments F and false. + c. If fields is an abrupt completion, then + i. Set the running execution context's LexicalEnvironment to lex. + ii. Set the running execution context's PrivateNameEnvironment to outerPrivateEnvironment. + iii. Return Completion(status). - InitializeStaticFields(F) - 1. Assert: Type(F) is Object. - 2. Assert: F is an ECMAScript function object. - 3. Let fieldRecords be the value of F's [[Fields]] internal slot. - 4. For each item fieldRecord in order from fieldRecords, - a. If fieldRecord.[[static]] is true, then - i. Perform ? DefineField(F, fieldRecord). - - DefineField(receiver, fieldRecord) - 1. Assert: Type(receiver) is Object. - 2. Assert: fieldRecord is a Record as created by ClassFieldDefinitionEvaluation. - 3. Let fieldName be fieldRecord.[[Name]]. - 4. Let initializer be fieldRecord.[[Initializer]]. - 5. If initializer is not empty, then - a. Let initValue be ? Call(initializer, receiver). - -features: [class-fields] +features: [class-static-fields-public] ---*/ function f() { @@ -39,4 +30,4 @@ assert.throws(Test262Error, function() { class C { static x = f(); } -}) +});