From ad9fd16bd1368524f24a1c8fb27e283393058efc Mon Sep 17 00:00:00 2001 From: Rick Waldron Date: Tue, 31 Jul 2018 14:09:08 -0400 Subject: [PATCH] Class Fields: convert .js file to .case --- ...name-toprimitive-returns-noncallable.case} | 0 ...d-name-toprimitive-returns-nonobject.case} | 0 .../class/fields-static-private-fields.js | 45 +++++++++++++++++++ .../class/fields-static-private-methods.js | 45 +++++++++++++++++++ 4 files changed, 90 insertions(+) rename src/class-fields/{computed-name-toprimitive-returns-noncallable.js => computed-name-toprimitive-returns-noncallable.case} (100%) rename src/class-fields/{computed-name-toprimitive-returns-nonobject.js => computed-name-toprimitive-returns-nonobject.case} (100%) create mode 100644 test/language/statements/class/fields-static-private-fields.js create mode 100644 test/language/statements/class/fields-static-private-methods.js diff --git a/src/class-fields/computed-name-toprimitive-returns-noncallable.js b/src/class-fields/computed-name-toprimitive-returns-noncallable.case similarity index 100% rename from src/class-fields/computed-name-toprimitive-returns-noncallable.js rename to src/class-fields/computed-name-toprimitive-returns-noncallable.case diff --git a/src/class-fields/computed-name-toprimitive-returns-nonobject.js b/src/class-fields/computed-name-toprimitive-returns-nonobject.case similarity index 100% rename from src/class-fields/computed-name-toprimitive-returns-nonobject.js rename to src/class-fields/computed-name-toprimitive-returns-nonobject.case diff --git a/test/language/statements/class/fields-static-private-fields.js b/test/language/statements/class/fields-static-private-fields.js new file mode 100644 index 0000000000..a9b0611ee4 --- /dev/null +++ b/test/language/statements/class/fields-static-private-fields.js @@ -0,0 +1,45 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/static-private-fields.case +// - src/class-fields/default/cls-decl.template +/*--- +description: literal private names (field definitions in a class declaration) +esid: prod-FieldDefinition +features: [class, class-fields-public] +flags: [generated] +info: | + ClassElement: + ... + static FieldDefinition ; + + FieldDefinition: + ClassElementName Initializer_opt + + ClassElementName: + PrivateName + + PrivateName: + # IdentifierName + +---*/ + + +class C { + static #x; static #y +} + +// 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/test/language/statements/class/fields-static-private-methods.js b/test/language/statements/class/fields-static-private-methods.js new file mode 100644 index 0000000000..3bf11c26da --- /dev/null +++ b/test/language/statements/class/fields-static-private-methods.js @@ -0,0 +1,45 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/static-private-methods.case +// - src/class-fields/default/cls-decl.template +/*--- +description: literal private names (field definitions in a class declaration) +esid: prod-FieldDefinition +features: [class-static-methods-private, class, class-fields-public] +flags: [generated] +info: | + ClassElement: + ... + static FieldDefinition ; + + FieldDefinition: + ClassElementName Initializer_opt + + ClassElementName: + PrivateName + + PrivateName: + # IdentifierName + +---*/ + + +class C { + static #xVal; static #yVal +} + +// 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");