// Copyright (C) 2017 Leo Balter. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- desc: Redeclaration of public fields with the same name info: | 2.13.2 Runtime Semantics: ClassDefinitionEvaluation ... 30. Set the value of F's [[Fields]] internal slot to fieldRecords. ... 2.14 [[Construct]] ( argumentsList, newTarget) ... 8. If kind is "base", then ... b. Let result be InitializeInstanceFields(thisArgument, F). ... 2.9 InitializeInstanceFields ( O, constructor ) 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). template: default includes: [propertyHelper.js, compareArray.js] ---*/ //- setup var x = []; //- fields y = (x.push("a"), "old_value"); ["y"] = (x.push("b"), "another_value"); "y" = (x.push("c"), "same_value"); y = (x.push("d"), "same_value"); //- assertions var c = new C(); assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); verifyProperty(c, "y", { value: "same_value", enumerable: true, writable: true, configurable: true }); assert(compareArray(x, ["a", "b", "c", "d"]));