@@ -1857,6 +1857,34 @@ require('core-js');
1857
1857
1858
1858
(async function * () { /* empty */ })() instanceof AsyncIterator; // => true
1859
1859
` ` `
1860
+ * ` Map #upsert` [proposal](https://github.com/thumbsupep/proposal-upsert) - modules [` esnext .map .upsert ` ](https://github.com/zloirock/core-js/blob/v3.3.0/packages/core-js/modules/esnext.map.upsert.js), [` esnext .map .update - or- insert` ](https://github.com/zloirock/core-js/blob/v3.3.0/packages/core-js/modules/esnext.map.update-or-insert.js) and [` esnext .weak - map .update - or- insert` ](https://github.com/zloirock/core-js/blob/v3.3.0/packages/core-js/modules/esnext.weak-map.update-or-insert.js)
1861
+ ` ` ` js
1862
+ class Map {
1863
+ updateOrInsert (key: any, onUpdate : (value : any ) => updated: any, onInsert : () => value: any): updated | value; (obsolete in favor ` .upsert` )
1864
+ upsert (key: any, onUpdate : (value : any ) => updated: any, onInsert : () => value: any): updated | value;
1865
+ }
1866
+
1867
+ class WeakMap {
1868
+ upsert (key: Object , onUpdate : (value : any ) => updated: any, onInsert : () => value: any): updated | value;
1869
+ }
1870
+ ` ` `
1871
+ [*CommonJS entry points:*](#commonjs-api)
1872
+ ` ` ` js
1873
+ core- js/ proposals/ map- upsert
1874
+ core- js (- pure)/ features/ map/ update- or- insert
1875
+ core- js (- pure)/ features/ map/ upsert
1876
+ core- js (- pure)/ features/ weak- map/ upsert
1877
+ ` ` `
1878
+ [*Examples*](http://es6.zloirock.ru/#const%20map%20%3D%20new%20Map(%5B%5B'a'%2C%202%5D%5D)%3B%0A%0Amap.upsert('a'%2C%20it%20%3D%3E%20it%20**%202%2C%20()%20%3D%3E%203)%3B%20%2F%2F%20%3D%3E%204%0A%0Amap.upsert('b'%2C%20it%20%3D%3E%20it%20**%202%2C%20()%20%3D%3E%203)%3B%20%2F%2F%20%3D%3E%203%0A%0Alog(map)%3B%20%2F%2F%20%3D%3E%20%7B%20'a'%3A%204%2C%20'b'%3A%203%20%7D):
1879
+ ` ` ` js
1880
+ const map = new Map ([[' a' , 2 ]]);
1881
+
1882
+ map .upsert (' a' , it => it ** 2 , () => 3 ); // => 4
1883
+
1884
+ map .upsert (' b' , it => it ** 2 , () => 3 ); // => 3
1885
+
1886
+ console .log (map); // => Map { 'a': 4, 'b': 3 }
1887
+ ` ` `
1860
1888
1861
1889
#### Stage 1 proposals
1862
1890
[*CommonJS entry points:*](#commonjs-api)
@@ -1905,7 +1933,6 @@ Promise.try(() => { throw 42; }).catch(it => console.log(`Promise, rejected as $
1905
1933
` ` `
1906
1934
* New collections methods proposals:
1907
1935
- New `Set` and `Map` methods [proposal](https://github.com/tc39/proposal-collection-methods) - modules [`esnext.set.add-all`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.set.add-all.js), [`esnext.set.delete-all`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.set.delete-all.js), [`esnext.set.every`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.set.every.js), [`esnext.set.filter`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.set.filter.js), [`esnext.set.find`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.set.find.js), [`esnext.set.join`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.set.join.js), [`esnext.set.map`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.set.map.js), [`esnext.set.reduce`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.set.reduce.js), [`esnext.set.some`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.set.some.js), [`esnext.map.delete-all`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.map.delete-all.js), [`esnext.map.every`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.map.every.js), [`esnext.map.filter`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.map.filter.js), [`esnext.map.find`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.map.find.js), [`esnext.map.find-key`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.map.find-key.js), [`esnext.map.group-by`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.map.group-by.js), [`esnext.map.includes`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.map.includes.js), [`esnext.map.key-by`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.map.key-by.js), [`esnext.map.key-of`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.map.key-of.js), [`esnext.map.map-keys`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.map.map-keys.js), [`esnext.map.map-values`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.map.map-values.js), [`esnext.map.merge`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.map.merge.js), [`esnext.map.reduce`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.map.reduce.js), [`esnext.map.some`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.map.some.js), [`esnext.map.update`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.map.update.js), [`esnext.weak-set.add-all`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.weak-set.add-all.js), [`esnext.weak-set.delete-all`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.weak-set.delete-all.js), [`esnext.weak-map.delete-all`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.weak-map.delete-all.js)
1908
- - ` Map #upsert` [proposal](https://github.com/thumbsupep/proposal-upsert) - modules [` esnext .map .upsert ` ](https://github.com/zloirock/core-js/blob/v3.3.0/packages/core-js/modules/esnext.map.upsert.js), [` esnext .map .update - or- insert` ](https://github.com/zloirock/core-js/blob/v3.3.0/packages/core-js/modules/esnext.map.update-or-insert.js) and [` esnext .weak - map .update - or- insert` ](https://github.com/zloirock/core-js/blob/v3.3.0/packages/core-js/modules/esnext.weak-map.update-or-insert.js)
1909
1936
- `.of` and `.from` methods on collection constructors [proposal](https://github.com/tc39/proposal-setmap-offrom) - modules [`esnext.set.of`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.set.of.js), [`esnext.set.from`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.set.from.js), [`esnext.map.of`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.map.of.js), [`esnext.map.from`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.map.from.js), [`esnext.weak-set.of`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.weak-set.of.js), [`esnext.weak-set.from`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.weak-set.from.js), [`esnext.weak-map.of`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.weak-map.of.js), [`esnext.weak-map.from`](https://github.com/zloirock/core-js/blob/v3.2.1/packages/core-js/modules/esnext.weak-map.from.js)
1910
1937
` ` ` js
1911
1938
class Set {
@@ -1940,8 +1967,6 @@ class Map {
1940
1967
reduce (callbackfn : (memo : any , value : any , key : any , target : any ) => any, initialValue?: any): any;
1941
1968
some (callbackfn : (value : any , key : any , target : any ) => boolean, thisArg?: any): boolean;
1942
1969
update (key: any, callbackfn : (value : any , key : any , target : any ) => any, thunk?: (key : any , target : any ) => any): this ;
1943
- updateOrInsert (key: any, onUpdate : (value : any ) => updated: any, onInsert : () => value: any): updated | value; (obsolete in favor ` .upsert` )
1944
- upsert (key: any, onUpdate : (value : any ) => updated: any, onInsert : () => value: any): updated | value;
1945
1970
}
1946
1971
1947
1972
class WeakSet {
@@ -1955,14 +1980,12 @@ class WeakMap {
1955
1980
static of (... args: Array < [key, value]> ): WeakMap ;
1956
1981
static from (iterable: Iterable< mixed> , mapFn?: (value : any , index : number ) => [key: Object , value: any], thisArg?: any): WeakMap ;
1957
1982
deleteAll (... args: Array < mixed> ): boolean;
1958
- upsert (key: Object , onUpdate : (value : any ) => updated: any, onInsert : () => value: any): updated | value;
1959
1983
}
1960
1984
` ` `
1961
1985
[*CommonJS entry points:*](#commonjs-api)
1962
1986
` ` ` js
1963
1987
core- js/ proposals/ collection- methods
1964
1988
core- js/ proposals/ collection- of - from
1965
- core- js/ proposals/ map- upsert
1966
1989
core- js (- pure)/ features/ set/ add- all
1967
1990
core- js (- pure)/ features/ set/ delete - all
1968
1991
core- js (- pure)/ features/ set/ every
@@ -1991,26 +2014,13 @@ core-js(-pure)/features/map/of
1991
2014
core- js (- pure)/ features/ map/ reduce
1992
2015
core- js (- pure)/ features/ map/ some
1993
2016
core- js (- pure)/ features/ map/ update
1994
- core- js (- pure)/ features/ map/ update- or- insert
1995
- core- js (- pure)/ features/ map/ upsert
1996
2017
core- js (- pure)/ features/ weak- set/ add- all
1997
2018
core- js (- pure)/ features/ weak- set/ delete - all
1998
2019
core- js (- pure)/ features/ weak- set/ of
1999
2020
core- js (- pure)/ features/ weak- set/ from
2000
2021
core- js (- pure)/ features/ weak- map/ delete - all
2001
2022
core- js (- pure)/ features/ weak- map/ of
2002
2023
core- js (- pure)/ features/ weak- map/ from
2003
- core- js (- pure)/ features/ weak- map/ upsert
2004
- ` ` `
2005
- ` Map #upsert` [*examples*](http://es6.zloirock.ru/#const%20map%20%3D%20new%20Map(%5B%5B'a'%2C%202%5D%5D)%3B%0A%0Amap.upsert('a'%2C%20it%20%3D%3E%20it%20**%202%2C%20()%20%3D%3E%203)%3B%20%2F%2F%20%3D%3E%204%0A%0Amap.upsert('b'%2C%20it%20%3D%3E%20it%20**%202%2C%20()%20%3D%3E%203)%3B%20%2F%2F%20%3D%3E%203%0A%0Alog(map)%3B%20%2F%2F%20%3D%3E%20%7B%20'a'%3A%204%2C%20'b'%3A%203%20%7D):
2006
- ` ` ` js
2007
- const map = new Map ([[' a' , 2 ]]);
2008
-
2009
- map .upsert (' a' , it => it ** 2 , () => 3 ); // => 4
2010
-
2011
- map .upsert (' b' , it => it ** 2 , () => 3 ); // => 3
2012
-
2013
- console .log (map); // => Map { 'a': 4, 'b': 3 }
2014
2024
` ` `
2015
2025
` .of ` / ` .from ` [*examples*](https://goo.gl/mSC7eU):
2016
2026
` ` ` js
0 commit comments