Skip to content

Commit

Permalink
Merge pull request #1084 from zloirock/find-last
Browse files Browse the repository at this point in the history
  • Loading branch information
zloirock committed Jun 9, 2022
2 parents 218e1e4 + 103a794 commit cb2c0b1
Show file tree
Hide file tree
Showing 46 changed files with 244 additions and 151 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
@@ -1,5 +1,10 @@
## Changelog
##### Unreleased
- [`Array` find from last](https://github.com/tc39/proposal-array-find-from-last) moved to the stable ES, per June 2022 TC39 meeting
- `Array.prototype.findLast`
- `Array.prototype.findIndex`
- `%TypedArray%.prototype.findLast`
- `%TypedArray%.prototype.findIndex`
- Changed the order of operations in `%TypedArray%.prototype.with` following [proposal-change-array-by-copy/86](https://github.com/tc39/proposal-change-array-by-copy/issues/86), per June 2022 TC39 meeting
- Fixed a bug in the order of getting flags in `RegExp.prototype.flags` in the actual version of V8
- Fixed property descriptors of some `Math` and `Number` constants
Expand Down
68 changes: 34 additions & 34 deletions README.md

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions packages/core-js-compat/README.md
Expand Up @@ -27,21 +27,21 @@ console.log(targets);
'es.error.cause': { ios: '14.5-14.8', samsung: '16.0' },
'es.aggregate-error.cause': { ios: '14.5-14.8', samsung: '16.0' },
'es.array.at': { ios: '14.5-14.8' },
'es.array.find-last': { firefox: '98', ios: '14.5-14.8', samsung: '16.0' },
'es.array.find-last-index': { firefox: '98', ios: '14.5-14.8', samsung: '16.0' },
'es.object.has-own': { ios: '14.5-14.8', samsung: '16.0' },
'es.string.at-alternative': { ios: '14.5-14.8' },
'es.typed-array.at': { ios: '14.5-14.8' },
'es.typed-array.find-last': { firefox: '98', ios: '14.5-14.8', samsung: '16.0' },
'es.typed-array.find-last-index': { firefox: '98', ios: '14.5-14.8', samsung: '16.0' },
'es.typed-array.set': { samsung: '16.0' },
'esnext.array.find-last': { firefox: '98', ios: '14.5-14.8', samsung: '16.0' },
'esnext.array.find-last-index': { firefox: '98', ios: '14.5-14.8', samsung: '16.0' },
'esnext.array.group-by': { chrome: '98', edge: '99', firefox: '98', ios: '14.5-14.8', samsung: '16.0' },
'esnext.array.group-by-to-map': { chrome: '98', edge: '99', firefox: '98', ios: '14.5-14.8', samsung: '16.0' },
'esnext.array.to-reversed': { chrome: '98', edge: '99', firefox: '98', ios: '14.5-14.8', samsung: '16.0' },
'esnext.array.to-sorted': { chrome: '98', edge: '99', firefox: '98', ios: '14.5-14.8', samsung: '16.0' },
'esnext.array.to-spliced': { chrome: '98', edge: '99', firefox: '98', ios: '14.5-14.8', samsung: '16.0' },
'esnext.array.unique-by': { chrome: '98', edge: '99', firefox: '98', ios: '14.5-14.8', samsung: '16.0' },
'esnext.array.with': { chrome: '98', edge: '99', firefox: '98', ios: '14.5-14.8', samsung: '16.0' },
'esnext.typed-array.find-last': { firefox: '98', ios: '14.5-14.8', samsung: '16.0' },
'esnext.typed-array.find-last-index': { firefox: '98', ios: '14.5-14.8', samsung: '16.0' },
'esnext.typed-array.to-reversed': { chrome: '98', edge: '99', firefox: '98', ios: '14.5-14.8', samsung: '16.0' },
'esnext.typed-array.to-sorted': { chrome: '98', edge: '99', firefox: '98', ios: '14.5-14.8', samsung: '16.0' },
'esnext.typed-array.to-spliced': { chrome: '98', edge: '99', firefox: '98', ios: '14.5-14.8', samsung: '16.0' },
Expand Down
44 changes: 28 additions & 16 deletions packages/core-js-compat/src/data.mjs
Expand Up @@ -187,6 +187,14 @@ export const data = {
firefox: '48',
safari: '9.0',
},
'es.array.find-last': {
chrome: '97',
safari: '15.4',
},
'es.array.find-last-index': {
chrome: '97',
safari: '15.4',
},
'es.array.flat': {
chrome: '69',
firefox: '62',
Expand Down Expand Up @@ -1421,6 +1429,14 @@ export const data = {
firefox: '37',
safari: '10.0',
},
'es.typed-array.find-last': {
chrome: '97',
safari: '15.4',
},
'es.typed-array.find-last-index': {
chrome: '97',
safari: '15.4',
},
'es.typed-array.for-each': {
chrome: '45',
edge: '13',
Expand Down Expand Up @@ -1571,14 +1587,10 @@ export const data = {
},
'esnext.array.filter-reject': {
},
'esnext.array.find-last': {
chrome: '97',
safari: '15.4',
},
'esnext.array.find-last-index': {
chrome: '97',
safari: '15.4',
},
// TODO: Remove from `core-js@4`
'esnext.array.find-last': null,
// TODO: Remove from `core-js@4`
'esnext.array.find-last-index': null,
'esnext.array.group-by': {
},
'esnext.array.group-by-to-map': {
Expand Down Expand Up @@ -1877,14 +1889,10 @@ export const data = {
},
'esnext.typed-array.filter-reject': {
},
'esnext.typed-array.find-last': {
chrome: '97',
safari: '15.4',
},
'esnext.typed-array.find-last-index': {
chrome: '97',
safari: '15.4',
},
// TODO: Remove from `core-js@4`
'esnext.typed-array.find-last': null,
// TODO: Remove from `core-js@4`
'esnext.typed-array.find-last-index': null,
// TODO: Remove from `core-js@4`
'esnext.typed-array.group-by': {
},
Expand Down Expand Up @@ -2076,6 +2084,8 @@ export const renamed = new Map([
['es.weak-map', 'es.weak-map.constructor'],
['es.weak-set', 'es.weak-set.constructor'],
['esnext.array.at', 'es.array.at'],
['esnext.array.find-last', 'es.array.find-last'],
['esnext.array.find-last-index', 'es.array.find-last-index'],
['esnext.aggregate-error', 'es.aggregate-error'],
['esnext.global-this', 'es.global-this'],
['esnext.object.has-own', 'es.object.has-own'],
Expand All @@ -2084,6 +2094,8 @@ export const renamed = new Map([
['esnext.string.match-all', 'es.string.match-all'],
['esnext.string.replace-all', 'es.string.replace-all'],
['esnext.typed-array.at', 'es.typed-array.at'],
['esnext.typed-array.find-last', 'es.typed-array.find-last'],
['esnext.typed-array.find-last-index', 'es.typed-array.find-last-index'],
['web.url', 'web.url.constructor'],
['web.url-search-params', 'web.url-search-params.constructor'],
]);
Expand Down
6 changes: 6 additions & 0 deletions packages/core-js-compat/src/modules-by-versions.mjs
Expand Up @@ -139,4 +139,10 @@ export default {
'web.atob',
'web.btoa',
],
3.23: [
'es.array.find-last',
'es.array.find-last-index',
'es.typed-array.find-last',
'es.typed-array.find-last-index',
],
};
@@ -0,0 +1 @@
// empty
@@ -0,0 +1 @@
// empty
4 changes: 2 additions & 2 deletions packages/core-js/actual/array/find-last-index.js
@@ -1,4 +1,4 @@
require('../../modules/esnext.array.find-last-index');
var entryUnbind = require('../../internals/entry-unbind');
var parent = require('../../stable/array/find-last-index');

module.exports = entryUnbind('Array', 'findLastIndex');
module.exports = parent;
4 changes: 2 additions & 2 deletions packages/core-js/actual/array/find-last.js
@@ -1,4 +1,4 @@
require('../../modules/esnext.array.find-last');
var entryUnbind = require('../../internals/entry-unbind');
var parent = require('../../stable/array/find-last');

module.exports = entryUnbind('Array', 'findLast');
module.exports = parent;
4 changes: 2 additions & 2 deletions packages/core-js/actual/array/virtual/find-last-index.js
@@ -1,4 +1,4 @@
require('../../../modules/esnext.array.find-last-index');
var entryVirtual = require('../../../internals/entry-virtual');
var parent = require('../../../stable/array/virtual/find-last-index');

module.exports = entryVirtual('Array').findLastIndex;
module.exports = parent;
4 changes: 2 additions & 2 deletions packages/core-js/actual/array/virtual/find-last.js
@@ -1,4 +1,4 @@
require('../../../modules/esnext.array.find-last');
var entryVirtual = require('../../../internals/entry-virtual');
var parent = require('../../../stable/array/virtual/find-last');

module.exports = entryVirtual('Array').findLast;
module.exports = parent;
3 changes: 3 additions & 0 deletions packages/core-js/actual/typed-array/find-last-index.js
@@ -1 +1,4 @@
require('../../modules/esnext.typed-array.find-last-index');
var parent = require('../../stable/typed-array/find-last-index');

module.exports = parent;
3 changes: 3 additions & 0 deletions packages/core-js/actual/typed-array/find-last.js
@@ -1 +1,4 @@
require('../../modules/esnext.typed-array.find-last');
var parent = require('../../stable/typed-array/find-last');

module.exports = parent;
4 changes: 4 additions & 0 deletions packages/core-js/es/array/find-last-index.js
@@ -0,0 +1,4 @@
require('../../modules/es.array.find-last-index');
var entryUnbind = require('../../internals/entry-unbind');

module.exports = entryUnbind('Array', 'findLastIndex');
4 changes: 4 additions & 0 deletions packages/core-js/es/array/find-last.js
@@ -0,0 +1,4 @@
require('../../modules/es.array.find-last');
var entryUnbind = require('../../internals/entry-unbind');

module.exports = entryUnbind('Array', 'findLast');
2 changes: 2 additions & 0 deletions packages/core-js/es/array/index.js
Expand Up @@ -9,6 +9,8 @@ require('../../modules/es.array.fill');
require('../../modules/es.array.filter');
require('../../modules/es.array.find');
require('../../modules/es.array.find-index');
require('../../modules/es.array.find-last');
require('../../modules/es.array.find-last-index');
require('../../modules/es.array.flat');
require('../../modules/es.array.flat-map');
require('../../modules/es.array.for-each');
Expand Down
4 changes: 4 additions & 0 deletions packages/core-js/es/array/virtual/find-last-index.js
@@ -0,0 +1,4 @@
require('../../../modules/es.array.find-last-index');
var entryVirtual = require('../../../internals/entry-virtual');

module.exports = entryVirtual('Array').findLastIndex;
4 changes: 4 additions & 0 deletions packages/core-js/es/array/virtual/find-last.js
@@ -0,0 +1,4 @@
require('../../../modules/es.array.find-last');
var entryVirtual = require('../../../internals/entry-virtual');

module.exports = entryVirtual('Array').findLast;
2 changes: 2 additions & 0 deletions packages/core-js/es/array/virtual/index.js
Expand Up @@ -6,6 +6,8 @@ require('../../../modules/es.array.fill');
require('../../../modules/es.array.filter');
require('../../../modules/es.array.find');
require('../../../modules/es.array.find-index');
require('../../../modules/es.array.find-last');
require('../../../modules/es.array.find-last-index');
require('../../../modules/es.array.flat');
require('../../../modules/es.array.flat-map');
require('../../../modules/es.array.for-each');
Expand Down
9 changes: 9 additions & 0 deletions packages/core-js/es/instance/find-last-index.js
@@ -0,0 +1,9 @@
var isPrototypeOf = require('../../internals/object-is-prototype-of');
var method = require('../array/virtual/find-last-index');

var ArrayPrototype = Array.prototype;

module.exports = function (it) {
var own = it.findLastIndex;
return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.findLastIndex) ? method : own;
};
9 changes: 9 additions & 0 deletions packages/core-js/es/instance/find-last.js
@@ -0,0 +1,9 @@
var isPrototypeOf = require('../../internals/object-is-prototype-of');
var method = require('../array/virtual/find-last');

var ArrayPrototype = Array.prototype;

module.exports = function (it) {
var own = it.findLast;
return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.findLast) ? method : own;
};
1 change: 1 addition & 0 deletions packages/core-js/es/typed-array/find-last-index.js
@@ -0,0 +1 @@
require('../../modules/es.typed-array.find-last-index');
1 change: 1 addition & 0 deletions packages/core-js/es/typed-array/find-last.js
@@ -0,0 +1 @@
require('../../modules/es.typed-array.find-last');
2 changes: 2 additions & 0 deletions packages/core-js/es/typed-array/methods.js
Expand Up @@ -9,6 +9,8 @@ require('../../modules/es.typed-array.fill');
require('../../modules/es.typed-array.filter');
require('../../modules/es.typed-array.find');
require('../../modules/es.typed-array.find-index');
require('../../modules/es.typed-array.find-last');
require('../../modules/es.typed-array.find-last-index');
require('../../modules/es.typed-array.for-each');
require('../../modules/es.typed-array.includes');
require('../../modules/es.typed-array.index-of');
Expand Down
14 changes: 14 additions & 0 deletions packages/core-js/modules/es.array.find-last-index.js
@@ -0,0 +1,14 @@
'use strict';
var $ = require('../internals/export');
var $findLastIndex = require('../internals/array-iteration-from-last').findLastIndex;
var addToUnscopables = require('../internals/add-to-unscopables');

// `Array.prototype.findLastIndex` method
// https://github.com/tc39/proposal-array-find-from-last
$({ target: 'Array', proto: true }, {
findLastIndex: function findLastIndex(callbackfn /* , that = undefined */) {
return $findLastIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
}
});

addToUnscopables('findLastIndex');
14 changes: 14 additions & 0 deletions packages/core-js/modules/es.array.find-last.js
@@ -0,0 +1,14 @@
'use strict';
var $ = require('../internals/export');
var $findLast = require('../internals/array-iteration-from-last').findLast;
var addToUnscopables = require('../internals/add-to-unscopables');

// `Array.prototype.findLast` method
// https://github.com/tc39/proposal-array-find-from-last
$({ target: 'Array', proto: true }, {
findLast: function findLast(callbackfn /* , that = undefined */) {
return $findLast(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
}
});

addToUnscopables('findLast');
12 changes: 12 additions & 0 deletions packages/core-js/modules/es.typed-array.find-last-index.js
@@ -0,0 +1,12 @@
'use strict';
var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
var $findLastIndex = require('../internals/array-iteration-from-last').findLastIndex;

var aTypedArray = ArrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;

// `%TypedArray%.prototype.findLastIndex` method
// https://github.com/tc39/proposal-array-find-from-last
exportTypedArrayMethod('findLastIndex', function findLastIndex(predicate /* , thisArg */) {
return $findLastIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
});
12 changes: 12 additions & 0 deletions packages/core-js/modules/es.typed-array.find-last.js
@@ -0,0 +1,12 @@
'use strict';
var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
var $findLast = require('../internals/array-iteration-from-last').findLast;

var aTypedArray = ArrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;

// `%TypedArray%.prototype.findLast` method
// https://github.com/tc39/proposal-array-find-from-last
exportTypedArrayMethod('findLast', function findLast(predicate /* , thisArg */) {
return $findLast(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
});
16 changes: 2 additions & 14 deletions packages/core-js/modules/esnext.array.find-last-index.js
@@ -1,14 +1,2 @@
'use strict';
var $ = require('../internals/export');
var $findLastIndex = require('../internals/array-iteration-from-last').findLastIndex;
var addToUnscopables = require('../internals/add-to-unscopables');

// `Array.prototype.findLastIndex` method
// https://github.com/tc39/proposal-array-find-from-last
$({ target: 'Array', proto: true }, {
findLastIndex: function findLastIndex(callbackfn /* , that = undefined */) {
return $findLastIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
}
});

addToUnscopables('findLastIndex');
// TODO: Remove from `core-js@4`
require('../modules/es.array.find-last-index');
16 changes: 2 additions & 14 deletions packages/core-js/modules/esnext.array.find-last.js
@@ -1,14 +1,2 @@
'use strict';
var $ = require('../internals/export');
var $findLast = require('../internals/array-iteration-from-last').findLast;
var addToUnscopables = require('../internals/add-to-unscopables');

// `Array.prototype.findLast` method
// https://github.com/tc39/proposal-array-find-from-last
$({ target: 'Array', proto: true }, {
findLast: function findLast(callbackfn /* , that = undefined */) {
return $findLast(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
}
});

addToUnscopables('findLast');
// TODO: Remove from `core-js@4`
require('../modules/es.array.find-last');
14 changes: 2 additions & 12 deletions packages/core-js/modules/esnext.typed-array.find-last-index.js
@@ -1,12 +1,2 @@
'use strict';
var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
var $findLastIndex = require('../internals/array-iteration-from-last').findLastIndex;

var aTypedArray = ArrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;

// `%TypedArray%.prototype.findLastIndex` method
// https://github.com/tc39/proposal-array-find-from-last
exportTypedArrayMethod('findLastIndex', function findLastIndex(predicate /* , thisArg */) {
return $findLastIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
});
// TODO: Remove from `core-js@4`
require('../modules/es.typed-array.find-last-index');
14 changes: 2 additions & 12 deletions packages/core-js/modules/esnext.typed-array.find-last.js
@@ -1,12 +1,2 @@
'use strict';
var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
var $findLast = require('../internals/array-iteration-from-last').findLast;

var aTypedArray = ArrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;

// `%TypedArray%.prototype.findLast` method
// https://github.com/tc39/proposal-array-find-from-last
exportTypedArrayMethod('findLast', function findLast(predicate /* , thisArg */) {
return $findLast(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
});
// TODO: Remove from `core-js@4`
require('../modules/es.typed-array.find-last');
1 change: 1 addition & 0 deletions packages/core-js/stable/array/find-last-index.js
@@ -0,0 +1 @@
module.exports = require('../../es/array/find-last-index');
1 change: 1 addition & 0 deletions packages/core-js/stable/array/find-last.js
@@ -0,0 +1 @@
module.exports = require('../../es/array/find-last');
1 change: 1 addition & 0 deletions packages/core-js/stable/array/virtual/find-last-index.js
@@ -0,0 +1 @@
module.exports = require('../../../es/array/virtual/find-last-index');
1 change: 1 addition & 0 deletions packages/core-js/stable/array/virtual/find-last.js
@@ -0,0 +1 @@
module.exports = require('../../../es/array/virtual/find-last');
3 changes: 3 additions & 0 deletions packages/core-js/stable/instance/find-last-index.js
@@ -0,0 +1,3 @@
var parent = require('../../es/instance/find-last-index');

module.exports = parent;
3 changes: 3 additions & 0 deletions packages/core-js/stable/instance/find-last.js
@@ -0,0 +1,3 @@
var parent = require('../../es/instance/find-last');

module.exports = parent;
1 change: 1 addition & 0 deletions packages/core-js/stable/typed-array/find-last-index.js
@@ -0,0 +1 @@
module.exports = require('../../es/typed-array/find-last-index');
1 change: 1 addition & 0 deletions packages/core-js/stable/typed-array/find-last.js
@@ -0,0 +1 @@
module.exports = require('../../es/typed-array/find-last');

0 comments on commit cb2c0b1

Please sign in to comment.