'use strict';
require('../common');
const assert = require('assert');
const x = {};
Object.defineProperty(x, 'prop', {
get() {
return 'foo';
}
});
const y = {};
Object.defineProperty(y, 'prop', {
get() {
return 'foo';
}
});
const descriptorx = Object.getOwnPropertyDescriptor(x, 'prop');
const descriptory = Object.getOwnPropertyDescriptor(y, 'prop');
assert.deepStrictEqual(x, y); // ok
assert.deepStrictEqual(descriptorx, descriptory); // throws an error
The following assertion fails when objects are property descriptors:
What seems to happen is that (in both cases)
Object.getPrototypeOf(descriptor)results in
{}, which leads to the conditionhttps://github.com/nodejs/node/blob/master/lib/assert.js#L200
returning false. Same is true for
assert.strictEqual()