At the moment we expose the context as a normal property on the prototype chain of URL or take them from the base URL which makes them enumerable and considered by assert libraries even though the context carries path-dependent information that do not affect the equivalence of these objects. This patch fixes it in a minimal manner by marking the context non-enumerable as making it full private would require more refactoring and can be done in a bigger patch later. PR-URL: https://github.com/nodejs/node/pull/24218 Refs: https://github.com/nodejs/node/issues/24211 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
14 lines
374 B
JavaScript
14 lines
374 B
JavaScript
'use strict';
|
|
// This tests that the context of URL objects are not
|
|
// enumerable and thus considered by assert libraries.
|
|
// See https://github.com/nodejs/node/issues/24211
|
|
|
|
// Tests below are not from WPT.
|
|
|
|
require('../common');
|
|
const assert = require('assert');
|
|
|
|
assert.deepStrictEqual(
|
|
new URL('./foo', 'https://example.com/'),
|
|
new URL('https://example.com/foo')
|
|
);
|