diff --git a/src/class-fields/default/cls-decl-after-same-line-async-gen.template b/src/class-fields/default/cls-decl-after-same-line-async-gen.template index 0e8b27edce05ed95d4b4788664dc7c7c8387adb6..2b7019564c5b82f0cab909fccb2a5ce3407c9c02 100644 --- a/src/class-fields/default/cls-decl-after-same-line-async-gen.template +++ b/src/class-fields/default/cls-decl-after-same-line-async-gen.template @@ -11,6 +11,7 @@ esid: prod-FieldDefinition class C { async *m() { return 42; } /*{ fields }*/; +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-decl-after-same-line-async-method.template b/src/class-fields/default/cls-decl-after-same-line-async-method.template index 531c7f835b0e97ea861ebe56539390763a9402c9..4834b53fc5b025e93067d82bc2d9685582dd5c3c 100644 --- a/src/class-fields/default/cls-decl-after-same-line-async-method.template +++ b/src/class-fields/default/cls-decl-after-same-line-async-method.template @@ -11,6 +11,7 @@ esid: prod-FieldDefinition class C { async m() { return 42; } /*{ fields }*/; +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-decl-after-same-line-gen.template b/src/class-fields/default/cls-decl-after-same-line-gen.template index 876e0d8c5ac73990f24eea0408b0bbfac6d083fc..635294c5dfa550c50ae90f75b828b723900fce43 100644 --- a/src/class-fields/default/cls-decl-after-same-line-gen.template +++ b/src/class-fields/default/cls-decl-after-same-line-gen.template @@ -10,6 +10,7 @@ esid: prod-FieldDefinition class C { *m() { return 42; } /*{ fields }*/; +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-decl-after-same-line-method.template b/src/class-fields/default/cls-decl-after-same-line-method.template index 5e8dffcbd2d1b9596be372375bd6ab5ac5d67132..3ad70efd6f37032def876bdb9b7cd862a5d20f03 100644 --- a/src/class-fields/default/cls-decl-after-same-line-method.template +++ b/src/class-fields/default/cls-decl-after-same-line-method.template @@ -10,6 +10,7 @@ esid: prod-FieldDefinition class C { m() { return 42; } /*{ fields }*/; +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-decl-after-same-line-static-async-gen.template b/src/class-fields/default/cls-decl-after-same-line-static-async-gen.template index 223bfd345581bb608e46c4e6065f7a1ccac83556..60176379aeccaefbb19de816ad1024254daeb845 100644 --- a/src/class-fields/default/cls-decl-after-same-line-static-async-gen.template +++ b/src/class-fields/default/cls-decl-after-same-line-static-async-gen.template @@ -11,6 +11,7 @@ esid: prod-FieldDefinition class C { static async *m() { return 42; } /*{ fields }*/; +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-decl-after-same-line-static-async-method.template b/src/class-fields/default/cls-decl-after-same-line-static-async-method.template index 70e6085c1d97999a0f99aced7d86d3d0aba0a32c..360df4a7f9538b89552547f940317169550bf74a 100644 --- a/src/class-fields/default/cls-decl-after-same-line-static-async-method.template +++ b/src/class-fields/default/cls-decl-after-same-line-static-async-method.template @@ -11,6 +11,7 @@ esid: prod-FieldDefinition class C { static async m() { return 42; } /*{ fields }*/; +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-decl-after-same-line-static-gen.template b/src/class-fields/default/cls-decl-after-same-line-static-gen.template index d89d9975a28e5ccadef02803df51fd82c558cd49..2a9fdff3a0f80e56220a630777ef4ff5b68adc1d 100644 --- a/src/class-fields/default/cls-decl-after-same-line-static-gen.template +++ b/src/class-fields/default/cls-decl-after-same-line-static-gen.template @@ -10,6 +10,7 @@ esid: prod-FieldDefinition class C { static *m() { return 42; } /*{ fields }*/; +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-decl-after-same-line-static-method.template b/src/class-fields/default/cls-decl-after-same-line-static-method.template index 0f412da85b80165d094270c8b55b44d560d99769..568b3c564778e8a8497b339f2abcd76c2d8f7899 100644 --- a/src/class-fields/default/cls-decl-after-same-line-static-method.template +++ b/src/class-fields/default/cls-decl-after-same-line-static-method.template @@ -10,6 +10,7 @@ esid: prod-FieldDefinition class C { static m() { return 42; } /*{ fields }*/; +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-decl-multiple-definitions.template b/src/class-fields/default/cls-decl-multiple-definitions.template index e481f94dda8401de6296efef9ba0fc8c57461abb..5671a0b6c49cd1a1a4b8ea105bbf135be812425b 100644 --- a/src/class-fields/default/cls-decl-multiple-definitions.template +++ b/src/class-fields/default/cls-decl-multiple-definitions.template @@ -14,6 +14,7 @@ class C { /*{ fields }*/ m2() { return 39 } bar = "barbaz"; +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-decl-multiple-stacked-definitions.template b/src/class-fields/default/cls-decl-multiple-stacked-definitions.template index 6a16f68f9627bc54fd10b58e4343197573aee6fa..36515109eaa2ab1cb04a2b297afbc4ca3228f7ac 100644 --- a/src/class-fields/default/cls-decl-multiple-stacked-definitions.template +++ b/src/class-fields/default/cls-decl-multiple-stacked-definitions.template @@ -12,6 +12,7 @@ class C { /*{ fields }*/ foo = "foobar" bar = "barbaz"; +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-decl-new-no-sc-line-method.template b/src/class-fields/default/cls-decl-new-no-sc-line-method.template index d87e9152e914e76f0aefe41409285d3a0a09b2fe..56037a513ab990953bb5eabe19c6a3827a1e5c09 100644 --- a/src/class-fields/default/cls-decl-new-no-sc-line-method.template +++ b/src/class-fields/default/cls-decl-new-no-sc-line-method.template @@ -11,6 +11,7 @@ esid: prod-FieldDefinition class C { /*{ fields }*/ m() { return 42; } +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-decl-new-sc-line-generator.template b/src/class-fields/default/cls-decl-new-sc-line-generator.template index 3be29af985884961a4cdd868600163e4b02a5233..40098a78101235d485a5c2c2ee73b790a8c8dad8 100644 --- a/src/class-fields/default/cls-decl-new-sc-line-generator.template +++ b/src/class-fields/default/cls-decl-new-sc-line-generator.template @@ -11,6 +11,7 @@ esid: prod-FieldDefinition class C { /*{ fields }*/; *m() { return 42; } +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-decl-new-sc-line-method.template b/src/class-fields/default/cls-decl-new-sc-line-method.template index 640244370ab99fdd3a68df70a10e1736d0989d60..6f5635646679fb95d969f9d4ae4cdfa5c97c30ff 100644 --- a/src/class-fields/default/cls-decl-new-sc-line-method.template +++ b/src/class-fields/default/cls-decl-new-sc-line-method.template @@ -11,6 +11,7 @@ esid: prod-FieldDefinition class C { /*{ fields }*/; m() { return 42; } +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-decl-regular-definitions.template b/src/class-fields/default/cls-decl-regular-definitions.template index 9d1ee0c2831de8e376d7219a91fb745ee5b0ee62..4ccdd76f7fc18b481be5fa5d102f5c40ec4b5695 100644 --- a/src/class-fields/default/cls-decl-regular-definitions.template +++ b/src/class-fields/default/cls-decl-regular-definitions.template @@ -10,6 +10,7 @@ esid: prod-FieldDefinition class C { /*{ fields }*/ +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-decl-same-line-generator.template b/src/class-fields/default/cls-decl-same-line-generator.template index 1c4fa07d716b890ae7b30c570296e3bed9c0220f..182d9df50d626406bdcabcbf6fbfad58a8ca5acd 100644 --- a/src/class-fields/default/cls-decl-same-line-generator.template +++ b/src/class-fields/default/cls-decl-same-line-generator.template @@ -10,6 +10,7 @@ esid: prod-FieldDefinition class C { /*{ fields }*/; *m() { return 42; } +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-decl-same-line-method.template b/src/class-fields/default/cls-decl-same-line-method.template index 2a825bee8b2d830e2758fd1b2e5ecbed9e768d66..c94c864bdd2efbfbd83c73ac8ea3491ec51a6826 100644 --- a/src/class-fields/default/cls-decl-same-line-method.template +++ b/src/class-fields/default/cls-decl-same-line-method.template @@ -10,6 +10,7 @@ esid: prod-FieldDefinition class C { /*{ fields }*/; m() { return 42; } +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-decl-wrapped-in-sc.template b/src/class-fields/default/cls-decl-wrapped-in-sc.template index 5d04a5622e4c12d326187731e65ffdbe668e7833..b76403262a17b4c30197ca73cc578c5587bfc9ac 100644 --- a/src/class-fields/default/cls-decl-wrapped-in-sc.template +++ b/src/class-fields/default/cls-decl-wrapped-in-sc.template @@ -12,6 +12,7 @@ class C { ;;;; ;;;;;;/*{ fields }*/;;;;;;; ;;;; +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-expr-after-same-line-async-gen.template b/src/class-fields/default/cls-expr-after-same-line-async-gen.template index cb27c785c8a94aa666a13ed83918934aeacefae0..3a1a6f4630432f7d56052f49c68793972362801c 100644 --- a/src/class-fields/default/cls-expr-after-same-line-async-gen.template +++ b/src/class-fields/default/cls-expr-after-same-line-async-gen.template @@ -11,6 +11,7 @@ esid: prod-FieldDefinition var C = class { async *m() { return 42; } /*{ fields }*/; +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-expr-after-same-line-async-method.template b/src/class-fields/default/cls-expr-after-same-line-async-method.template index eafc614d7b5c419d60a5ac059c7c5cc180bdfe39..87c137ce2d20eb675e046672e46f07dd53ede63f 100644 --- a/src/class-fields/default/cls-expr-after-same-line-async-method.template +++ b/src/class-fields/default/cls-expr-after-same-line-async-method.template @@ -11,6 +11,7 @@ esid: prod-FieldDefinition var C = class { async m() { return 42; } /*{ fields }*/; +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-expr-after-same-line-gen.template b/src/class-fields/default/cls-expr-after-same-line-gen.template index 07e7a485d63892684a36e14b7bf5a38e23eb9fda..58aa427d3a7ad0b189da05bfdcc3a58e42101c80 100644 --- a/src/class-fields/default/cls-expr-after-same-line-gen.template +++ b/src/class-fields/default/cls-expr-after-same-line-gen.template @@ -10,6 +10,7 @@ esid: prod-FieldDefinition var C = class { *m() { return 42; } /*{ fields }*/; +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-expr-after-same-line-method.template b/src/class-fields/default/cls-expr-after-same-line-method.template index 70fca8fe2204787b9e722478bd5ee063a795298d..d9e6703d6a3e561611f8e741e9ed521f4aa03004 100644 --- a/src/class-fields/default/cls-expr-after-same-line-method.template +++ b/src/class-fields/default/cls-expr-after-same-line-method.template @@ -10,6 +10,7 @@ esid: prod-FieldDefinition var C = class { m() { return 42; } /*{ fields }*/; +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-expr-after-same-line-static-async-gen.template b/src/class-fields/default/cls-expr-after-same-line-static-async-gen.template index 1f34b5cf87e4e3ff68d0213b75ee114f03263f13..f19896d7afde227644f5d909608753b017143fbb 100644 --- a/src/class-fields/default/cls-expr-after-same-line-static-async-gen.template +++ b/src/class-fields/default/cls-expr-after-same-line-static-async-gen.template @@ -11,6 +11,7 @@ esid: prod-FieldDefinition var C = class { static async *m() { return 42; } /*{ fields }*/; +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-expr-after-same-line-static-async-method.template b/src/class-fields/default/cls-expr-after-same-line-static-async-method.template index e4a9657d772439a5ca577d776707146b2397dcae..0b0ae19ec4b6ad4766f05b9a05daecb0169a57f2 100644 --- a/src/class-fields/default/cls-expr-after-same-line-static-async-method.template +++ b/src/class-fields/default/cls-expr-after-same-line-static-async-method.template @@ -11,6 +11,7 @@ esid: prod-FieldDefinition var C = class { static async m() { return 42; } /*{ fields }*/; +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-expr-after-same-line-static-gen.template b/src/class-fields/default/cls-expr-after-same-line-static-gen.template index c64467527dc9946c26e50afc59101adb40ac5da5..1eff6019a1795b0edc52fe62b600523f5d25b062 100644 --- a/src/class-fields/default/cls-expr-after-same-line-static-gen.template +++ b/src/class-fields/default/cls-expr-after-same-line-static-gen.template @@ -10,6 +10,7 @@ esid: prod-FieldDefinition var C = class { static *m() { return 42; } /*{ fields }*/; +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-expr-after-same-line-static-method.template b/src/class-fields/default/cls-expr-after-same-line-static-method.template index 56f677a9bf83018b34b72e5e6b64377e7757c606..162137947345a3a26a6415334ceacf76b1d68f89 100644 --- a/src/class-fields/default/cls-expr-after-same-line-static-method.template +++ b/src/class-fields/default/cls-expr-after-same-line-static-method.template @@ -10,6 +10,7 @@ esid: prod-FieldDefinition var C = class { static m() { return 42; } /*{ fields }*/; +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-expr-multiple-definitions.template b/src/class-fields/default/cls-expr-multiple-definitions.template index 543b9f2b0f45c08986904490f00a2fca3ccfbcfb..8a786bf9e58ea8c989279c8f1c5a54caef6502a0 100644 --- a/src/class-fields/default/cls-expr-multiple-definitions.template +++ b/src/class-fields/default/cls-expr-multiple-definitions.template @@ -14,6 +14,7 @@ var C = class { /*{ fields }*/ m2() { return 39 } bar = "barbaz"; +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-expr-multiple-stacked-definitions.template b/src/class-fields/default/cls-expr-multiple-stacked-definitions.template index 6bf9a746f51e7bce3a982f5f2409b0b31a62842d..a1c53aee195f73588aca550ee4b5a5f4ca9da3b9 100644 --- a/src/class-fields/default/cls-expr-multiple-stacked-definitions.template +++ b/src/class-fields/default/cls-expr-multiple-stacked-definitions.template @@ -12,6 +12,7 @@ var C = class { /*{ fields }*/ foo = "foobar" bar = "barbaz"; +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-expr-new-no-sc-line-method.template b/src/class-fields/default/cls-expr-new-no-sc-line-method.template index 88045824da7744ac97ccf2477a8183fc6cf15c8a..50e6762adab84aa00678d6e448242bbfe3694dfb 100644 --- a/src/class-fields/default/cls-expr-new-no-sc-line-method.template +++ b/src/class-fields/default/cls-expr-new-no-sc-line-method.template @@ -11,6 +11,7 @@ esid: prod-FieldDefinition var C = class { /*{ fields }*/ m() { return 42; } +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-expr-new-sc-line-generator.template b/src/class-fields/default/cls-expr-new-sc-line-generator.template index 022c5b8ffaf9940ec648cc052492289d8188a776..143317368533afa04e74795c5ad428dbb500efcf 100644 --- a/src/class-fields/default/cls-expr-new-sc-line-generator.template +++ b/src/class-fields/default/cls-expr-new-sc-line-generator.template @@ -11,6 +11,7 @@ esid: prod-FieldDefinition var C = class { /*{ fields }*/; *m() { return 42; } +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-expr-new-sc-line-method.template b/src/class-fields/default/cls-expr-new-sc-line-method.template index 04cc5d7f1b7beec0a0d39861ded67fa8a56ece79..3e7291ad66da34738fe7a961fbf32a9b8bc01820 100644 --- a/src/class-fields/default/cls-expr-new-sc-line-method.template +++ b/src/class-fields/default/cls-expr-new-sc-line-method.template @@ -11,6 +11,7 @@ esid: prod-FieldDefinition var C = class { /*{ fields }*/; m() { return 42; } +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-expr-regular-definitions.template b/src/class-fields/default/cls-expr-regular-definitions.template index 65cea698c72595687702593a7a2346085fe750ea..630c04f41cef9d8a404f1c07f6db161c168fdd40 100644 --- a/src/class-fields/default/cls-expr-regular-definitions.template +++ b/src/class-fields/default/cls-expr-regular-definitions.template @@ -10,6 +10,7 @@ esid: prod-FieldDefinition var C = class { /*{ fields }*/ +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-expr-same-line-generator.template b/src/class-fields/default/cls-expr-same-line-generator.template index b85431604a95e0f1f96d4b6368d39b26a1123f91..c6ee64851fc6289fbe60f4d6d951a1666c408610 100644 --- a/src/class-fields/default/cls-expr-same-line-generator.template +++ b/src/class-fields/default/cls-expr-same-line-generator.template @@ -10,6 +10,7 @@ esid: prod-FieldDefinition var C = class { /*{ fields }*/; *m() { return 42; } +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-expr-same-line-method.template b/src/class-fields/default/cls-expr-same-line-method.template index 2b06fe7329f4b10cd51f193a698a6450068e5892..4c9602cafc31092fdd8ed3ffc88641e6d639b977 100644 --- a/src/class-fields/default/cls-expr-same-line-method.template +++ b/src/class-fields/default/cls-expr-same-line-method.template @@ -10,6 +10,7 @@ esid: prod-FieldDefinition var C = class { /*{ fields }*/; m() { return 42; } +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/default/cls-expr-wrapped-in-sc.template b/src/class-fields/default/cls-expr-wrapped-in-sc.template index 6646d1b4c16c417d60fc6a2a9ee4c6935084a488..4f7397057fa79803d44d71beca4d5f7d60ca491f 100644 --- a/src/class-fields/default/cls-expr-wrapped-in-sc.template +++ b/src/class-fields/default/cls-expr-wrapped-in-sc.template @@ -12,6 +12,7 @@ var C = class { ;;;; ;;;;;;/*{ fields }*/;;;;;;; ;;;; +/*{ privateinspectionfunctions }*/ } var c = new C(); diff --git a/src/class-fields/private-names.case b/src/class-fields/private-names.case new file mode 100644 index 0000000000000000000000000000000000000000..6987bcd7b29adb595e188ed1230dfb4d42962820 --- /dev/null +++ b/src/class-fields/private-names.case @@ -0,0 +1,50 @@ +// Copyright (C) 2017 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +desc: static literal private names +info: | + ClassElement: + ... + FieldDefinition ; + + FieldDefinition: + ClassElementName Initializer_opt + + ClassElementName: + PrivateName + + PrivateName: + #IdentifierName +template: default +---*/ + +//- fields +#x; #y +//- privateinspectionfunctions + x() { + this.#x = 42; + return this.#x; + } + y() { + this.#y = 43; + return this.#y; + } +//- assertions + +// Test the private fields do not appear as properties before set to value +assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); +assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); +assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); + +assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); +assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); +assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); + +// Test if private fields can be sucessfully accessed and set to value +assert.sameValue(c.x(), 42, "test 7"); +assert.sameValue(c.y(), 43, "test 8"); + +// Test the private fields do not appear as properties before after set to value +assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 9"); +assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 10"); diff --git a/src/class-fields/static-private-names.case b/src/class-fields/static-private-names.case new file mode 100644 index 0000000000000000000000000000000000000000..464b53a9e99b976e9cf3b9985ded79ce189eb693 --- /dev/null +++ b/src/class-fields/static-private-names.case @@ -0,0 +1,50 @@ +// Copyright (C) 2017 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +desc: literal private names +info: | + ClassElement: + ... + static FieldDefinition ; + + FieldDefinition: + ClassElementName Initializer_opt + + ClassElementName: + PrivateName + + PrivateName: + #IdentifierName +template: default +---*/ + +//- fields +static #x; static #y +//- privateinspectionfunctions + static x() { + this.#x = 42; + return this.#x; + } + static y() { + this.#y = 43; + return this.#y; + } +//- assertions + +// Test the private fields do not appear as properties before set to value +assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); +assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); +assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); + +assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); +assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); +assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); + +// Test if private fields can be sucessfully accessed and set to value +assert.sameValue(C.x(), 42, "test 7"); +assert.sameValue(C.y(), 43, "test 8"); + +// Test the private fields do not appear as properties before after set to value +assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); +assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10");