source: frontend/node_modules/core-js/modules/web.url-search-params.delete.js

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 13 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 1.7 KB
Line 
1'use strict';
2var defineBuiltIn = require('../internals/define-built-in');
3var uncurryThis = require('../internals/function-uncurry-this');
4var toString = require('../internals/to-string');
5var validateArgumentsLength = require('../internals/validate-arguments-length');
6
7var $URLSearchParams = URLSearchParams;
8var URLSearchParamsPrototype = $URLSearchParams.prototype;
9var append = uncurryThis(URLSearchParamsPrototype.append);
10var $delete = uncurryThis(URLSearchParamsPrototype['delete']);
11var forEach = uncurryThis(URLSearchParamsPrototype.forEach);
12var push = uncurryThis([].push);
13var params = new $URLSearchParams('a=1&a=2&b=3');
14
15params['delete']('a', 1);
16// `undefined` case is a Chromium 117 bug
17// https://bugs.chromium.org/p/v8/issues/detail?id=14222
18params['delete']('b', undefined);
19
20if (params + '' !== 'a=2') {
21 defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) {
22 var length = arguments.length;
23 var $value = length < 2 ? undefined : arguments[1];
24 if (length && $value === undefined) return $delete(this, name);
25 var entries = [];
26 forEach(this, function (v, k) { // also validates `this`
27 push(entries, { key: k, value: v });
28 });
29 validateArgumentsLength(length, 1);
30 var key = toString(name);
31 var value = toString($value);
32 var index = 0;
33 var entriesLength = entries.length;
34 var entry;
35 while (index < entriesLength) {
36 entry = entries[index];
37 $delete(this, entry.key);
38 index++;
39 }
40 index = 0;
41 while (index < entriesLength) {
42 entry = entries[index++];
43 if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value);
44 }
45 }, { enumerable: true, unsafe: true });
46}
Note: See TracBrowser for help on using the repository browser.