Source code

Revision control

Copy as Markdown

Other Tools

// 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 getters can call super methods
---*/
function ID(x) {
return x;
}
var proto = {
m() {
return ' proto m';
}
};
var object = {
get ['a']() { return 'a' + super.m(); },
get [ID('b')]() { return 'b' + super.m(); },
get [0]() { return '0' + super.m(); },
get [ID(1)]() { return '1' + super.m(); },
};
Object.setPrototypeOf(object, proto);
assert.sameValue(
object.a,
'a proto m',
"The value of `object.a` is `'a proto m'`. Defined as `get ['a']() { return 'a' + super.m(); }`"
);
assert.sameValue(
object.b,
'b proto m',
"The value of `object.b` is `'b proto m'`. Defined as `get [ID('b')]() { return 'b' + super.m(); }`"
);
assert.sameValue(
object[0],
'0 proto m',
"The value of `object[0]` is `'0 proto m'`. Defined as `get [0]() { return '0' + super.m(); }`"
);
assert.sameValue(
object[1],
'1 proto m',
"The value of `object[1]` is `'1 proto m'`. Defined as `get [ID(1)]() { return '1' + super.m(); }`"
);
reportCompare(0, 0);