'use strict'; 
 | 
var fails = require('../internals/fails'); 
 | 
var wellKnownSymbol = require('../internals/well-known-symbol'); 
 | 
var DESCRIPTORS = require('../internals/descriptors'); 
 | 
var IS_PURE = require('../internals/is-pure'); 
 | 
  
 | 
var ITERATOR = wellKnownSymbol('iterator'); 
 | 
  
 | 
module.exports = !fails(function () { 
 | 
  // eslint-disable-next-line unicorn/relative-url-style -- required for testing 
 | 
  var url = new URL('b?a=1&b=2&c=3', 'https://a'); 
 | 
  var params = url.searchParams; 
 | 
  var params2 = new URLSearchParams('a=1&a=2&b=3'); 
 | 
  var result = ''; 
 | 
  url.pathname = 'c%20d'; 
 | 
  params.forEach(function (value, key) { 
 | 
    params['delete']('b'); 
 | 
    result += key + value; 
 | 
  }); 
 | 
  params2['delete']('a', 2); 
 | 
  // `undefined` case is a Chromium 117 bug 
 | 
  // https://bugs.chromium.org/p/v8/issues/detail?id=14222 
 | 
  params2['delete']('b', undefined); 
 | 
  return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b'))) 
 | 
    || (!params.size && (IS_PURE || !DESCRIPTORS)) 
 | 
    || !params.sort 
 | 
    || url.href !== 'https://a/c%20d?a=1&c=3' 
 | 
    || params.get('c') !== '3' 
 | 
    || String(new URLSearchParams('?a=1')) !== 'a=1' 
 | 
    || !params[ITERATOR] 
 | 
    // throws in Edge 
 | 
    || new URL('https://a@b').username !== 'a' 
 | 
    || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b' 
 | 
    // not punycoded in Edge 
 | 
    || new URL('https://тест').host !== 'xn--e1aybc' 
 | 
    // not escaped in Chrome 62- 
 | 
    || new URL('https://a#б').hash !== '#%D0%B1' 
 | 
    // fails in Chrome 66- 
 | 
    || result !== 'a1c3' 
 | 
    // throws in Safari 
 | 
    || new URL('https://x', undefined).host !== 'x'; 
 | 
}); 
 |