web.url.can-parse.js 991 B

12345678910111213141516171819202122232425262728
  1. var $ = require('../internals/export');
  2. var getBuiltIn = require('../internals/get-built-in');
  3. var fails = require('../internals/fails');
  4. var validateArgumentsLength = require('../internals/validate-arguments-length');
  5. var toString = require('../internals/to-string');
  6. var USE_NATIVE_URL = require('../internals/url-constructor-detection');
  7. var URL = getBuiltIn('URL');
  8. // https://github.com/nodejs/node/issues/47505
  9. var THROWS_WITHOUT_ARGUMENTS = USE_NATIVE_URL && fails(function () {
  10. URL.canParse();
  11. });
  12. // `URL.canParse` method
  13. // https://url.spec.whatwg.org/#dom-url-canparse
  14. $({ target: 'URL', stat: true, forced: !THROWS_WITHOUT_ARGUMENTS }, {
  15. canParse: function canParse(url) {
  16. var length = validateArgumentsLength(arguments.length, 1);
  17. var urlString = toString(url);
  18. var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]);
  19. try {
  20. return !!new URL(urlString, base);
  21. } catch (error) {
  22. return false;
  23. }
  24. }
  25. });