11cb0ef41Sopenharmony_ci'use strict';
21cb0ef41Sopenharmony_ci
31cb0ef41Sopenharmony_cirequire('../common');
41cb0ef41Sopenharmony_ciconst assert = require('assert');
51cb0ef41Sopenharmony_ci
61cb0ef41Sopenharmony_ci// Tests below are not from WPT.
71cb0ef41Sopenharmony_ciconst params = new URLSearchParams('a=b&c=d');
81cb0ef41Sopenharmony_ciconst entries = params.entries();
91cb0ef41Sopenharmony_ciassert.strictEqual(typeof entries[Symbol.iterator], 'function');
101cb0ef41Sopenharmony_ciassert.strictEqual(entries[Symbol.iterator](), entries);
111cb0ef41Sopenharmony_ciassert.deepStrictEqual(entries.next(), {
121cb0ef41Sopenharmony_ci  value: ['a', 'b'],
131cb0ef41Sopenharmony_ci  done: false
141cb0ef41Sopenharmony_ci});
151cb0ef41Sopenharmony_ciassert.deepStrictEqual(entries.next(), {
161cb0ef41Sopenharmony_ci  value: ['c', 'd'],
171cb0ef41Sopenharmony_ci  done: false
181cb0ef41Sopenharmony_ci});
191cb0ef41Sopenharmony_ciassert.deepStrictEqual(entries.next(), {
201cb0ef41Sopenharmony_ci  value: undefined,
211cb0ef41Sopenharmony_ci  done: true
221cb0ef41Sopenharmony_ci});
231cb0ef41Sopenharmony_ciassert.deepStrictEqual(entries.next(), {
241cb0ef41Sopenharmony_ci  value: undefined,
251cb0ef41Sopenharmony_ci  done: true
261cb0ef41Sopenharmony_ci});
271cb0ef41Sopenharmony_ci
281cb0ef41Sopenharmony_ciassert.throws(() => {
291cb0ef41Sopenharmony_ci  entries.next.call(undefined);
301cb0ef41Sopenharmony_ci}, {
311cb0ef41Sopenharmony_ci  code: 'ERR_INVALID_THIS',
321cb0ef41Sopenharmony_ci  name: 'TypeError',
331cb0ef41Sopenharmony_ci  message: 'Value of "this" must be of type URLSearchParamsIterator'
341cb0ef41Sopenharmony_ci});
351cb0ef41Sopenharmony_ciassert.throws(() => {
361cb0ef41Sopenharmony_ci  params.entries.call(undefined);
371cb0ef41Sopenharmony_ci}, {
381cb0ef41Sopenharmony_ci  code: 'ERR_INVALID_THIS',
391cb0ef41Sopenharmony_ci  name: 'TypeError',
401cb0ef41Sopenharmony_ci  message: 'Value of "this" must be of type URLSearchParams'
411cb0ef41Sopenharmony_ci});
42