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