// Copyright (C) 2014 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- es6id: 12.2.5 description: > In an object, duplicate computed property getter names produce only a single property of that name, whose value is the value of the last property of that name. ---*/ var calls = 0; var A = { set ['a'](_) { calls++; } }; A.a = 'A'; assert.sameValue(calls, 1, "The value of `calls` is `1`"); calls = 0; var B = { set b(_) { $ERROR("The `b` setter definition in `B` is unreachable"); }, set ['b'](_) { calls++; } }; B.b = 'B'; assert.sameValue(calls, 1, "The value of `calls` is `1`"); calls = 0; var C = { set c(_) { $ERROR("The `c` setter definition in `C` is unreachable"); }, set ['c'](_) { $ERROR("The first `['c']` setter definition in `C` is unreachable"); }, set ['c'](_) { calls++ } }; C.c = 'C'; assert.sameValue(calls, 1, "The value of `calls` is `1`"); calls = 0; var D = { set ['d'](_) { $ERROR("The `['d']` setter definition in `D` is unreachable"); }, set d(_) { calls++ } }; D.d = 'D'; assert.sameValue(calls, 1, "The value of `calls` is `1`");