1'use strict'; 2 3// Tests below are not from WPT. 4 5require('../common'); 6const assert = require('assert'); 7const URL = require('url').URL; 8 9const toString = Object.prototype.toString; 10 11const url = new URL('http://example.org'); 12const sp = url.searchParams; 13const spIterator = sp.entries(); 14 15const test = [ 16 [url, 'URL'], 17 [sp, 'URLSearchParams'], 18 [spIterator, 'URLSearchParams Iterator'], 19 // Web IDL spec says we have to return 'URLPrototype', but it is too 20 // expensive to implement; therefore, use Chrome's behavior for now, until 21 // spec is changed. 22 [Object.getPrototypeOf(url), 'URL'], 23 [Object.getPrototypeOf(sp), 'URLSearchParams'], 24 [Object.getPrototypeOf(spIterator), 'URLSearchParams Iterator'], 25]; 26 27test.forEach(([obj, expected]) => { 28 assert.strictEqual(obj[Symbol.toStringTag], expected, 29 `${obj[Symbol.toStringTag]} !== ${expected}`); 30 const str = toString.call(obj); 31 assert.strictEqual(str, `[object ${expected}]`, 32 `${str} !== [object ${expected}]`); 33}); 34