source: frontend/node_modules/core-js-pure/modules/es.map.group-by.js

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

Fix frontend appearance

  • Property mode set to 100644
File size: 1.3 KB
Line 
1'use strict';
2var $ = require('../internals/export');
3var uncurryThis = require('../internals/function-uncurry-this');
4var aCallable = require('../internals/a-callable');
5var requireObjectCoercible = require('../internals/require-object-coercible');
6var iterate = require('../internals/iterate');
7var MapHelpers = require('../internals/map-helpers');
8var IS_PURE = require('../internals/is-pure');
9var fails = require('../internals/fails');
10
11var Map = MapHelpers.Map;
12var has = MapHelpers.has;
13var get = MapHelpers.get;
14var set = MapHelpers.set;
15var push = uncurryThis([].push);
16
17// https://bugs.webkit.org/show_bug.cgi?id=271524
18var DOES_NOT_WORK_WITH_PRIMITIVES = IS_PURE || fails(function () {
19 return Map.groupBy('ab', function (it) {
20 return it;
21 }).get('a').length !== 1;
22});
23
24// `Map.groupBy` method
25// https://tc39.es/ecma262/#sec-map.groupby
26$({ target: 'Map', stat: true, forced: IS_PURE || DOES_NOT_WORK_WITH_PRIMITIVES }, {
27 groupBy: function groupBy(items, callbackfn) {
28 requireObjectCoercible(items);
29 aCallable(callbackfn);
30 var map = new Map();
31 var k = 0;
32 iterate(items, function (value) {
33 var key = callbackfn(value, k++);
34 if (!has(map, key)) set(map, key, [value]);
35 else push(get(map, key), value);
36 });
37 return map;
38 }
39});
Note: See TracBrowser for help on using the repository browser.