Skip to content

Commit 3e2c946

Browse files
committed
some simplification and untangling
1 parent fe427cc commit 3e2c946

21 files changed

+66
-74
lines changed

packages/core-js-pure/override/internals/collection.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ var isCallable = require('../internals/is-callable');
1010
var isObject = require('../internals/is-object');
1111
var isNullOrUndefined = require('../internals/is-null-or-undefined');
1212
var setToStringTag = require('../internals/set-to-string-tag');
13-
var defineProperty = require('../internals/object-define-property').f;
1413
var InternalStateModule = require('../internals/internal-state');
1514

1615
var setInternalState = InternalStateModule.set;
1716
var internalStateGetterFor = InternalStateModule.getterFor;
17+
var defineProperty = Object.defineProperty;
1818

1919
module.exports = function (CONSTRUCTOR_NAME, wrapper, common) {
2020
var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;

packages/core-js-pure/override/internals/set-to-string-tag.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
'use strict';
22
var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');
3-
var defineProperty = require('../internals/object-define-property').f;
43
var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
54
var hasOwn = require('../internals/has-own-property');
65
var toString = require('../internals/object-to-string');
76
var wellKnownSymbol = require('../internals/well-known-symbol');
87

8+
var defineProperty = Object.defineProperty;
99
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
1010

1111
module.exports = function (it, TAG, STATIC, SET_METHOD) {

packages/core-js/full/number/from-string.js

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
'use strict';
2+
require('../../modules/es.number.parse-int');
23
require('../../modules/esnext.number.from-string');
34
var path = require('../../internals/path');
45

packages/core-js/internals/array-from.js

-46
This file was deleted.

packages/core-js/internals/array-species-constructor.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ var wellKnownSymbol = require('../internals/well-known-symbol');
55

66
var SPECIES = wellKnownSymbol('species');
77
var $Array = Array;
8-
var isArray = Array.isArray;
8+
var isArray = $Array.isArray;
99

1010
// a part of `ArraySpeciesCreate` abstract operation
1111
// https://tc39.es/ecma262/#sec-arrayspeciescreate
+42-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,19 @@
11
'use strict';
22
var $ = require('../internals/export');
3-
var from = require('../internals/array-from');
3+
var bind = require('../internals/function-bind-context');
4+
var call = require('../internals/function-call');
5+
var toObject = require('../internals/to-object');
6+
var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
7+
var isArrayIteratorMethod = require('../internals/is-array-iterator-method');
8+
var isConstructor = require('../internals/is-constructor');
9+
var lengthOfArrayLike = require('../internals/length-of-array-like');
10+
var createProperty = require('../internals/create-property');
11+
var getIterator = require('../internals/get-iterator');
12+
var getIteratorMethod = require('../internals/get-iterator-method');
413
var checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');
514

15+
var $Array = Array;
16+
617
var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {
718
// eslint-disable-next-line es/no-array-from -- required for testing
819
Array.from(iterable);
@@ -11,5 +22,34 @@ var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {
1122
// `Array.from` method
1223
// https://tc39.es/ecma262/#sec-array.from
1324
$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {
14-
from: from,
25+
from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
26+
var O = toObject(arrayLike);
27+
var IS_CONSTRUCTOR = isConstructor(this);
28+
var argumentsLength = arguments.length;
29+
var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
30+
var mapping = mapfn !== undefined;
31+
if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);
32+
var iteratorMethod = getIteratorMethod(O);
33+
var index = 0;
34+
var length, result, step, iterator, next, value;
35+
// if the target is not iterable or it's an array with the default iterator - use a simple case
36+
if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {
37+
iterator = getIterator(O, iteratorMethod);
38+
next = iterator.next;
39+
result = IS_CONSTRUCTOR ? new this() : [];
40+
for (;!(step = call(next, iterator)).done; index++) {
41+
value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;
42+
createProperty(result, index, value);
43+
}
44+
} else {
45+
length = lengthOfArrayLike(O);
46+
result = IS_CONSTRUCTOR ? new this(length) : $Array(length);
47+
for (;length > index; index++) {
48+
value = mapping ? mapfn(O[index], index) : O[index];
49+
createProperty(result, index, value);
50+
}
51+
}
52+
result.length = index;
53+
return result;
54+
},
1555
});

packages/core-js/modules/es.array.iterator.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ var toIndexedObject = require('../internals/to-indexed-object');
33
var addToUnscopables = require('../internals/add-to-unscopables');
44
var Iterators = require('../internals/iterators');
55
var InternalStateModule = require('../internals/internal-state');
6-
var defineProperty = require('../internals/object-define-property').f;
76
var defineIterator = require('../internals/iterator-define');
87
var createIterResultObject = require('../internals/create-iter-result-object');
98
var IS_PURE = require('../internals/is-pure');
@@ -58,5 +57,5 @@ addToUnscopables('entries');
5857

5958
// V8 ~ Chrome 45- bug
6059
if (!IS_PURE && values.name !== 'values') try {
61-
defineProperty(values, 'name', { value: 'values' });
60+
Object.defineProperty(values, 'name', { value: 'values' });
6261
} catch (error) { /* empty */ }

packages/core-js/modules/es.array.slice.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');
1414

1515
var SPECIES = wellKnownSymbol('species');
1616
var $Array = Array;
17-
var isArray = Array.isArray;
17+
var isArray = $Array.isArray;
1818
var max = Math.max;
1919

2020
// `Array.prototype.slice` method

packages/core-js/modules/es.function.has-instance.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
'use strict';
22
var isCallable = require('../internals/is-callable');
33
var isObject = require('../internals/is-object');
4-
var definePropertyModule = require('../internals/object-define-property');
54
var wellKnownSymbol = require('../internals/well-known-symbol');
65
var makeBuiltIn = require('../internals/make-built-in');
76

@@ -12,7 +11,7 @@ var getPrototypeOf = Object.getPrototypeOf;
1211
// `Function.prototype[@@hasInstance]` method
1312
// https://tc39.es/ecma262/#sec-function.prototype-@@hasinstance
1413
if (!(HAS_INSTANCE in FunctionPrototype)) {
15-
definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: makeBuiltIn(function (O) {
14+
Object.defineProperty(FunctionPrototype, HAS_INSTANCE, { value: makeBuiltIn(function (O) {
1615
if (!isCallable(this) || !isObject(O)) return false;
1716
var P = this.prototype;
1817
if (!isObject(P)) return O instanceof this;

packages/core-js/modules/es.object.get-own-property-descriptor.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
var $ = require('../internals/export');
33
var fails = require('../internals/fails');
44
var toIndexedObject = require('../internals/to-indexed-object');
5-
var nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
5+
var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');
66

7-
var FORCED = fails(function () { nativeGetOwnPropertyDescriptor(1); });
7+
var FORCED = fails(function () { getOwnPropertyDescriptorModule.f(1); });
88

99
// `Object.getOwnPropertyDescriptor` method
1010
// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor
1111
$({ target: 'Object', stat: true, forced: FORCED }, {
1212
getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {
13-
return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);
13+
return getOwnPropertyDescriptorModule.f(toIndexedObject(it), key);
1414
},
1515
});

packages/core-js/modules/es.typed-array.every.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
'use strict';
2+
var uncurryThis = require('../internals/function-uncurry-this');
23
var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3-
var $every = require('../internals/array-iteration').every;
44

5+
var $every = uncurryThis([].every);
56
var aTypedArray = ArrayBufferViewCore.aTypedArray;
67
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
78

packages/core-js/modules/es.typed-array.for-each.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
'use strict';
2+
var uncurryThis = require('../internals/function-uncurry-this');
23
var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3-
var $forEach = require('../internals/array-iteration').forEach;
44

5+
var $forEach = uncurryThis([].forEach);
56
var aTypedArray = ArrayBufferViewCore.aTypedArray;
67
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
78

packages/core-js/modules/es.typed-array.some.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
'use strict';
2+
var uncurryThis = require('../internals/function-uncurry-this');
23
var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3-
var $some = require('../internals/array-iteration').some;
44

5+
var $some = uncurryThis([].some);
56
var aTypedArray = ArrayBufferViewCore.aTypedArray;
67
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
78

Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
'use strict';
22
var wellKnownSymbol = require('../internals/well-known-symbol');
3-
var defineProperty = require('../internals/object-define-property').f;
43

54
var METADATA = wellKnownSymbol('metadata');
65
var FunctionPrototype = Function.prototype;
76

87
// Function.prototype[@@metadata]
98
// https://github.com/tc39/proposal-decorator-metadata
109
if (FunctionPrototype[METADATA] === undefined) {
11-
defineProperty(FunctionPrototype, METADATA, {
10+
Object.defineProperty(FunctionPrototype, METADATA, {
1211
value: null,
1312
});
1413
}

packages/core-js/modules/esnext.number.from-string.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
'use strict';
22
var $ = require('../internals/export');
3+
var getBuiltIn = require('../internals/get-built-in');
34
var uncurryThis = require('../internals/function-uncurry-this');
45
var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
5-
var parseInt = require('../internals/number-parse-int');
66

77
var INVALID_NUMBER_REPRESENTATION = 'Invalid number representation';
88
var INVALID_RADIX = 'Invalid radix';
99
var $RangeError = RangeError;
1010
var $SyntaxError = SyntaxError;
1111
var $TypeError = TypeError;
12+
var parseInt = getBuiltIn('Number', 'parseInt');
1213
var valid = /^[\da-z]+$/;
1314
var charAt = uncurryThis(''.charAt);
1415
var exec = uncurryThis(valid.exec);

packages/core-js/modules/esnext.string.dedent.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ var anObject = require('../internals/an-object');
99
var toObject = require('../internals/to-object');
1010
var isCallable = require('../internals/is-callable');
1111
var lengthOfArrayLike = require('../internals/length-of-array-like');
12-
var defineProperty = require('../internals/object-define-property').f;
1312
var createArrayFromList = require('../internals/array-slice-simple');
1413
var cooked = require('../internals/string-cooked');
1514
var parse = require('../internals/string-parse');
@@ -26,6 +25,7 @@ globalDedentRegistry.set = globalDedentRegistry.set;
2625

2726
var $Array = Array;
2827
var $TypeError = TypeError;
28+
var defineProperty = Object.defineProperty;
2929
var freeze = Object.freeze;
3030
// eslint-disable-next-line es/no-object-isfrozen -- safe
3131
var isFrozen = Object.isFrozen;

packages/core-js/modules/esnext.symbol.async-dispose.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
'use strict';
22
var global = require('../internals/global');
33
var defineWellKnownSymbol = require('../internals/well-known-symbol-define');
4-
var defineProperty = require('../internals/object-define-property').f;
54

65
var Symbol = global.Symbol;
76

@@ -15,6 +14,6 @@ if (Symbol) {
1514
// https://github.com/nodejs/node/issues/48699
1615
// and incorrect descriptor from some transpilers and userland helpers
1716
if (descriptor.enumerable && descriptor.configurable && descriptor.writable) {
18-
defineProperty(Symbol, 'asyncDispose', { value: descriptor.value, enumerable: false, configurable: false, writable: false });
17+
Object.defineProperty(Symbol, 'asyncDispose', { value: descriptor.value, enumerable: false, configurable: false, writable: false });
1918
}
2019
}

packages/core-js/modules/esnext.symbol.dispose.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
'use strict';
22
var global = require('../internals/global');
33
var defineWellKnownSymbol = require('../internals/well-known-symbol-define');
4-
var defineProperty = require('../internals/object-define-property').f;
54

65
var Symbol = global.Symbol;
76

@@ -15,6 +14,6 @@ if (Symbol) {
1514
// https://github.com/nodejs/node/issues/48699
1615
// and incorrect descriptor from some transpilers and userland helpers
1716
if (descriptor.enumerable && descriptor.configurable && descriptor.writable) {
18-
defineProperty(Symbol, 'dispose', { value: descriptor.value, enumerable: false, configurable: false, writable: false });
17+
Object.defineProperty(Symbol, 'dispose', { value: descriptor.value, enumerable: false, configurable: false, writable: false });
1918
}
2019
}

packages/core-js/modules/web.dom-exception.constructor.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ var tryNodeRequire = require('../internals/try-node-require');
44
var getBuiltIn = require('../internals/get-built-in');
55
var fails = require('../internals/fails');
66
var createPropertyDescriptor = require('../internals/create-property-descriptor');
7-
var defineProperty = require('../internals/object-define-property').f;
87
var defineBuiltIn = require('../internals/define-built-in');
98
var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
109
var hasOwn = require('../internals/has-own-property');
@@ -21,6 +20,7 @@ var DOM_EXCEPTION = 'DOMException';
2120
var DATA_CLONE_ERR = 'DATA_CLONE_ERR';
2221
var Error = getBuiltIn('Error');
2322
var create = Object.create;
23+
var defineProperty = Object.defineProperty;
2424
// NodeJS < 17.0 does not expose `DOMException` to global
2525
var NativeDOMException = getBuiltIn(DOM_EXCEPTION) || (function () {
2626
try {

packages/core-js/modules/web.dom-exception.stack.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ var $ = require('../internals/export');
33
var global = require('../internals/global');
44
var getBuiltIn = require('../internals/get-built-in');
55
var createPropertyDescriptor = require('../internals/create-property-descriptor');
6-
var defineProperty = require('../internals/object-define-property').f;
76
var hasOwn = require('../internals/has-own-property');
87
var anInstance = require('../internals/an-instance');
98
var inheritIfRequired = require('../internals/inherit-if-required');
@@ -15,6 +14,7 @@ var IS_PURE = require('../internals/is-pure');
1514
var DOM_EXCEPTION = 'DOMException';
1615
var Error = getBuiltIn('Error');
1716
var NativeDOMException = getBuiltIn(DOM_EXCEPTION);
17+
var defineProperty = Object.defineProperty;
1818

1919
var $DOMException = function DOMException() {
2020
anInstance(this, DOMExceptionPrototype);

tests/eslint/eslint.config.js

-2
Original file line numberDiff line numberDiff line change
@@ -910,14 +910,12 @@ const forbidESAnnexBBuiltIns = {
910910
};
911911

912912
const forbidES5BuiltIns = {
913-
'es/no-array-prototype-every': ERROR,
914913
'es/no-array-prototype-filter': ERROR,
915914
'es/no-array-prototype-indexof': ERROR,
916915
'es/no-array-prototype-lastindexof': ERROR,
917916
'es/no-array-prototype-map': ERROR,
918917
'es/no-array-prototype-reduce': ERROR,
919918
'es/no-array-prototype-reduceright': ERROR,
920-
'es/no-array-prototype-some': ERROR,
921919
'es/no-object-isextensible': ERROR,
922920
'es/no-object-isfrozen': ERROR,
923921
'es/no-object-issealed': ERROR,

0 commit comments

Comments
 (0)