// Impliclitly converting regular numeric properties to computed numeric
// properties in the parser means checking there's no semantic changes.
let a = {
0: 0,
1n: 1n,
get 2() {
return 2;
},
set 2(o) {},
get 3n() {
return 3n;
},
set 3n(o) {}
};
assertEq(a[0], 0);
assertEq(a[1n], 1n);
assertEq(a[2], 2);
assertEq(a[3n], 3n);
function getterName(x) {
return Object.getOwnPropertyDescriptor(a, x).get.name
}
function setterName(x) {
return Object.getOwnPropertyDescriptor(a, x).set.name
}
assertEq(/get 2/.test(getterName(2)), true )
assertEq(/get 3/.test(getterName(3n)), true )
assertEq(/set 2/.test(setterName(2)), true )
assertEq(/set 3/.test(setterName(3n)), true )
let b = {
0: 0,
[0]: 'dupe' ,
1n: 1,
[1n]: 'dupe' ,
[2]: 2,
2: 'dupe' ,
[3n]: 3,
3n: 'dupe'
};
assertEq(b[0], 'dupe' );
assertEq(b[1n], 'dupe' );
assertEq(b[2], 'dupe' );
assertEq(b[3n], 'dupe' );
let c = {
0: 0,
0.0: 'dupe' ,
};
assertEq(c[0], 'dupe' );
let d = {
0: 0,
'0' : 'dupe' ,
};
assertEq(d[0], 'dupe' );
// Test numeric property destructuring.
let {1: x} = {1: 1};
let {1n: y} = {1n: 1n};
assertEq(x, 1);
assertEq(y, 1n);
Messung V0.5 C=96 H=98 G=96
¤ Dauer der Verarbeitung: 0.3 Sekunden
¤
*© Formatika GbR, Deutschland