28 lines
513 B
JavaScript
28 lines
513 B
JavaScript
"use strict";
|
|
const Base = {
|
|
};
|
|
|
|
const obj = {
|
|
set() {
|
|
return super.test = 3;
|
|
},
|
|
};
|
|
Object.defineProperty(obj, 'test', {
|
|
value: 2,
|
|
writable: false,
|
|
configurable: true,
|
|
enumerable: true,
|
|
});
|
|
Object.setPrototypeOf(obj, Base);
|
|
|
|
expect(() => {
|
|
obj.set();
|
|
}).toThrow();
|
|
expect(Base.test).toBeUndefined();
|
|
expect(obj.test).toBe(2);
|
|
|
|
const desc = Object.getOwnPropertyDescriptor(obj, 'test');
|
|
expect(desc.configurable).toBe(true);
|
|
expect(desc.writable).toBe(false);
|
|
expect(desc.enumerable).toBe(true);
|