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_ci{ 91cb0ef41Sopenharmony_ci const params = new URLSearchParams(); 101cb0ef41Sopenharmony_ci assert.throws(() => { 111cb0ef41Sopenharmony_ci params.toString.call(undefined); 121cb0ef41Sopenharmony_ci }, { 131cb0ef41Sopenharmony_ci code: 'ERR_INVALID_THIS', 141cb0ef41Sopenharmony_ci name: 'TypeError', 151cb0ef41Sopenharmony_ci message: 'Value of "this" must be of type URLSearchParams' 161cb0ef41Sopenharmony_ci }); 171cb0ef41Sopenharmony_ci} 181cb0ef41Sopenharmony_ci 191cb0ef41Sopenharmony_ci// The URLSearchParams stringifier mutates the base URL using 201cb0ef41Sopenharmony_ci// different percent-encoding rules than the URL itself. 211cb0ef41Sopenharmony_ci{ 221cb0ef41Sopenharmony_ci const myUrl = new URL('https://example.org?foo=~bar'); 231cb0ef41Sopenharmony_ci assert.strictEqual(myUrl.search, '?foo=~bar'); 241cb0ef41Sopenharmony_ci myUrl.searchParams.sort(); 251cb0ef41Sopenharmony_ci assert.strictEqual(myUrl.search, '?foo=%7Ebar'); 261cb0ef41Sopenharmony_ci} 27