// Copyright (C) 2017 the V8 project authors, 2017 Igalia S.L. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- desc: Computed property symbol names info: | ClassElement: ... FieldDefinition ; FieldDefinition: ClassElementName Initializer_opt ClassElementName: PropertyName template: productions includes: [propertyHelper.js] features: [Symbol, computed-property-names] ---*/ //- setup var x = Symbol(); var y = Symbol(); //- fields [x]; [y] = 42 //- assertions assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); assert.sameValue(Object.hasOwnProperty.call(C, x), false); verifyProperty(c, x, { value: undefined, enumerable: true, writable: true, configurable: true }); assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); assert.sameValue(Object.hasOwnProperty.call(C, y), false); verifyProperty(c, y, { value: 42, enumerable: true, writable: true, configurable: true }); assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); assert.sameValue(Object.hasOwnProperty.call(c, "y"), false);