1'use strict'; 2 3require('../common'); 4const assert = require('assert'); 5const URLSearchParams = require('url').URLSearchParams; 6 7// Tests below are not from WPT. 8const params = new URLSearchParams('a=b&c=d'); 9const entries = params.entries(); 10assert.strictEqual(typeof entries[Symbol.iterator], 'function'); 11assert.strictEqual(entries[Symbol.iterator](), entries); 12assert.deepStrictEqual(entries.next(), { 13 value: ['a', 'b'], 14 done: false 15}); 16assert.deepStrictEqual(entries.next(), { 17 value: ['c', 'd'], 18 done: false 19}); 20assert.deepStrictEqual(entries.next(), { 21 value: undefined, 22 done: true 23}); 24assert.deepStrictEqual(entries.next(), { 25 value: undefined, 26 done: true 27}); 28 29assert.throws(() => { 30 entries.next.call(undefined); 31}, { 32 code: 'ERR_INVALID_THIS', 33 name: 'TypeError', 34 message: 'Value of "this" must be of type URLSearchParamsIterator' 35}); 36assert.throws(() => { 37 params.entries.call(undefined); 38}, { 39 code: 'ERR_INVALID_THIS', 40 name: 'TypeError', 41 message: 'Value of "this" must be of type URLSearchParams' 42}); 43