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