mirror of https://github.com/tc39/test262.git
36 lines
1010 B
JavaScript
36 lines
1010 B
JavaScript
// 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: >
|
|
computed property setters can call super methods
|
|
---*/
|
|
|
|
function ID(x) {
|
|
return x;
|
|
}
|
|
|
|
var value;
|
|
var proto = {
|
|
m(name, v) {
|
|
value = name + ' ' + v;
|
|
}
|
|
};
|
|
var object = {
|
|
set ['a'](v) { super.m('a', v); },
|
|
set [ID('b')](v) { super.m('b', v); },
|
|
set [0](v) { super.m('0', v); },
|
|
set [ID(1)](v) { super.m('1', v); },
|
|
};
|
|
|
|
Object.setPrototypeOf(object, proto);
|
|
|
|
object.a = 2;
|
|
assert.sameValue(value, 'a 2', "The value of `value` is `'a 2'`, after executing `object.a = 2;`");
|
|
object.b = 3;
|
|
assert.sameValue(value, 'b 3', "The value of `value` is `'b 3'`, after executing `object.b = 3;`");
|
|
object[0] = 4;
|
|
assert.sameValue(value, '0 4', "The value of `value` is `'0 4'`, after executing `object[0] = 4;`");
|
|
object[1] = 5;
|
|
assert.sameValue(value, '1 5', "The value of `value` is `'1 5'`, after executing `object[1] = 5;`");
|