blob: 7b37c2af41094d365fe5404cb0dc64f911458f47 [file] [edit]
'use strict';
require('../common');
const vm = require('vm');
const assert = require('assert');
// Regression of https://github.com/nodejs/node/issues/53346
const cases = [
{
get key() {
return 'value';
},
},
{
// Intentionally single setter.
// eslint-disable-next-line accessor-pairs
set key(value) {},
},
{},
{
key: 'value',
},
(new class GetterObject {
get key() {
return 'value';
}
}()),
(new class SetterObject {
// Intentionally single setter.
// eslint-disable-next-line accessor-pairs
set key(value) {
// noop
}
}()),
[],
[['key', 'value']],
{
__proto__: {
key: 'value',
},
},
];
for (const [idx, obj] of cases.entries()) {
const ctx = vm.createContext(obj);
const globalObj = vm.runInContext('this', ctx);
const keys = Object.keys(globalObj);
assert.deepStrictEqual(keys, Object.keys(obj), `Case ${idx} failed`);
}