diff --git a/packages/core-js-pure/override/internals/collection.js b/packages/core-js-pure/override/internals/collection.js index f179f5c9b6b2..9422c9c27227 100644 --- a/packages/core-js-pure/override/internals/collection.js +++ b/packages/core-js-pure/override/internals/collection.js @@ -8,6 +8,7 @@ var iterate = require('../internals/iterate'); var anInstance = require('../internals/an-instance'); var isCallable = require('../internals/is-callable'); var isObject = require('../internals/is-object'); +var isNullOrUndefined = require('../internals/is-null-or-undefined'); var setToStringTag = require('../internals/set-to-string-tag'); var defineProperty = require('../internals/object-define-property').f; var forEach = require('../internals/array-iteration').forEach; @@ -38,7 +39,7 @@ module.exports = function (CONSTRUCTOR_NAME, wrapper, common) { type: CONSTRUCTOR_NAME, collection: new NativeConstructor() }); - if (iterable != undefined) iterate(iterable, target[ADDER], { that: target, AS_ENTRIES: IS_MAP }); + if (!isNullOrUndefined(iterable)) iterate(iterable, target[ADDER], { that: target, AS_ENTRIES: IS_MAP }); }); var Prototype = Constructor.prototype; @@ -46,11 +47,11 @@ module.exports = function (CONSTRUCTOR_NAME, wrapper, common) { var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); forEach(['add', 'clear', 'delete', 'forEach', 'get', 'has', 'set', 'keys', 'values', 'entries'], function (KEY) { - var IS_ADDER = KEY == 'add' || KEY == 'set'; - if (KEY in NativePrototype && !(IS_WEAK && KEY == 'clear')) { + var IS_ADDER = KEY === 'add' || KEY === 'set'; + if (KEY in NativePrototype && !(IS_WEAK && KEY === 'clear')) { createNonEnumerableProperty(Prototype, KEY, function (a, b) { var collection = getInternalState(this).collection; - if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false; + if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY === 'get' ? undefined : false; var result = collection[KEY](a === 0 ? 0 : a, b); return IS_ADDER ? this : result; }); diff --git a/packages/core-js-pure/override/modules/es.date.to-json.js b/packages/core-js-pure/override/modules/es.date.to-json.js index 03c82a9ce426..9537c0dc007a 100644 --- a/packages/core-js-pure/override/modules/es.date.to-json.js +++ b/packages/core-js-pure/override/modules/es.date.to-json.js @@ -20,6 +20,6 @@ $({ target: 'Date', proto: true, forced: FORCED }, { var O = toObject(this); var pv = toPrimitive(O, 'number'); return typeof pv == 'number' && !isFinite(pv) ? null : - (!('toISOString' in O) && classof(O) == 'Date') ? call(toISOString, O) : O.toISOString(); + (!('toISOString' in O) && classof(O) === 'Date') ? call(toISOString, O) : O.toISOString(); } }); diff --git a/packages/core-js/internals/add-to-unscopables.js b/packages/core-js/internals/add-to-unscopables.js index 2cb0ad713948..c0908db95fbb 100644 --- a/packages/core-js/internals/add-to-unscopables.js +++ b/packages/core-js/internals/add-to-unscopables.js @@ -8,7 +8,7 @@ var ArrayPrototype = Array.prototype; // Array.prototype[@@unscopables] // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables -if (ArrayPrototype[UNSCOPABLES] == undefined) { +if (ArrayPrototype[UNSCOPABLES] === undefined) { defineProperty(ArrayPrototype, UNSCOPABLES, { configurable: true, value: create(null) diff --git a/packages/core-js/internals/array-buffer-byte-length.js b/packages/core-js/internals/array-buffer-byte-length.js index a5f269b9a84f..ae75aadea01c 100644 --- a/packages/core-js/internals/array-buffer-byte-length.js +++ b/packages/core-js/internals/array-buffer-byte-length.js @@ -8,6 +8,6 @@ var $TypeError = TypeError; // - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]). // - If IsSharedArrayBuffer(O) is true, throw a TypeError exception. module.exports = uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) { - if (classof(O) != 'ArrayBuffer') throw $TypeError('ArrayBuffer expected'); + if (classof(O) !== 'ArrayBuffer') throw $TypeError('ArrayBuffer expected'); return O.byteLength; }; diff --git a/packages/core-js/internals/array-buffer-transfer.js b/packages/core-js/internals/array-buffer-transfer.js index c148ffa1dc00..f9005149f407 100644 --- a/packages/core-js/internals/array-buffer-transfer.js +++ b/packages/core-js/internals/array-buffer-transfer.js @@ -26,7 +26,7 @@ module.exports = PROPER_TRANSFER && function (arrayBuffer, newLength, preserveRe var fixedLength = !isResizable || !isResizable(arrayBuffer); if (isDetached(arrayBuffer)) throw TypeError('ArrayBuffer is detached'); var newBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] }); - if (byteLength == newByteLength && (preserveResizability || fixedLength)) return newBuffer; + if (byteLength === newByteLength && (preserveResizability || fixedLength)) return newBuffer; if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) return slice(newBuffer, 0, newByteLength); var options = (preserveResizability && !fixedLength) && maxByteLength ? { maxByteLength: maxByteLength(newBuffer) } : undefined; var newNewBuffer = new ArrayBuffer(newByteLength, options); diff --git a/packages/core-js/internals/array-buffer.js b/packages/core-js/internals/array-buffer.js index 814c48f15ec7..4671de6061ed 100644 --- a/packages/core-js/internals/array-buffer.js +++ b/packages/core-js/internals/array-buffer.js @@ -212,7 +212,7 @@ if (!NATIVE_ARRAY_BUFFER) { new NativeArrayBuffer(); new NativeArrayBuffer(1.5); new NativeArrayBuffer(NaN); - return NativeArrayBuffer.length != 1 || INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME; + return NativeArrayBuffer.length !== 1 || INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME; })) { /* eslint-enable no-new -- required for testing */ $ArrayBuffer = function ArrayBuffer(length) { diff --git a/packages/core-js/internals/array-includes.js b/packages/core-js/internals/array-includes.js index b713c44d043a..7eac52379314 100644 --- a/packages/core-js/internals/array-includes.js +++ b/packages/core-js/internals/array-includes.js @@ -12,10 +12,10 @@ var createMethod = function (IS_INCLUDES) { var value; // Array#includes uses SameValueZero equality algorithm // eslint-disable-next-line no-self-compare -- NaN check - if (IS_INCLUDES && el != el) while (length > index) { + if (IS_INCLUDES && el !== el) while (length > index) { value = O[index++]; // eslint-disable-next-line no-self-compare -- NaN check - if (value != value) return true; + if (value !== value) return true; // Array#indexOf ignores holes, Array#includes - not } else for (;length > index; index++) { if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; diff --git a/packages/core-js/internals/array-iteration-from-last.js b/packages/core-js/internals/array-iteration-from-last.js index 8af359cbff08..ff9d511985b0 100644 --- a/packages/core-js/internals/array-iteration-from-last.js +++ b/packages/core-js/internals/array-iteration-from-last.js @@ -6,7 +6,7 @@ var lengthOfArrayLike = require('../internals/length-of-array-like'); // `Array.prototype.{ findLast, findLastIndex }` methods implementation var createMethod = function (TYPE) { - var IS_FIND_LAST_INDEX = TYPE == 1; + var IS_FIND_LAST_INDEX = TYPE === 1; return function ($this, callbackfn, that) { var O = toObject($this); var self = IndexedObject(O); diff --git a/packages/core-js/internals/array-iteration.js b/packages/core-js/internals/array-iteration.js index 718206de65b0..4abd8bd89870 100644 --- a/packages/core-js/internals/array-iteration.js +++ b/packages/core-js/internals/array-iteration.js @@ -10,13 +10,13 @@ var push = uncurryThis([].push); // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation var createMethod = function (TYPE) { - var IS_MAP = TYPE == 1; - var IS_FILTER = TYPE == 2; - var IS_SOME = TYPE == 3; - var IS_EVERY = TYPE == 4; - var IS_FIND_INDEX = TYPE == 6; - var IS_FILTER_REJECT = TYPE == 7; - var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; + var IS_MAP = TYPE === 1; + var IS_FILTER = TYPE === 2; + var IS_SOME = TYPE === 3; + var IS_EVERY = TYPE === 4; + var IS_FIND_INDEX = TYPE === 6; + var IS_FILTER_REJECT = TYPE === 7; + var NO_HOLES = TYPE === 5 || IS_FIND_INDEX; return function ($this, callbackfn, that, specificCreate) { var O = toObject($this); var self = IndexedObject(O); diff --git a/packages/core-js/internals/async-iterator-iteration.js b/packages/core-js/internals/async-iterator-iteration.js index 4651467ad8eb..684c0bf88706 100644 --- a/packages/core-js/internals/async-iterator-iteration.js +++ b/packages/core-js/internals/async-iterator-iteration.js @@ -11,10 +11,10 @@ var getIteratorDirect = require('../internals/get-iterator-direct'); var closeAsyncIteration = require('../internals/async-iterator-close'); var createMethod = function (TYPE) { - var IS_TO_ARRAY = TYPE == 0; - var IS_FOR_EACH = TYPE == 1; - var IS_EVERY = TYPE == 2; - var IS_SOME = TYPE == 3; + var IS_TO_ARRAY = TYPE === 0; + var IS_FOR_EACH = TYPE === 1; + var IS_EVERY = TYPE === 2; + var IS_SOME = TYPE === 3; return function (object, fn, target) { anObject(object); var MAPPING = fn !== undefined; diff --git a/packages/core-js/internals/caller.js b/packages/core-js/internals/caller.js index 1a35ecdf62d2..c37987e67f2b 100644 --- a/packages/core-js/internals/caller.js +++ b/packages/core-js/internals/caller.js @@ -1,6 +1,6 @@ 'use strict'; module.exports = function (methodName, numArgs) { - return numArgs == 1 ? function (object, arg) { + return numArgs === 1 ? function (object, arg) { return object[methodName](arg); } : function (object, arg1, arg2) { return object[methodName](arg1, arg2); diff --git a/packages/core-js/internals/classof.js b/packages/core-js/internals/classof.js index 9b5fd8b56638..8c0fae6ad9e4 100644 --- a/packages/core-js/internals/classof.js +++ b/packages/core-js/internals/classof.js @@ -8,7 +8,7 @@ var TO_STRING_TAG = wellKnownSymbol('toStringTag'); var $Object = Object; // ES3 wrong here -var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; +var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments'; // fallback for IE11 Script Access Denied error var tryGet = function (it, key) { @@ -26,5 +26,5 @@ module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { // builtinTag case : CORRECT_ARGUMENTS ? classofRaw(O) // ES3 arguments fallback - : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result; + : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result; }; diff --git a/packages/core-js/internals/collection-strong.js b/packages/core-js/internals/collection-strong.js index 0e6b674ed974..9312373d9cac 100644 --- a/packages/core-js/internals/collection-strong.js +++ b/packages/core-js/internals/collection-strong.js @@ -69,7 +69,7 @@ module.exports = { if (index !== 'F') return state.index[index]; // frozen object case for (entry = state.first; entry; entry = entry.next) { - if (entry.key == key) return entry; + if (entry.key === key) return entry; } }; @@ -106,8 +106,8 @@ module.exports = { entry.removed = true; if (prev) prev.next = next; if (next) next.previous = prev; - if (state.first == entry) state.first = next; - if (state.last == entry) state.last = prev; + if (state.first === entry) state.first = next; + if (state.last === entry) state.last = prev; if (DESCRIPTORS) state.size--; else that.size--; } return !!entry; @@ -194,8 +194,8 @@ module.exports = { return createIterResultObject(undefined, true); } // return step by kind - if (kind == 'keys') return createIterResultObject(entry.key, false); - if (kind == 'values') return createIterResultObject(entry.value, false); + if (kind === 'keys') return createIterResultObject(entry.key, false); + if (kind === 'values') return createIterResultObject(entry.value, false); return createIterResultObject([entry.key, entry.value], false); }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); diff --git a/packages/core-js/internals/collection.js b/packages/core-js/internals/collection.js index 31eba24fbbca..6566580d08a5 100644 --- a/packages/core-js/internals/collection.js +++ b/packages/core-js/internals/collection.js @@ -27,14 +27,14 @@ module.exports = function (CONSTRUCTOR_NAME, wrapper, common) { var fixMethod = function (KEY) { var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]); defineBuiltIn(NativePrototype, KEY, - KEY == 'add' ? function add(value) { + KEY === 'add' ? function add(value) { uncurriedNativeMethod(this, value === 0 ? 0 : value); return this; - } : KEY == 'delete' ? function (key) { + } : KEY === 'delete' ? function (key) { return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); - } : KEY == 'get' ? function get(key) { + } : KEY === 'get' ? function get(key) { return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key); - } : KEY == 'has' ? function has(key) { + } : KEY === 'has' ? function has(key) { return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); } : function set(key, value) { uncurriedNativeMethod(this, key === 0 ? 0 : key, value); @@ -57,7 +57,7 @@ module.exports = function (CONSTRUCTOR_NAME, wrapper, common) { } else if (isForced(CONSTRUCTOR_NAME, true)) { var instance = new Constructor(); // early implementations not supports chaining - var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) !== instance; // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); }); // most early implementations doesn't supports iterables, most modern - not close it correctly @@ -96,7 +96,7 @@ module.exports = function (CONSTRUCTOR_NAME, wrapper, common) { } exported[CONSTRUCTOR_NAME] = Constructor; - $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported); + $({ global: true, constructor: true, forced: Constructor !== NativeConstructor }, exported); setToStringTag(Constructor, CONSTRUCTOR_NAME); diff --git a/packages/core-js/internals/date-to-iso-string.js b/packages/core-js/internals/date-to-iso-string.js index 6e9680664b0c..199847ab7a61 100644 --- a/packages/core-js/internals/date-to-iso-string.js +++ b/packages/core-js/internals/date-to-iso-string.js @@ -21,7 +21,7 @@ var getUTCSeconds = uncurryThis(DatePrototype.getUTCSeconds); // https://tc39.es/ecma262/#sec-date.prototype.toisostring // PhantomJS / old WebKit fails here: module.exports = (fails(function () { - return nativeDateToISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z'; + return nativeDateToISOString.call(new Date(-5e13 - 1)) !== '0385-07-25T07:06:39.999Z'; }) || !fails(function () { nativeDateToISOString.call(new Date(NaN)); })) ? function toISOString() { diff --git a/packages/core-js/internals/descriptors.js b/packages/core-js/internals/descriptors.js index a12e695bad33..7d6f24ab1e4d 100644 --- a/packages/core-js/internals/descriptors.js +++ b/packages/core-js/internals/descriptors.js @@ -4,5 +4,5 @@ var fails = require('../internals/fails'); // Detect IE8's incomplete defineProperty implementation module.exports = !fails(function () { // eslint-disable-next-line es/no-object-defineproperty -- required for testing - return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7; }); diff --git a/packages/core-js/internals/engine-is-node.js b/packages/core-js/internals/engine-is-node.js index 43020b8d2492..dce72da57fca 100644 --- a/packages/core-js/internals/engine-is-node.js +++ b/packages/core-js/internals/engine-is-node.js @@ -1,4 +1,4 @@ 'use strict'; var classof = require('../internals/classof-raw'); -module.exports = typeof process != 'undefined' && classof(process) == 'process'; +module.exports = typeof process != 'undefined' && classof(process) === 'process'; diff --git a/packages/core-js/internals/fix-regexp-well-known-symbol-logic.js b/packages/core-js/internals/fix-regexp-well-known-symbol-logic.js index c0c29f837a29..47a6b33387d7 100644 --- a/packages/core-js/internals/fix-regexp-well-known-symbol-logic.js +++ b/packages/core-js/internals/fix-regexp-well-known-symbol-logic.js @@ -18,7 +18,7 @@ module.exports = function (KEY, exec, FORCED, SHAM) { // String methods call symbol-named RegEp methods var O = {}; O[SYMBOL] = function () { return 7; }; - return ''[KEY](O) != 7; + return ''[KEY](O) !== 7; }); var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () { diff --git a/packages/core-js/internals/get-json-replacer-function.js b/packages/core-js/internals/get-json-replacer-function.js index 2d7407e16a44..abfdce42b35e 100644 --- a/packages/core-js/internals/get-json-replacer-function.js +++ b/packages/core-js/internals/get-json-replacer-function.js @@ -15,7 +15,7 @@ module.exports = function (replacer) { for (var i = 0; i < rawLength; i++) { var element = replacer[i]; if (typeof element == 'string') push(keys, element); - else if (typeof element == 'number' || classof(element) == 'Number' || classof(element) == 'String') push(keys, toString(element)); + else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element)); } var keysLength = keys.length; var root = true; diff --git a/packages/core-js/internals/get-set-record.js b/packages/core-js/internals/get-set-record.js index 79f21ca7add6..18b29adf04e0 100644 --- a/packages/core-js/internals/get-set-record.js +++ b/packages/core-js/internals/get-set-record.js @@ -33,7 +33,7 @@ module.exports = function (obj) { var numSize = +obj.size; // NOTE: If size is undefined, then numSize will be NaN // eslint-disable-next-line no-self-compare -- NaN check - if (numSize != numSize) throw $TypeError(INVALID_SIZE); + if (numSize !== numSize) throw $TypeError(INVALID_SIZE); var intSize = toIntegerOrInfinity(numSize); if (intSize < 0) throw $RangeError(INVALID_SIZE); return new SetRecord( diff --git a/packages/core-js/internals/global.js b/packages/core-js/internals/global.js index 457e1c93e7cc..31fe0db00732 100644 --- a/packages/core-js/internals/global.js +++ b/packages/core-js/internals/global.js @@ -1,6 +1,6 @@ 'use strict'; var check = function (it) { - return it && it.Math == Math && it; + return it && it.Math === Math && it; }; // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 diff --git a/packages/core-js/internals/host-report-errors.js b/packages/core-js/internals/host-report-errors.js index 185c2af5417f..1f3b26a86761 100644 --- a/packages/core-js/internals/host-report-errors.js +++ b/packages/core-js/internals/host-report-errors.js @@ -2,6 +2,6 @@ module.exports = function (a, b) { try { // eslint-disable-next-line no-console -- safe - arguments.length == 1 ? console.error(a) : console.error(a, b); + arguments.length === 1 ? console.error(a) : console.error(a, b); } catch (error) { /* empty */ } }; diff --git a/packages/core-js/internals/ie8-dom-define.js b/packages/core-js/internals/ie8-dom-define.js index 0e93b82aab61..22719e88807e 100644 --- a/packages/core-js/internals/ie8-dom-define.js +++ b/packages/core-js/internals/ie8-dom-define.js @@ -8,5 +8,5 @@ module.exports = !DESCRIPTORS && !fails(function () { // eslint-disable-next-line es/no-object-defineproperty -- required for testing return Object.defineProperty(createElement('div'), 'a', { get: function () { return 7; } - }).a != 7; + }).a !== 7; }); diff --git a/packages/core-js/internals/ieee754.js b/packages/core-js/internals/ieee754.js index fbda4346237d..6fe6095a3a4f 100644 --- a/packages/core-js/internals/ieee754.js +++ b/packages/core-js/internals/ieee754.js @@ -18,9 +18,9 @@ var pack = function (number, mantissaLength, bytes) { var exponent, mantissa, c; number = abs(number); // eslint-disable-next-line no-self-compare -- NaN check - if (number != number || number === Infinity) { + if (number !== number || number === Infinity) { // eslint-disable-next-line no-self-compare -- NaN check - mantissa = number != number ? 1 : 0; + mantissa = number !== number ? 1 : 0; exponent = eMax; } else { exponent = floor(log(number) / LN2); diff --git a/packages/core-js/internals/indexed-object.js b/packages/core-js/internals/indexed-object.js index 2e3125a8c771..cea2a9a265cb 100644 --- a/packages/core-js/internals/indexed-object.js +++ b/packages/core-js/internals/indexed-object.js @@ -12,5 +12,5 @@ module.exports = fails(function () { // eslint-disable-next-line no-prototype-builtins -- safe return !$Object('z').propertyIsEnumerable(0); }) ? function (it) { - return classof(it) == 'String' ? split(it, '') : $Object(it); + return classof(it) === 'String' ? split(it, '') : $Object(it); } : $Object; diff --git a/packages/core-js/internals/is-array.js b/packages/core-js/internals/is-array.js index d7431c61523e..14ea3b01ec1c 100644 --- a/packages/core-js/internals/is-array.js +++ b/packages/core-js/internals/is-array.js @@ -5,5 +5,5 @@ var classof = require('../internals/classof-raw'); // https://tc39.es/ecma262/#sec-isarray // eslint-disable-next-line es/no-array-isarray -- safe module.exports = Array.isArray || function isArray(argument) { - return classof(argument) == 'Array'; + return classof(argument) === 'Array'; }; diff --git a/packages/core-js/internals/is-big-int-array.js b/packages/core-js/internals/is-big-int-array.js index f16af79ccf65..7599b57efdea 100644 --- a/packages/core-js/internals/is-big-int-array.js +++ b/packages/core-js/internals/is-big-int-array.js @@ -3,5 +3,5 @@ var classof = require('../internals/classof'); module.exports = function (it) { var klass = classof(it); - return klass == 'BigInt64Array' || klass == 'BigUint64Array'; + return klass === 'BigInt64Array' || klass === 'BigUint64Array'; }; diff --git a/packages/core-js/internals/is-forced.js b/packages/core-js/internals/is-forced.js index 560221025baa..acd8cc45f1b1 100644 --- a/packages/core-js/internals/is-forced.js +++ b/packages/core-js/internals/is-forced.js @@ -6,8 +6,8 @@ var replacement = /#|\.prototype\./; var isForced = function (feature, detection) { var value = data[normalize(feature)]; - return value == POLYFILL ? true - : value == NATIVE ? false + return value === POLYFILL ? true + : value === NATIVE ? false : isCallable(detection) ? fails(detection) : !!detection; }; diff --git a/packages/core-js/internals/is-regexp.js b/packages/core-js/internals/is-regexp.js index a29556d2dbbe..a4b287a00d64 100644 --- a/packages/core-js/internals/is-regexp.js +++ b/packages/core-js/internals/is-regexp.js @@ -9,5 +9,5 @@ var MATCH = wellKnownSymbol('match'); // https://tc39.es/ecma262/#sec-isregexp module.exports = function (it) { var isRegExp; - return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp'); + return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp'); }; diff --git a/packages/core-js/internals/iterator-define.js b/packages/core-js/internals/iterator-define.js index 1411737c5944..b59a7f779265 100644 --- a/packages/core-js/internals/iterator-define.js +++ b/packages/core-js/internals/iterator-define.js @@ -45,7 +45,7 @@ module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, I || IterablePrototype['@@iterator'] || DEFAULT && IterablePrototype[DEFAULT]; var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); - var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; + var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; var CurrentIteratorPrototype, methods, KEY; // fix native @@ -66,7 +66,7 @@ module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, I } // fix Array.prototype.{ values, @@iterator }.name in V8 / FF - if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { + if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) { if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) { createNonEnumerableProperty(IterablePrototype, 'name', VALUES); } else { diff --git a/packages/core-js/internals/math-expm1.js b/packages/core-js/internals/math-expm1.js index 9eccb6a48e48..721edfec6b68 100644 --- a/packages/core-js/internals/math-expm1.js +++ b/packages/core-js/internals/math-expm1.js @@ -9,8 +9,8 @@ module.exports = (!$expm1 // Old FF bug || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168 // Tor Browser bug - || $expm1(-2e-17) != -2e-17 + || $expm1(-2e-17) !== -2e-17 ) ? function expm1(x) { var n = +x; - return n == 0 ? n : n > -1e-6 && n < 1e-6 ? n + n * n / 2 : exp(n) - 1; + return n === 0 ? n : n > -1e-6 && n < 1e-6 ? n + n * n / 2 : exp(n) - 1; } : $expm1; diff --git a/packages/core-js/internals/math-fround.js b/packages/core-js/internals/math-fround.js index fad62f2ff8e8..b5e35d3cfb2b 100644 --- a/packages/core-js/internals/math-fround.js +++ b/packages/core-js/internals/math-fround.js @@ -24,6 +24,6 @@ module.exports = Math.fround || function fround(x) { a = (1 + EPSILON32 / EPSILON) * $abs; result = a - (a - $abs); // eslint-disable-next-line no-self-compare -- NaN check - if (result > MAX32 || result != result) return $sign * Infinity; + if (result > MAX32 || result !== result) return $sign * Infinity; return $sign * result; }; diff --git a/packages/core-js/internals/math-scale.js b/packages/core-js/internals/math-scale.js index 0eb62165827e..6a9087d94232 100644 --- a/packages/core-js/internals/math-scale.js +++ b/packages/core-js/internals/math-scale.js @@ -8,7 +8,7 @@ module.exports = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) var nOutLow = +outLow; var nOutHigh = +outHigh; // eslint-disable-next-line no-self-compare -- NaN check - if (nx != nx || nInLow != nInLow || nInHigh != nInHigh || nOutLow != nOutLow || nOutHigh != nOutHigh) return NaN; + if (nx !== nx || nInLow !== nInLow || nInHigh !== nInHigh || nOutLow !== nOutLow || nOutHigh !== nOutHigh) return NaN; if (nx === Infinity || nx === -Infinity) return nx; return (nx - nInLow) * (nOutHigh - nOutLow) / (nInHigh - nInLow) + nOutLow; }; diff --git a/packages/core-js/internals/math-sign.js b/packages/core-js/internals/math-sign.js index 65c83ab798f0..d59578e8dd0d 100644 --- a/packages/core-js/internals/math-sign.js +++ b/packages/core-js/internals/math-sign.js @@ -5,5 +5,5 @@ module.exports = Math.sign || function sign(x) { var n = +x; // eslint-disable-next-line no-self-compare -- NaN check - return n == 0 || n != n ? n : n < 0 ? -1 : 1; + return n === 0 || n !== n ? n : n < 0 ? -1 : 1; }; diff --git a/packages/core-js/internals/number-parse-float.js b/packages/core-js/internals/number-parse-float.js index 0dee63bfd288..f46ab4360137 100644 --- a/packages/core-js/internals/number-parse-float.js +++ b/packages/core-js/internals/number-parse-float.js @@ -19,5 +19,5 @@ var FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity module.exports = FORCED ? function parseFloat(string) { var trimmedString = trim(toString(string)); var result = $parseFloat(trimmedString); - return result === 0 && charAt(trimmedString, 0) == '-' ? -0 : result; + return result === 0 && charAt(trimmedString, 0) === '-' ? -0 : result; } : $parseFloat; diff --git a/packages/core-js/internals/numeric-range-iterator.js b/packages/core-js/internals/numeric-range-iterator.js index 10eef6a256a2..4aae410ea87b 100644 --- a/packages/core-js/internals/numeric-range-iterator.js +++ b/packages/core-js/internals/numeric-range-iterator.js @@ -47,7 +47,7 @@ var $RangeIterator = createIteratorConstructor(function NumericRangeIterator(sta throw $RangeError(INCORRECT_RANGE); } // eslint-disable-next-line no-self-compare -- NaN check - var hitsEnd = start != start || end != end || step != step || (end > start) !== (step > zero); + var hitsEnd = start !== start || end !== end || step !== step || (end > start) !== (step > zero); setInternalState(this, { type: NUMERIC_RANGE_ITERATOR, start: start, diff --git a/packages/core-js/internals/object-assign.js b/packages/core-js/internals/object-assign.js index 91076d066beb..de1c6e2686b0 100644 --- a/packages/core-js/internals/object-assign.js +++ b/packages/core-js/internals/object-assign.js @@ -36,7 +36,7 @@ module.exports = !$assign || fails(function () { var alphabet = 'abcdefghijklmnopqrst'; A[symbol] = 7; alphabet.split('').forEach(function (chr) { B[chr] = chr; }); - return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet; + return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet; }) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` var T = toObject(target); var argumentsLength = arguments.length; diff --git a/packages/core-js/internals/object-get-own-property-names-external.js b/packages/core-js/internals/object-get-own-property-names-external.js index 24f5afbe1449..d0187ee25992 100644 --- a/packages/core-js/internals/object-get-own-property-names-external.js +++ b/packages/core-js/internals/object-get-own-property-names-external.js @@ -18,7 +18,7 @@ var getWindowNames = function (it) { // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window module.exports.f = function getOwnPropertyNames(it) { - return windowNames && classof(it) == 'Window' + return windowNames && classof(it) === 'Window' ? getWindowNames(it) : $getOwnPropertyNames(toIndexedObject(it)); }; diff --git a/packages/core-js/internals/object-is-extensible.js b/packages/core-js/internals/object-is-extensible.js index fa57ffd0837e..1f3d6288e5d3 100644 --- a/packages/core-js/internals/object-is-extensible.js +++ b/packages/core-js/internals/object-is-extensible.js @@ -12,6 +12,6 @@ var FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); }); // https://tc39.es/ecma262/#sec-object.isextensible module.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) { if (!isObject(it)) return false; - if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return false; return $isExtensible ? $isExtensible(it) : true; } : $isExtensible; diff --git a/packages/core-js/internals/parse-json-string.js b/packages/core-js/internals/parse-json-string.js index 3f077f16f627..8a8055cd7884 100644 --- a/packages/core-js/internals/parse-json-string.js +++ b/packages/core-js/internals/parse-json-string.js @@ -29,19 +29,19 @@ module.exports = function (source, i) { var value = ''; while (i < source.length) { var chr = at(source, i); - if (chr == '\\') { + if (chr === '\\') { var twoChars = slice(source, i, i + 2); if (hasOwn(codePoints, twoChars)) { value += codePoints[twoChars]; i += 2; - } else if (twoChars == '\\u') { + } else if (twoChars === '\\u') { i += 2; var fourHexDigits = slice(source, i, i + 4); if (!exec(IS_4_HEX_DIGITS, fourHexDigits)) throw $SyntaxError('Bad Unicode escape at: ' + i); value += fromCharCode($parseInt(fourHexDigits, 16)); i += 4; } else throw $SyntaxError('Unknown escape sequence: "' + twoChars + '"'); - } else if (chr == '"') { + } else if (chr === '"') { unterminated = false; i++; break; diff --git a/packages/core-js/internals/same-value-zero.js b/packages/core-js/internals/same-value-zero.js index 0915f32f03ed..be238571a52a 100644 --- a/packages/core-js/internals/same-value-zero.js +++ b/packages/core-js/internals/same-value-zero.js @@ -3,5 +3,5 @@ // https://tc39.es/ecma262/#sec-samevaluezero module.exports = function (x, y) { // eslint-disable-next-line no-self-compare -- NaN check - return x === y || x != x && y != y; + return x === y || x !== x && y !== y; }; diff --git a/packages/core-js/internals/same-value.js b/packages/core-js/internals/same-value.js index 72661ccd4942..7b0d1dd361ef 100644 --- a/packages/core-js/internals/same-value.js +++ b/packages/core-js/internals/same-value.js @@ -4,5 +4,5 @@ // eslint-disable-next-line es/no-object-is -- safe module.exports = Object.is || function is(x, y) { // eslint-disable-next-line no-self-compare -- NaN check - return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y; + return x === y ? x !== 0 || 1 / x === 1 / y : x !== x && y !== y; }; diff --git a/packages/core-js/internals/schedulers-fix.js b/packages/core-js/internals/schedulers-fix.js index 2d38413e9499..65ed89c6ef3f 100644 --- a/packages/core-js/internals/schedulers-fix.js +++ b/packages/core-js/internals/schedulers-fix.js @@ -11,7 +11,7 @@ var Function = global.Function; // dirty IE9- and Bun 0.3.0- checks var WRAP = /MSIE .\./.test(USER_AGENT) || ENGINE_IS_BUN && (function () { var version = global.Bun.version.split('.'); - return version.length < 3 || version[0] == 0 && (version[1] < 3 || version[1] == 3 && version[2] == 0); + return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0'); })(); // IE9- / Bun 0.3.0- setTimeout / setInterval / setImmediate additional parameters fix diff --git a/packages/core-js/internals/string-pad.js b/packages/core-js/internals/string-pad.js index d978d5b2341d..419e904d65a3 100644 --- a/packages/core-js/internals/string-pad.js +++ b/packages/core-js/internals/string-pad.js @@ -18,7 +18,7 @@ var createMethod = function (IS_END) { var stringLength = S.length; var fillStr = fillString === undefined ? ' ' : toString(fillString); var fillLen, stringFiller; - if (intMaxLength <= stringLength || fillStr == '') return S; + if (intMaxLength <= stringLength || fillStr === '') return S; fillLen = intMaxLength - stringLength; stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length)); if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen); diff --git a/packages/core-js/internals/string-punycode-to-ascii.js b/packages/core-js/internals/string-punycode-to-ascii.js index d0e26501609e..6ebdf7805412 100644 --- a/packages/core-js/internals/string-punycode-to-ascii.js +++ b/packages/core-js/internals/string-punycode-to-ascii.js @@ -43,7 +43,7 @@ var ucs2decode = function (string) { if (value >= 0xD800 && value <= 0xDBFF && counter < length) { // It's a high surrogate, and there is a next character. var extra = charCodeAt(string, counter++); - if ((extra & 0xFC00) == 0xDC00) { // Low surrogate. + if ((extra & 0xFC00) === 0xDC00) { // Low surrogate. push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); } else { // It's an unmatched surrogate; only append this code unit, in case the @@ -142,7 +142,7 @@ var encode = function (input) { if (currentValue < n && ++delta > maxInt) { throw $RangeError(OVERFLOW_ERROR); } - if (currentValue == n) { + if (currentValue === n) { // Represent delta as a generalized variable-length integer. var q = delta; var k = base; @@ -157,7 +157,7 @@ var encode = function (input) { } push(output, fromCharCode(digitToBasic(q))); - bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength); delta = 0; handledCPCount++; } diff --git a/packages/core-js/internals/string-repeat.js b/packages/core-js/internals/string-repeat.js index 3f7c08f72b11..c8ae3ed42cf1 100644 --- a/packages/core-js/internals/string-repeat.js +++ b/packages/core-js/internals/string-repeat.js @@ -11,7 +11,7 @@ module.exports = function repeat(count) { var str = toString(requireObjectCoercible(this)); var result = ''; var n = toIntegerOrInfinity(count); - if (n < 0 || n == Infinity) throw $RangeError('Wrong number of repetitions'); + if (n < 0 || n === Infinity) throw $RangeError('Wrong number of repetitions'); for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str; return result; }; diff --git a/packages/core-js/internals/structured-clone-proper-transfer.js b/packages/core-js/internals/structured-clone-proper-transfer.js index 156ba91008c2..d2dafb512122 100644 --- a/packages/core-js/internals/structured-clone-proper-transfer.js +++ b/packages/core-js/internals/structured-clone-proper-transfer.js @@ -14,5 +14,5 @@ module.exports = !!structuredClone && !fails(function () { if ((IS_DENO && V8 > 92) || (IS_NODE && V8 > 94) || (IS_BROWSER && V8 > 97)) return false; var buffer = new ArrayBuffer(8); var clone = structuredClone(buffer, { transfer: [buffer] }); - return buffer.byteLength != 0 || clone.byteLength != 8; + return buffer.byteLength !== 0 || clone.byteLength !== 8; }); diff --git a/packages/core-js/internals/symbol-is-well-known.js b/packages/core-js/internals/symbol-is-well-known.js index 691b70991f96..50ec53ebf5b2 100644 --- a/packages/core-js/internals/symbol-is-well-known.js +++ b/packages/core-js/internals/symbol-is-well-known.js @@ -27,6 +27,7 @@ module.exports = function isWellKnownSymbol(value) { try { var symbol = thisSymbolValue(value); for (var j = 0, keys = getOwnPropertyNames(WellKnownSymbolsStore), keysLength = keys.length; j < keysLength; j++) { + // eslint-disable-next-line eqeqeq -- polyfilled symbols case if (WellKnownSymbolsStore[keys[j]] == symbol) return true; } } catch (error) { /* empty */ } diff --git a/packages/core-js/internals/typed-array-constructor.js b/packages/core-js/internals/typed-array-constructor.js index 4a20e7e28c2f..13c1f85b25f4 100644 --- a/packages/core-js/internals/typed-array-constructor.js +++ b/packages/core-js/internals/typed-array-constructor.js @@ -70,7 +70,7 @@ var addGetter = function (it, key) { var isArrayBuffer = function (it) { var klass; - return isPrototypeOf(ArrayBufferPrototype, it) || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer'; + return isPrototypeOf(ArrayBufferPrototype, it) || (klass = classof(it)) === 'ArrayBuffer' || klass === 'SharedArrayBuffer'; }; var isTypedArrayIndex = function (target, key) { @@ -226,7 +226,7 @@ if (DESCRIPTORS) { createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME); } - var FORCED = TypedArrayConstructor != NativeTypedArrayConstructor; + var FORCED = TypedArrayConstructor !== NativeTypedArrayConstructor; exported[CONSTRUCTOR_NAME] = TypedArrayConstructor; diff --git a/packages/core-js/internals/v8-prototype-define-bug.js b/packages/core-js/internals/v8-prototype-define-bug.js index 36ee41051486..278d2bf2f580 100644 --- a/packages/core-js/internals/v8-prototype-define-bug.js +++ b/packages/core-js/internals/v8-prototype-define-bug.js @@ -9,5 +9,5 @@ module.exports = DESCRIPTORS && fails(function () { return Object.defineProperty(function () { /* empty */ }, 'prototype', { value: 42, writable: false - }).prototype != 42; + }).prototype !== 42; }); diff --git a/packages/core-js/modules/es.array.for-each.js b/packages/core-js/modules/es.array.for-each.js index 55934d03017f..6f45b51d740b 100644 --- a/packages/core-js/modules/es.array.for-each.js +++ b/packages/core-js/modules/es.array.for-each.js @@ -5,6 +5,6 @@ var forEach = require('../internals/array-for-each'); // `Array.prototype.forEach` method // https://tc39.es/ecma262/#sec-array.prototype.foreach // eslint-disable-next-line es/no-array-prototype-foreach -- safe -$({ target: 'Array', proto: true, forced: [].forEach != forEach }, { +$({ target: 'Array', proto: true, forced: [].forEach !== forEach }, { forEach: forEach }); diff --git a/packages/core-js/modules/es.array.iterator.js b/packages/core-js/modules/es.array.iterator.js index 1f68a06c6ae0..0a9e09054edd 100644 --- a/packages/core-js/modules/es.array.iterator.js +++ b/packages/core-js/modules/es.array.iterator.js @@ -41,9 +41,10 @@ module.exports = defineIterator(Array, 'Array', function (iterated, kind) { state.target = undefined; return createIterResultObject(undefined, true); } - if (kind == 'keys') return createIterResultObject(index, false); - if (kind == 'values') return createIterResultObject(target[index], false); - return createIterResultObject([index, target[index]], false); + switch (kind) { + case 'keys': return createIterResultObject(index, false); + case 'values': return createIterResultObject(target[index], false); + } return createIterResultObject([index, target[index]], false); }, 'values'); // argumentsList[@@iterator] is %ArrayProto_values% diff --git a/packages/core-js/modules/es.array.join.js b/packages/core-js/modules/es.array.join.js index ee3cb9e6d130..9f2ebf2ad8cb 100644 --- a/packages/core-js/modules/es.array.join.js +++ b/packages/core-js/modules/es.array.join.js @@ -7,7 +7,7 @@ var arrayMethodIsStrict = require('../internals/array-method-is-strict'); var nativeJoin = uncurryThis([].join); -var ES3_STRINGS = IndexedObject != Object; +var ES3_STRINGS = IndexedObject !== Object; var FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ','); // `Array.prototype.join` method diff --git a/packages/core-js/modules/es.date.to-string.js b/packages/core-js/modules/es.date.to-string.js index e5fdae0c8381..32e0d52ffc8a 100644 --- a/packages/core-js/modules/es.date.to-string.js +++ b/packages/core-js/modules/es.date.to-string.js @@ -11,7 +11,7 @@ var thisTimeValue = uncurryThis(DatePrototype.getTime); // `Date.prototype.toString` method // https://tc39.es/ecma262/#sec-date.prototype.tostring -if (String(new Date(NaN)) != INVALID_DATE) { +if (String(new Date(NaN)) !== INVALID_DATE) { defineBuiltIn(DatePrototype, TO_STRING, function toString() { var value = thisTimeValue(this); // eslint-disable-next-line no-self-compare -- NaN check diff --git a/packages/core-js/modules/es.json.stringify.js b/packages/core-js/modules/es.json.stringify.js index 275ef3479932..7d73aa5a00f2 100644 --- a/packages/core-js/modules/es.json.stringify.js +++ b/packages/core-js/modules/es.json.stringify.js @@ -26,11 +26,11 @@ var hi = /^[\uDC00-\uDFFF]$/; var WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () { var symbol = getBuiltIn('Symbol')(); // MS Edge converts symbol values to JSON as {} - return $stringify([symbol]) != '[null]' + return $stringify([symbol]) !== '[null]' // WebKit converts symbol values to JSON as null - || $stringify({ a: symbol }) != '{}' + || $stringify({ a: symbol }) !== '{}' // V8 throws on boxed symbols - || $stringify(Object(symbol)) != '{}'; + || $stringify(Object(symbol)) !== '{}'; }); // https://github.com/tc39/proposal-well-formed-stringify diff --git a/packages/core-js/modules/es.math.acosh.js b/packages/core-js/modules/es.math.acosh.js index 555f951dabce..d49bb772e938 100644 --- a/packages/core-js/modules/es.math.acosh.js +++ b/packages/core-js/modules/es.math.acosh.js @@ -10,9 +10,9 @@ var LN2 = Math.LN2; var FORCED = !$acosh // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509 - || Math.floor($acosh(Number.MAX_VALUE)) != 710 + || Math.floor($acosh(Number.MAX_VALUE)) !== 710 // Tor Browser bug: Math.acosh(Infinity) -> NaN - || $acosh(Infinity) != Infinity; + || $acosh(Infinity) !== Infinity; // `Math.acosh` method // https://tc39.es/ecma262/#sec-math.acosh diff --git a/packages/core-js/modules/es.math.asinh.js b/packages/core-js/modules/es.math.asinh.js index df5cddad0141..0069392e8bad 100644 --- a/packages/core-js/modules/es.math.asinh.js +++ b/packages/core-js/modules/es.math.asinh.js @@ -8,7 +8,7 @@ var sqrt = Math.sqrt; function asinh(x) { var n = +x; - return !isFinite(n) || n == 0 ? n : n < 0 ? -asinh(-n) : log(n + sqrt(n * n + 1)); + return !isFinite(n) || n === 0 ? n : n < 0 ? -asinh(-n) : log(n + sqrt(n * n + 1)); } var FORCED = !($asinh && 1 / $asinh(0) > 0); diff --git a/packages/core-js/modules/es.math.atanh.js b/packages/core-js/modules/es.math.atanh.js index cffa5f158c40..125a1b7a24ce 100644 --- a/packages/core-js/modules/es.math.atanh.js +++ b/packages/core-js/modules/es.math.atanh.js @@ -13,6 +13,6 @@ var FORCED = !($atanh && 1 / $atanh(-0) < 0); $({ target: 'Math', stat: true, forced: FORCED }, { atanh: function atanh(x) { var n = +x; - return n == 0 ? n : log((1 + n) / (1 - n)) / 2; + return n === 0 ? n : log((1 + n) / (1 - n)) / 2; } }); diff --git a/packages/core-js/modules/es.math.expm1.js b/packages/core-js/modules/es.math.expm1.js index 1690209c967e..cc9f1747a12c 100644 --- a/packages/core-js/modules/es.math.expm1.js +++ b/packages/core-js/modules/es.math.expm1.js @@ -5,4 +5,4 @@ var expm1 = require('../internals/math-expm1'); // `Math.expm1` method // https://tc39.es/ecma262/#sec-math.expm1 // eslint-disable-next-line es/no-math-expm1 -- required for testing -$({ target: 'Math', stat: true, forced: expm1 != Math.expm1 }, { expm1: expm1 }); +$({ target: 'Math', stat: true, forced: expm1 !== Math.expm1 }, { expm1: expm1 }); diff --git a/packages/core-js/modules/es.math.imul.js b/packages/core-js/modules/es.math.imul.js index 5c3c8af9f800..23e73b64fc00 100644 --- a/packages/core-js/modules/es.math.imul.js +++ b/packages/core-js/modules/es.math.imul.js @@ -6,7 +6,7 @@ var fails = require('../internals/fails'); var $imul = Math.imul; var FORCED = fails(function () { - return $imul(0xFFFFFFFF, 5) != -5 || $imul.length != 2; + return $imul(0xFFFFFFFF, 5) !== -5 || $imul.length !== 2; }); // `Math.imul` method diff --git a/packages/core-js/modules/es.math.sinh.js b/packages/core-js/modules/es.math.sinh.js index 25cf0aace0f2..6e80ba07e241 100644 --- a/packages/core-js/modules/es.math.sinh.js +++ b/packages/core-js/modules/es.math.sinh.js @@ -9,7 +9,7 @@ var E = Math.E; var FORCED = fails(function () { // eslint-disable-next-line es/no-math-sinh -- required for testing - return Math.sinh(-2e-17) != -2e-17; + return Math.sinh(-2e-17) !== -2e-17; }); // `Math.sinh` method diff --git a/packages/core-js/modules/es.math.tanh.js b/packages/core-js/modules/es.math.tanh.js index d37403e532f2..a93da241f8c1 100644 --- a/packages/core-js/modules/es.math.tanh.js +++ b/packages/core-js/modules/es.math.tanh.js @@ -11,6 +11,6 @@ $({ target: 'Math', stat: true }, { var n = +x; var a = expm1(n); var b = expm1(-n); - return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(n) + exp(-n)); + return a === Infinity ? 1 : b === Infinity ? -1 : (a - b) / (exp(n) + exp(-n)); } }); diff --git a/packages/core-js/modules/es.number.is-nan.js b/packages/core-js/modules/es.number.is-nan.js index 39b5dceecdbf..d12d708bca2e 100644 --- a/packages/core-js/modules/es.number.is-nan.js +++ b/packages/core-js/modules/es.number.is-nan.js @@ -6,6 +6,6 @@ var $ = require('../internals/export'); $({ target: 'Number', stat: true }, { isNaN: function isNaN(number) { // eslint-disable-next-line no-self-compare -- NaN check - return number != number; + return number !== number; } }); diff --git a/packages/core-js/modules/es.number.parse-float.js b/packages/core-js/modules/es.number.parse-float.js index 20d551dfc382..754bed778b99 100644 --- a/packages/core-js/modules/es.number.parse-float.js +++ b/packages/core-js/modules/es.number.parse-float.js @@ -5,6 +5,6 @@ var parseFloat = require('../internals/number-parse-float'); // `Number.parseFloat` method // https://tc39.es/ecma262/#sec-number.parseFloat // eslint-disable-next-line es/no-number-parsefloat -- required for testing -$({ target: 'Number', stat: true, forced: Number.parseFloat != parseFloat }, { +$({ target: 'Number', stat: true, forced: Number.parseFloat !== parseFloat }, { parseFloat: parseFloat }); diff --git a/packages/core-js/modules/es.number.parse-int.js b/packages/core-js/modules/es.number.parse-int.js index 83274e74f9bf..9cd681382144 100644 --- a/packages/core-js/modules/es.number.parse-int.js +++ b/packages/core-js/modules/es.number.parse-int.js @@ -5,6 +5,6 @@ var parseInt = require('../internals/number-parse-int'); // `Number.parseInt` method // https://tc39.es/ecma262/#sec-number.parseint // eslint-disable-next-line es/no-number-parseint -- required for testing -$({ target: 'Number', stat: true, forced: Number.parseInt != parseInt }, { +$({ target: 'Number', stat: true, forced: Number.parseInt !== parseInt }, { parseInt: parseInt }); diff --git a/packages/core-js/modules/es.number.to-fixed.js b/packages/core-js/modules/es.number.to-fixed.js index 5930e48c3c03..c7b7c99a5ab1 100644 --- a/packages/core-js/modules/es.number.to-fixed.js +++ b/packages/core-js/modules/es.number.to-fixed.js @@ -85,7 +85,7 @@ $({ target: 'Number', proto: true, forced: FORCED }, { // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation if (fractDigits < 0 || fractDigits > 20) throw $RangeError('Incorrect fraction digits'); // eslint-disable-next-line no-self-compare -- NaN check - if (number != number) return 'NaN'; + if (number !== number) return 'NaN'; if (number <= -1e21 || number >= 1e21) return $String(number); if (number < 0) { sign = '-'; diff --git a/packages/core-js/modules/es.object.is-frozen.js b/packages/core-js/modules/es.object.is-frozen.js index 8fdd6f05da1c..4cd6ddb2a92b 100644 --- a/packages/core-js/modules/es.object.is-frozen.js +++ b/packages/core-js/modules/es.object.is-frozen.js @@ -15,7 +15,7 @@ var FORCED = ARRAY_BUFFER_NON_EXTENSIBLE || fails(function () { $isFrozen(1); }) $({ target: 'Object', stat: true, forced: FORCED }, { isFrozen: function isFrozen(it) { if (!isObject(it)) return true; - if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return true; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true; return $isFrozen ? $isFrozen(it) : false; } }); diff --git a/packages/core-js/modules/es.object.is-sealed.js b/packages/core-js/modules/es.object.is-sealed.js index 72e2de79723b..cf3a787ff374 100644 --- a/packages/core-js/modules/es.object.is-sealed.js +++ b/packages/core-js/modules/es.object.is-sealed.js @@ -15,7 +15,7 @@ var FORCED = ARRAY_BUFFER_NON_EXTENSIBLE || fails(function () { $isSealed(1); }) $({ target: 'Object', stat: true, forced: FORCED }, { isSealed: function isSealed(it) { if (!isObject(it)) return true; - if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return true; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true; return $isSealed ? $isSealed(it) : false; } }); diff --git a/packages/core-js/modules/es.parse-float.js b/packages/core-js/modules/es.parse-float.js index bd1ec523550c..109e0751ea91 100644 --- a/packages/core-js/modules/es.parse-float.js +++ b/packages/core-js/modules/es.parse-float.js @@ -4,6 +4,6 @@ var $parseFloat = require('../internals/number-parse-float'); // `parseFloat` method // https://tc39.es/ecma262/#sec-parsefloat-string -$({ global: true, forced: parseFloat != $parseFloat }, { +$({ global: true, forced: parseFloat !== $parseFloat }, { parseFloat: $parseFloat }); diff --git a/packages/core-js/modules/es.parse-int.js b/packages/core-js/modules/es.parse-int.js index e9d6d7291672..7422a73ed28c 100644 --- a/packages/core-js/modules/es.parse-int.js +++ b/packages/core-js/modules/es.parse-int.js @@ -4,6 +4,6 @@ var $parseInt = require('../internals/number-parse-int'); // `parseInt` method // https://tc39.es/ecma262/#sec-parseint-string-radix -$({ global: true, forced: parseInt != $parseInt }, { +$({ global: true, forced: parseInt !== $parseInt }, { parseInt: $parseInt }); diff --git a/packages/core-js/modules/es.promise.constructor.js b/packages/core-js/modules/es.promise.constructor.js index e82feb3a5978..3468f7cfcc20 100644 --- a/packages/core-js/modules/es.promise.constructor.js +++ b/packages/core-js/modules/es.promise.constructor.js @@ -57,7 +57,7 @@ var isThenable = function (it) { var callReaction = function (reaction, state) { var value = state.value; - var ok = state.state == FULFILLED; + var ok = state.state === FULFILLED; var handler = ok ? reaction.ok : reaction.fail; var resolve = reaction.resolve; var reject = reaction.reject; @@ -233,7 +233,7 @@ if (FORCED_PROMISE_CONSTRUCTOR) { reaction.ok = isCallable(onFulfilled) ? onFulfilled : true; reaction.fail = isCallable(onRejected) && onRejected; reaction.domain = IS_NODE ? process.domain : undefined; - if (state.state == PENDING) state.reactions.add(reaction); + if (state.state === PENDING) state.reactions.add(reaction); else microtask(function () { callReaction(reaction, state); }); diff --git a/packages/core-js/modules/es.reflect.construct.js b/packages/core-js/modules/es.reflect.construct.js index 632b0efb77b8..d2283e396621 100644 --- a/packages/core-js/modules/es.reflect.construct.js +++ b/packages/core-js/modules/es.reflect.construct.js @@ -34,7 +34,7 @@ $({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, { anObject(args); var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]); if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget); - if (Target == newTarget) { + if (Target === newTarget) { // w/o altered newTarget, optimization for 0-4 arguments switch (args.length) { case 0: return new Target(); diff --git a/packages/core-js/modules/es.regexp.constructor.js b/packages/core-js/modules/es.regexp.constructor.js index 2f4bc1379923..1f1ce0dc74aa 100644 --- a/packages/core-js/modules/es.regexp.constructor.js +++ b/packages/core-js/modules/es.regexp.constructor.js @@ -45,7 +45,7 @@ var BASE_FORCED = DESCRIPTORS && (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () { re2[MATCH] = false; // RegExp constructor can alter flags and IsRegExp works correct with @@match - return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i'; + return NativeRegExp(re1) !== re1 || NativeRegExp(re2) === re2 || String(NativeRegExp(re1, 'i')) !== '/a/i'; })); var handleDotAll = function (string) { diff --git a/packages/core-js/modules/es.regexp.to-string.js b/packages/core-js/modules/es.regexp.to-string.js index 66f701b5a0b5..763b7e7d3eb9 100644 --- a/packages/core-js/modules/es.regexp.to-string.js +++ b/packages/core-js/modules/es.regexp.to-string.js @@ -10,9 +10,9 @@ var TO_STRING = 'toString'; var RegExpPrototype = RegExp.prototype; var nativeToString = RegExpPrototype[TO_STRING]; -var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; }); +var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; }); // FF44- RegExp#toString has a wrong name -var INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name != TO_STRING; +var INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING; // `RegExp.prototype.toString` method // https://tc39.es/ecma262/#sec-regexp.prototype.tostring diff --git a/packages/core-js/modules/es.string.from-code-point.js b/packages/core-js/modules/es.string.from-code-point.js index 73e87a8135a5..9d7bfa44fa6d 100644 --- a/packages/core-js/modules/es.string.from-code-point.js +++ b/packages/core-js/modules/es.string.from-code-point.js @@ -10,7 +10,7 @@ var $fromCodePoint = String.fromCodePoint; var join = uncurryThis([].join); // length should be 1, old FF problem -var INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length != 1; +var INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length !== 1; // `String.fromCodePoint` method // https://tc39.es/ecma262/#sec-string.fromcodepoint diff --git a/packages/core-js/modules/es.string.is-well-formed.js b/packages/core-js/modules/es.string.is-well-formed.js index 7c77f380d414..5fbdfa8101f8 100644 --- a/packages/core-js/modules/es.string.is-well-formed.js +++ b/packages/core-js/modules/es.string.is-well-formed.js @@ -15,9 +15,9 @@ $({ target: 'String', proto: true }, { for (var i = 0; i < length; i++) { var charCode = charCodeAt(S, i); // single UTF-16 code unit - if ((charCode & 0xF800) != 0xD800) continue; + if ((charCode & 0xF800) !== 0xD800) continue; // unpaired surrogate - if (charCode >= 0xDC00 || ++i >= length || (charCodeAt(S, i) & 0xFC00) != 0xDC00) return false; + if (charCode >= 0xDC00 || ++i >= length || (charCodeAt(S, i) & 0xFC00) !== 0xDC00) return false; } return true; } }); diff --git a/packages/core-js/modules/es.string.match-all.js b/packages/core-js/modules/es.string.match-all.js index a01381b40eb3..3584dbfb19ef 100644 --- a/packages/core-js/modules/es.string.match-all.js +++ b/packages/core-js/modules/es.string.match-all.js @@ -90,7 +90,7 @@ $({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, { } if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp); matcher = getMethod(regexp, MATCH_ALL); - if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll; + if (matcher === undefined && IS_PURE && classof(regexp) === 'RegExp') matcher = $matchAll; if (matcher) return call(matcher, regexp, O); } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp); S = toString(O); diff --git a/packages/core-js/modules/es.string.split.js b/packages/core-js/modules/es.string.split.js index 2d51c61dea25..3c2a9142551d 100644 --- a/packages/core-js/modules/es.string.split.js +++ b/packages/core-js/modules/es.string.split.js @@ -41,11 +41,11 @@ var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () { fixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) { var internalSplit; if ( - 'abbc'.split(/(b)*/)[1] == 'c' || + 'abbc'.split(/(b)*/)[1] === 'c' || // eslint-disable-next-line regexp/no-empty-group -- required for testing - 'test'.split(/(?:)/, -1).length != 4 || - 'ab'.split(/(?:ab)*/).length != 2 || - '.'.split(/(.?)(.?)/).length != 4 || + 'test'.split(/(?:)/, -1).length !== 4 || + 'ab'.split(/(?:ab)*/).length !== 2 || + '.'.split(/(.?)(.?)/).length !== 4 || // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing '.'.split(/()()/).length > 1 || ''.split(/.?/).length diff --git a/packages/core-js/modules/es.string.to-well-formed.js b/packages/core-js/modules/es.string.to-well-formed.js index 8a7a46b02389..58ea953eade7 100644 --- a/packages/core-js/modules/es.string.to-well-formed.js +++ b/packages/core-js/modules/es.string.to-well-formed.js @@ -30,9 +30,9 @@ $({ target: 'String', proto: true, forced: TO_STRING_CONVERSION_BUG }, { for (var i = 0; i < length; i++) { var charCode = charCodeAt(S, i); // single UTF-16 code unit - if ((charCode & 0xF800) != 0xD800) result[i] = charAt(S, i); + if ((charCode & 0xF800) !== 0xD800) result[i] = charAt(S, i); // unpaired surrogate - else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt(S, i + 1) & 0xFC00) != 0xDC00) result[i] = REPLACEMENT_CHARACTER; + else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt(S, i + 1) & 0xFC00) !== 0xDC00) result[i] = REPLACEMENT_CHARACTER; // surrogate pair else { result[i] = charAt(S, i); diff --git a/packages/core-js/modules/es.symbol.constructor.js b/packages/core-js/modules/es.symbol.constructor.js index aad7637c12da..9450fdfc6375 100644 --- a/packages/core-js/modules/es.symbol.constructor.js +++ b/packages/core-js/modules/es.symbol.constructor.js @@ -66,7 +66,7 @@ var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChil var setSymbolDescriptor = DESCRIPTORS && fails(function () { return nativeObjectCreate(nativeDefineProperty({}, 'a', { get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; } - })).a != 7; + })).a !== 7; }) ? function (O, P, Attributes) { var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P); if (ObjectPrototypeDescriptor) delete ObjectPrototype[P]; diff --git a/packages/core-js/modules/es.symbol.description.js b/packages/core-js/modules/es.symbol.description.js index b486d31eb4d5..ce2863fd6976 100644 --- a/packages/core-js/modules/es.symbol.description.js +++ b/packages/core-js/modules/es.symbol.description.js @@ -35,7 +35,7 @@ if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototy SymbolWrapper.prototype = SymbolPrototype; SymbolPrototype.constructor = SymbolWrapper; - var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)'; + var NATIVE_SYMBOL = String(NativeSymbol('test')) === 'Symbol(test)'; var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf); var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString); var regexp = /^Symbol\((.*)\)[^)]+$/; diff --git a/packages/core-js/modules/es.typed-array.to-locale-string.js b/packages/core-js/modules/es.typed-array.to-locale-string.js index f3baf21a1502..32e6c2fbc562 100644 --- a/packages/core-js/modules/es.typed-array.to-locale-string.js +++ b/packages/core-js/modules/es.typed-array.to-locale-string.js @@ -16,7 +16,7 @@ var TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () { }); var FORCED = fails(function () { - return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString(); + return [1, 2].toLocaleString() !== new Int8Array([1, 2]).toLocaleString(); }) || !fails(function () { Int8Array.prototype.toLocaleString.call([1, 2]); }); diff --git a/packages/core-js/modules/es.typed-array.to-string.js b/packages/core-js/modules/es.typed-array.to-string.js index 3f1d24fcf385..735a527276d4 100644 --- a/packages/core-js/modules/es.typed-array.to-string.js +++ b/packages/core-js/modules/es.typed-array.to-string.js @@ -15,7 +15,7 @@ if (fails(function () { arrayToString.call({}); })) { }; } -var IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString; +var IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString !== arrayToString; // `%TypedArray%.prototype.toString` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring diff --git a/packages/core-js/modules/es.weak-map.constructor.js b/packages/core-js/modules/es.weak-map.constructor.js index 72632c4b5624..e278ab54165d 100644 --- a/packages/core-js/modules/es.weak-map.constructor.js +++ b/packages/core-js/modules/es.weak-map.constructor.js @@ -101,8 +101,8 @@ if (NATIVE_WEAK_MAP) if (IS_IE11) { else if (isSealed(key)) arrayIntegrityLevel = SEALED; } nativeSet(this, key, value); - if (arrayIntegrityLevel == FROZEN) freeze(key); - if (arrayIntegrityLevel == SEALED) seal(key); + if (arrayIntegrityLevel === FROZEN) freeze(key); + if (arrayIntegrityLevel === SEALED) seal(key); return this; } }); diff --git a/packages/core-js/modules/esnext.array.last-index.js b/packages/core-js/modules/esnext.array.last-index.js index d3d6fc6df9e0..48d49977ef0a 100644 --- a/packages/core-js/modules/esnext.array.last-index.js +++ b/packages/core-js/modules/esnext.array.last-index.js @@ -14,7 +14,7 @@ if (DESCRIPTORS) { get: function lastIndex() { var O = toObject(this); var len = lengthOfArrayLike(O); - return len == 0 ? 0 : len - 1; + return len === 0 ? 0 : len - 1; } }); diff --git a/packages/core-js/modules/esnext.array.last-item.js b/packages/core-js/modules/esnext.array.last-item.js index 9cedec08f497..c1704cbf05ec 100644 --- a/packages/core-js/modules/esnext.array.last-item.js +++ b/packages/core-js/modules/esnext.array.last-item.js @@ -14,12 +14,12 @@ if (DESCRIPTORS) { get: function lastItem() { var O = toObject(this); var len = lengthOfArrayLike(O); - return len == 0 ? undefined : O[len - 1]; + return len === 0 ? undefined : O[len - 1]; }, set: function lastItem(value) { var O = toObject(this); var len = lengthOfArrayLike(O); - return O[len == 0 ? 0 : len - 1] = value; + return O[len === 0 ? 0 : len - 1] = value; } }); diff --git a/packages/core-js/modules/esnext.async-disposable-stack.constructor.js b/packages/core-js/modules/esnext.async-disposable-stack.constructor.js index 539181b01854..80e3c179f02e 100644 --- a/packages/core-js/modules/esnext.async-disposable-stack.constructor.js +++ b/packages/core-js/modules/esnext.async-disposable-stack.constructor.js @@ -29,7 +29,7 @@ var PENDING = 'pending'; var getPendingAsyncDisposableStackInternalState = function (stack) { var internalState = getAsyncDisposableStackInternalState(stack); - if (internalState.state == DISPOSED) throw $ReferenceError(ASYNC_DISPOSABLE_STACK + ' already disposed'); + if (internalState.state === DISPOSED) throw $ReferenceError(ASYNC_DISPOSABLE_STACK + ' already disposed'); return internalState; }; @@ -50,7 +50,7 @@ defineBuiltIns(AsyncDisposableStackPrototype, { var asyncDisposableStack = this; return new Promise(function (resolve, reject) { var internalState = getAsyncDisposableStackInternalState(asyncDisposableStack); - if (internalState.state == DISPOSED) return resolve(undefined); + if (internalState.state === DISPOSED) return resolve(undefined); internalState.state = DISPOSED; if (!DESCRIPTORS) asyncDisposableStack.disposed = true; var stack = internalState.stack; @@ -118,7 +118,7 @@ defineBuiltIns(AsyncDisposableStackPrototype, { if (DESCRIPTORS) defineBuiltInAccessor(AsyncDisposableStackPrototype, 'disposed', { configurable: true, get: function disposed() { - return getAsyncDisposableStackInternalState(this).state == DISPOSED; + return getAsyncDisposableStackInternalState(this).state === DISPOSED; } }); diff --git a/packages/core-js/modules/esnext.composite-symbol.js b/packages/core-js/modules/esnext.composite-symbol.js index 4381977d7d4e..93f5a08b8e7d 100644 --- a/packages/core-js/modules/esnext.composite-symbol.js +++ b/packages/core-js/modules/esnext.composite-symbol.js @@ -7,7 +7,7 @@ var apply = require('../internals/function-apply'); // https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey $({ global: true, forced: true }, { compositeSymbol: function compositeSymbol() { - if (arguments.length == 1 && typeof arguments[0] == 'string') return getBuiltIn('Symbol')['for'](arguments[0]); + if (arguments.length === 1 && typeof arguments[0] == 'string') return getBuiltIn('Symbol')['for'](arguments[0]); return apply(getCompositeKeyNode, null, arguments).get('symbol', getBuiltIn('Symbol')); } }); diff --git a/packages/core-js/modules/esnext.disposable-stack.constructor.js b/packages/core-js/modules/esnext.disposable-stack.constructor.js index a8d488e7d98e..2023cbe4be54 100644 --- a/packages/core-js/modules/esnext.disposable-stack.constructor.js +++ b/packages/core-js/modules/esnext.disposable-stack.constructor.js @@ -28,7 +28,7 @@ var PENDING = 'pending'; var getPendingDisposableStackInternalState = function (stack) { var internalState = getDisposableStackInternalState(stack); - if (internalState.state == DISPOSED) throw $ReferenceError(DISPOSABLE_STACK + ' already disposed'); + if (internalState.state === DISPOSED) throw $ReferenceError(DISPOSABLE_STACK + ' already disposed'); return internalState; }; @@ -47,7 +47,7 @@ var DisposableStackPrototype = $DisposableStack.prototype; defineBuiltIns(DisposableStackPrototype, { dispose: function dispose() { var internalState = getDisposableStackInternalState(this); - if (internalState.state == DISPOSED) return; + if (internalState.state === DISPOSED) return; internalState.state = DISPOSED; if (!DESCRIPTORS) this.disposed = true; var stack = internalState.stack; @@ -102,7 +102,7 @@ defineBuiltIns(DisposableStackPrototype, { if (DESCRIPTORS) defineBuiltInAccessor(DisposableStackPrototype, 'disposed', { configurable: true, get: function disposed() { - return getDisposableStackInternalState(this).state == DISPOSED; + return getDisposableStackInternalState(this).state === DISPOSED; } }); diff --git a/packages/core-js/modules/esnext.json.parse.js b/packages/core-js/modules/esnext.json.parse.js index e418d7c4a7fc..e343678410fb 100644 --- a/packages/core-js/modules/esnext.json.parse.js +++ b/packages/core-js/modules/esnext.json.parse.js @@ -132,7 +132,7 @@ Context.prototype = { var nodes = {}; while (i < source.length) { i = this.until(['"', '}'], i); - if (at(source, i) == '}' && !expectKeypair) { + if (at(source, i) === '}' && !expectKeypair) { i++; break; } @@ -148,10 +148,10 @@ Context.prototype = { createProperty(object, key, result.value); i = this.until([',', '}'], result.end); var chr = at(source, i); - if (chr == ',') { + if (chr === ',') { expectKeypair = true; i++; - } else if (chr == '}') { + } else if (chr === '}') { i++; break; } @@ -166,7 +166,7 @@ Context.prototype = { var nodes = []; while (i < source.length) { i = this.skip(IS_WHITESPACE, i); - if (at(source, i) == ']' && !expectElement) { + if (at(source, i) === ']' && !expectElement) { i++; break; } @@ -174,10 +174,10 @@ Context.prototype = { push(nodes, result); push(array, result.value); i = this.until([',', ']'], result.end); - if (at(source, i) == ',') { + if (at(source, i) === ',') { expectElement = true; i++; - } else if (at(source, i) == ']') { + } else if (at(source, i) === ']') { i++; break; } @@ -193,17 +193,17 @@ Context.prototype = { var source = this.source; var startIndex = this.index; var i = startIndex; - if (at(source, i) == '-') i++; - if (at(source, i) == '0') i++; + if (at(source, i) === '-') i++; + if (at(source, i) === '0') i++; else if (exec(IS_NON_ZERO_DIGIT, at(source, i))) i = this.skip(IS_DIGIT, ++i); else throw SyntaxError('Failed to parse number at: ' + i); - if (at(source, i) == '.') i = this.skip(IS_DIGIT, ++i); - if (at(source, i) == 'e' || at(source, i) == 'E') { + if (at(source, i) === '.') i = this.skip(IS_DIGIT, ++i); + if (at(source, i) === 'e' || at(source, i) === 'E') { i++; - if (at(source, i) == '+' || at(source, i) == '-') i++; + if (at(source, i) === '+' || at(source, i) === '-') i++; var exponentStartIndex = i; i = this.skip(IS_DIGIT, i); - if (exponentStartIndex == i) throw SyntaxError("Failed to parse number's exponent value at: " + i); + if (exponentStartIndex === i) throw SyntaxError("Failed to parse number's exponent value at: " + i); } return this.node(PRIMITIVE, Number(slice(source, startIndex, i)), startIndex, i); }, @@ -211,7 +211,7 @@ Context.prototype = { var keyword = '' + value; var index = this.index; var endIndex = index + keyword.length; - if (slice(this.source, index, endIndex) != keyword) throw SyntaxError('Failed to parse value at: ' + index); + if (slice(this.source, index, endIndex) !== keyword) throw SyntaxError('Failed to parse value at: ' + index); return this.node(PRIMITIVE, value, index, endIndex); }, skip: function (regex, i) { @@ -222,7 +222,7 @@ Context.prototype = { until: function (array, i) { i = this.skip(IS_WHITESPACE, i); var chr = at(this.source, i); - for (var j = 0; j < array.length; j++) if (array[j] == chr) return i; + for (var j = 0; j < array.length; j++) if (array[j] === chr) return i; throw SyntaxError('Unexpected character: "' + chr + '" at: ' + i); } }; diff --git a/packages/core-js/modules/esnext.json.raw-json.js b/packages/core-js/modules/esnext.json.raw-json.js index f5bdb0d40996..48cbf4222ec1 100644 --- a/packages/core-js/modules/esnext.json.raw-json.js +++ b/packages/core-js/modules/esnext.json.raw-json.js @@ -36,7 +36,7 @@ var IS_WHITESPACE = /^[\t\n\r ]$/; $({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, { rawJSON: function rawJSON(text) { var jsonString = toString(text); - if (jsonString == '' || exec(IS_WHITESPACE, at(jsonString, 0)) || exec(IS_WHITESPACE, at(jsonString, jsonString.length - 1))) { + if (jsonString === '' || exec(IS_WHITESPACE, at(jsonString, 0)) || exec(IS_WHITESPACE, at(jsonString, jsonString.length - 1))) { throw $SyntaxError(ERROR_MESSAGE); } var parsed = parse(jsonString); @@ -69,10 +69,10 @@ if ($stringify) $({ target: 'JSON', stat: true, arity: 3, forced: !NATIVE_RAW_JS for (var i = 0; i < length; i++) { var chr = at(json, i); - if (chr == '"') { + if (chr === '"') { var end = parseJSONString(json, ++i).end - 1; var string = slice(json, i, end); - result += slice(string, 0, MARK_LENGTH) == MARK + result += slice(string, 0, MARK_LENGTH) === MARK ? rawStrings[slice(string, MARK_LENGTH)] : '"' + string + '"'; i = end; diff --git a/packages/core-js/modules/esnext.math.signbit.js b/packages/core-js/modules/esnext.math.signbit.js index 8a4a138ab780..1d4cad0c691f 100644 --- a/packages/core-js/modules/esnext.math.signbit.js +++ b/packages/core-js/modules/esnext.math.signbit.js @@ -7,6 +7,6 @@ $({ target: 'Math', stat: true, forced: true }, { signbit: function signbit(x) { var n = +x; // eslint-disable-next-line no-self-compare -- NaN check - return n == n && n == 0 ? 1 / n == -Infinity : n < 0; + return n === n && n === 0 ? 1 / n === -Infinity : n < 0; } }); diff --git a/packages/core-js/modules/esnext.number.from-string.js b/packages/core-js/modules/esnext.number.from-string.js index 98dfa80d2416..de649a42e2bd 100644 --- a/packages/core-js/modules/esnext.number.from-string.js +++ b/packages/core-js/modules/esnext.number.from-string.js @@ -23,7 +23,7 @@ $({ target: 'Number', stat: true, forced: true }, { var R, mathNum; if (typeof string != 'string') throw $TypeError(INVALID_NUMBER_REPRESENTATION); if (!string.length) throw $SyntaxError(INVALID_NUMBER_REPRESENTATION); - if (charAt(string, 0) == '-') { + if (charAt(string, 0) === '-') { sign = -1; string = stringSlice(string, 1); if (!string.length) throw $SyntaxError(INVALID_NUMBER_REPRESENTATION); diff --git a/packages/core-js/modules/esnext.set.intersection.v2.js b/packages/core-js/modules/esnext.set.intersection.v2.js index 01f107247fdb..fdca772c952e 100644 --- a/packages/core-js/modules/esnext.set.intersection.v2.js +++ b/packages/core-js/modules/esnext.set.intersection.v2.js @@ -6,7 +6,7 @@ var setMethodAcceptSetLike = require('../internals/set-method-accept-set-like'); var INCORRECT = !setMethodAcceptSetLike('intersection') || fails(function () { // eslint-disable-next-line es/no-array-from, es/no-set -- testing - return Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2]))) != '3,2'; + return Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2]))) !== '3,2'; }); // `Set.prototype.intersection` method diff --git a/packages/core-js/modules/web.atob.js b/packages/core-js/modules/web.atob.js index 8be71fb81fa9..038801bfe930 100644 --- a/packages/core-js/modules/web.atob.js +++ b/packages/core-js/modules/web.atob.js @@ -46,10 +46,10 @@ $({ global: true, bind: true, enumerable: true, forced: NO_SPACES_IGNORE || NO_E var position = 0; var bc = 0; var chr, bs; - if (string.length % 4 == 0) { + if (string.length % 4 === 0) { string = replace(string, finalEq, ''); } - if (string.length % 4 == 1 || exec(disallowed, string)) { + if (string.length % 4 === 1 || exec(disallowed, string)) { throw new (getBuiltIn('DOMException'))('The string is not correctly encoded', 'InvalidCharacterError'); } while (chr = charAt(string, position++)) { diff --git a/packages/core-js/modules/web.dom-exception.constructor.js b/packages/core-js/modules/web.dom-exception.constructor.js index e2c638d95ba3..84afb42392c7 100644 --- a/packages/core-js/modules/web.dom-exception.constructor.js +++ b/packages/core-js/modules/web.dom-exception.constructor.js @@ -30,7 +30,7 @@ var NativeDOMException = getBuiltIn(DOM_EXCEPTION) || (function () { // eslint-disable-next-line es/no-weak-map, unicorn/require-post-message-target-origin -- safe new MessageChannel().port1.postMessage(new WeakMap()); } catch (error) { - if (error.name == DATA_CLONE_ERR && error.code == 25) return error.constructor; + if (error.name === DATA_CLONE_ERR && error.code === 25) return error.constructor; } })(); var NativeDOMExceptionPrototype = NativeDOMException && NativeDOMException.prototype; diff --git a/packages/core-js/modules/web.structured-clone.js b/packages/core-js/modules/web.structured-clone.js index 3483cb452eb0..cc0797082944 100644 --- a/packages/core-js/modules/web.structured-clone.js +++ b/packages/core-js/modules/web.structured-clone.js @@ -62,7 +62,7 @@ var checkBasicSemantic = function (structuredCloneImplementation) { var set1 = new global.Set([7]); var set2 = structuredCloneImplementation(set1); var number = structuredCloneImplementation(Object(7)); - return set2 == set1 || !set2.has(7) || typeof number != 'object' || number != 7; + return set2 === set1 || !set2.has(7) || typeof number != 'object' || number !== 7; }) && structuredCloneImplementation; }; @@ -78,7 +78,7 @@ var checkErrorsCloning = function (structuredCloneImplementation, $Error) { var checkNewErrorsCloningSemantic = function (structuredCloneImplementation) { return !fails(function () { var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, { cause: 3 })); - return test.name != 'AggregateError' || test.errors[0] != 1 || test.message != PERFORMANCE_MARK || test.cause != 3; + return test.name !== 'AggregateError' || test.errors[0] !== 1 || test.message !== PERFORMANCE_MARK || test.cause !== 3; }); }; @@ -440,7 +440,7 @@ var structuredCloneInternal = function (value, map, transferredBuffers) { if (hasOwn(value, 'cause')) { createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map, transferredBuffers)); } - if (name == 'AggregateError') { + if (name === 'AggregateError') { cloned.errors = structuredCloneInternal(value.errors, map, transferredBuffers); } // break omitted case 'DOMException': @@ -508,7 +508,7 @@ var replacePlaceholders = function (value, map) { if (hasOwn(value, 'cause')) { value.cause = replacePlaceholders(value.cause, map); } - if (value.name == 'AggregateError') { + if (value.name === 'AggregateError') { value.errors = replacePlaceholders(value.errors, map); } // break omitted case 'DOMException': diff --git a/packages/core-js/modules/web.url.constructor.js b/packages/core-js/modules/web.url.constructor.js index 5cf2f5e2c6de..e7a336f207fe 100644 --- a/packages/core-js/modules/web.url.constructor.js +++ b/packages/core-js/modules/web.url.constructor.js @@ -71,7 +71,7 @@ var EOF; var parseIPv4 = function (input) { var parts = split(input, '.'); var partsLength, numbers, index, part, radix, number, ipv4; - if (parts.length && parts[parts.length - 1] == '') { + if (parts.length && parts[parts.length - 1] === '') { parts.length--; } partsLength = parts.length; @@ -79,23 +79,23 @@ var parseIPv4 = function (input) { numbers = []; for (index = 0; index < partsLength; index++) { part = parts[index]; - if (part == '') return input; + if (part === '') return input; radix = 10; - if (part.length > 1 && charAt(part, 0) == '0') { + if (part.length > 1 && charAt(part, 0) === '0') { radix = exec(HEX_START, part) ? 16 : 8; - part = stringSlice(part, radix == 8 ? 1 : 2); + part = stringSlice(part, radix === 8 ? 1 : 2); } if (part === '') { number = 0; } else { - if (!exec(radix == 10 ? DEC : radix == 8 ? OCT : HEX, part)) return input; + if (!exec(radix === 10 ? DEC : radix === 8 ? OCT : HEX, part)) return input; number = parseInt(part, radix); } push(numbers, number); } for (index = 0; index < partsLength; index++) { number = numbers[index]; - if (index == partsLength - 1) { + if (index === partsLength - 1) { if (number >= pow(256, 5 - partsLength)) return null; } else if (number > 255) return null; } @@ -119,15 +119,15 @@ var parseIPv6 = function (input) { return charAt(input, pointer); }; - if (chr() == ':') { - if (charAt(input, 1) != ':') return; + if (chr() === ':') { + if (charAt(input, 1) !== ':') return; pointer += 2; pieceIndex++; compress = pieceIndex; } while (chr()) { - if (pieceIndex == 8) return; - if (chr() == ':') { + if (pieceIndex === 8) return; + if (chr() === ':') { if (compress !== null) return; pointer++; pieceIndex++; @@ -140,33 +140,33 @@ var parseIPv6 = function (input) { pointer++; length++; } - if (chr() == '.') { - if (length == 0) return; + if (chr() === '.') { + if (length === 0) return; pointer -= length; if (pieceIndex > 6) return; numbersSeen = 0; while (chr()) { ipv4Piece = null; if (numbersSeen > 0) { - if (chr() == '.' && numbersSeen < 4) pointer++; + if (chr() === '.' && numbersSeen < 4) pointer++; else return; } if (!exec(DIGIT, chr())) return; while (exec(DIGIT, chr())) { number = parseInt(chr(), 10); if (ipv4Piece === null) ipv4Piece = number; - else if (ipv4Piece == 0) return; + else if (ipv4Piece === 0) return; else ipv4Piece = ipv4Piece * 10 + number; if (ipv4Piece > 255) return; pointer++; } address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece; numbersSeen++; - if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++; + if (numbersSeen === 2 || numbersSeen === 4) pieceIndex++; } - if (numbersSeen != 4) return; + if (numbersSeen !== 4) return; break; - } else if (chr() == ':') { + } else if (chr() === ':') { pointer++; if (!chr()) return; } else if (chr()) return; @@ -175,12 +175,12 @@ var parseIPv6 = function (input) { if (compress !== null) { swaps = pieceIndex - compress; pieceIndex = 7; - while (pieceIndex != 0 && swaps > 0) { + while (pieceIndex !== 0 && swaps > 0) { swap = address[pieceIndex]; address[pieceIndex--] = address[compress + swaps - 1]; address[compress + --swaps] = swap; } - } else if (pieceIndex != 8) return; + } else if (pieceIndex !== 8) return; return address; }; @@ -268,15 +268,15 @@ var specialSchemes = { // https://url.spec.whatwg.org/#windows-drive-letter var isWindowsDriveLetter = function (string, normalized) { var second; - return string.length == 2 && exec(ALPHA, charAt(string, 0)) - && ((second = charAt(string, 1)) == ':' || (!normalized && second == '|')); + return string.length === 2 && exec(ALPHA, charAt(string, 0)) + && ((second = charAt(string, 1)) === ':' || (!normalized && second === '|')); }; // https://url.spec.whatwg.org/#start-with-a-windows-drive-letter var startsWithWindowsDriveLetter = function (string) { var third; return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && ( - string.length == 2 || + string.length === 2 || ((third = charAt(string, 2)) === '/' || third === '\\' || third === '?' || third === '#') ); }; @@ -380,27 +380,27 @@ URLState.prototype = { break; case SCHEME: - if (chr && (exec(ALPHANUMERIC, chr) || chr == '+' || chr == '-' || chr == '.')) { + if (chr && (exec(ALPHANUMERIC, chr) || chr === '+' || chr === '-' || chr === '.')) { buffer += toLowerCase(chr); - } else if (chr == ':') { + } else if (chr === ':') { if (stateOverride && ( - (url.isSpecial() != hasOwn(specialSchemes, buffer)) || - (buffer == 'file' && (url.includesCredentials() || url.port !== null)) || - (url.scheme == 'file' && !url.host) + (url.isSpecial() !== hasOwn(specialSchemes, buffer)) || + (buffer === 'file' && (url.includesCredentials() || url.port !== null)) || + (url.scheme === 'file' && !url.host) )) return; url.scheme = buffer; if (stateOverride) { - if (url.isSpecial() && specialSchemes[url.scheme] == url.port) url.port = null; + if (url.isSpecial() && specialSchemes[url.scheme] === url.port) url.port = null; return; } buffer = ''; - if (url.scheme == 'file') { + if (url.scheme === 'file') { state = FILE; - } else if (url.isSpecial() && base && base.scheme == url.scheme) { + } else if (url.isSpecial() && base && base.scheme === url.scheme) { state = SPECIAL_RELATIVE_OR_AUTHORITY; } else if (url.isSpecial()) { state = SPECIAL_AUTHORITY_SLASHES; - } else if (codePoints[pointer + 1] == '/') { + } else if (codePoints[pointer + 1] === '/') { state = PATH_OR_AUTHORITY; pointer++; } else { @@ -417,8 +417,8 @@ URLState.prototype = { break; case NO_SCHEME: - if (!base || (base.cannotBeABaseURL && chr != '#')) return INVALID_SCHEME; - if (base.cannotBeABaseURL && chr == '#') { + if (!base || (base.cannotBeABaseURL && chr !== '#')) return INVALID_SCHEME; + if (base.cannotBeABaseURL && chr === '#') { url.scheme = base.scheme; url.path = arraySlice(base.path); url.query = base.query; @@ -427,11 +427,11 @@ URLState.prototype = { state = FRAGMENT; break; } - state = base.scheme == 'file' ? FILE : RELATIVE; + state = base.scheme === 'file' ? FILE : RELATIVE; continue; case SPECIAL_RELATIVE_OR_AUTHORITY: - if (chr == '/' && codePoints[pointer + 1] == '/') { + if (chr === '/' && codePoints[pointer + 1] === '/') { state = SPECIAL_AUTHORITY_IGNORE_SLASHES; pointer++; } else { @@ -440,7 +440,7 @@ URLState.prototype = { } break; case PATH_OR_AUTHORITY: - if (chr == '/') { + if (chr === '/') { state = AUTHORITY; break; } else { @@ -450,16 +450,16 @@ URLState.prototype = { case RELATIVE: url.scheme = base.scheme; - if (chr == EOF) { + if (chr === EOF) { url.username = base.username; url.password = base.password; url.host = base.host; url.port = base.port; url.path = arraySlice(base.path); url.query = base.query; - } else if (chr == '/' || (chr == '\\' && url.isSpecial())) { + } else if (chr === '/' || (chr === '\\' && url.isSpecial())) { state = RELATIVE_SLASH; - } else if (chr == '?') { + } else if (chr === '?') { url.username = base.username; url.password = base.password; url.host = base.host; @@ -467,7 +467,7 @@ URLState.prototype = { url.path = arraySlice(base.path); url.query = ''; state = QUERY; - } else if (chr == '#') { + } else if (chr === '#') { url.username = base.username; url.password = base.password; url.host = base.host; @@ -488,9 +488,9 @@ URLState.prototype = { } break; case RELATIVE_SLASH: - if (url.isSpecial() && (chr == '/' || chr == '\\')) { + if (url.isSpecial() && (chr === '/' || chr === '\\')) { state = SPECIAL_AUTHORITY_IGNORE_SLASHES; - } else if (chr == '/') { + } else if (chr === '/') { state = AUTHORITY; } else { url.username = base.username; @@ -503,24 +503,24 @@ URLState.prototype = { case SPECIAL_AUTHORITY_SLASHES: state = SPECIAL_AUTHORITY_IGNORE_SLASHES; - if (chr != '/' || charAt(buffer, pointer + 1) != '/') continue; + if (chr !== '/' || charAt(buffer, pointer + 1) !== '/') continue; pointer++; break; case SPECIAL_AUTHORITY_IGNORE_SLASHES: - if (chr != '/' && chr != '\\') { + if (chr !== '/' && chr !== '\\') { state = AUTHORITY; continue; } break; case AUTHORITY: - if (chr == '@') { + if (chr === '@') { if (seenAt) buffer = '%40' + buffer; seenAt = true; bufferCodePoints = arrayFrom(buffer); for (var i = 0; i < bufferCodePoints.length; i++) { var codePoint = bufferCodePoints[i]; - if (codePoint == ':' && !seenPasswordToken) { + if (codePoint === ':' && !seenPasswordToken) { seenPasswordToken = true; continue; } @@ -530,10 +530,10 @@ URLState.prototype = { } buffer = ''; } else if ( - chr == EOF || chr == '/' || chr == '?' || chr == '#' || - (chr == '\\' && url.isSpecial()) + chr === EOF || chr === '/' || chr === '?' || chr === '#' || + (chr === '\\' && url.isSpecial()) ) { - if (seenAt && buffer == '') return INVALID_AUTHORITY; + if (seenAt && buffer === '') return INVALID_AUTHORITY; pointer -= arrayFrom(buffer).length + 1; buffer = ''; state = HOST; @@ -542,22 +542,22 @@ URLState.prototype = { case HOST: case HOSTNAME: - if (stateOverride && url.scheme == 'file') { + if (stateOverride && url.scheme === 'file') { state = FILE_HOST; continue; - } else if (chr == ':' && !seenBracket) { - if (buffer == '') return INVALID_HOST; + } else if (chr === ':' && !seenBracket) { + if (buffer === '') return INVALID_HOST; failure = url.parseHost(buffer); if (failure) return failure; buffer = ''; state = PORT; - if (stateOverride == HOSTNAME) return; + if (stateOverride === HOSTNAME) return; } else if ( - chr == EOF || chr == '/' || chr == '?' || chr == '#' || - (chr == '\\' && url.isSpecial()) + chr === EOF || chr === '/' || chr === '?' || chr === '#' || + (chr === '\\' && url.isSpecial()) ) { - if (url.isSpecial() && buffer == '') return INVALID_HOST; - if (stateOverride && buffer == '' && (url.includesCredentials() || url.port !== null)) return; + if (url.isSpecial() && buffer === '') return INVALID_HOST; + if (stateOverride && buffer === '' && (url.includesCredentials() || url.port !== null)) return; failure = url.parseHost(buffer); if (failure) return failure; buffer = ''; @@ -565,8 +565,8 @@ URLState.prototype = { if (stateOverride) return; continue; } else { - if (chr == '[') seenBracket = true; - else if (chr == ']') seenBracket = false; + if (chr === '[') seenBracket = true; + else if (chr === ']') seenBracket = false; buffer += chr; } break; @@ -574,11 +574,11 @@ URLState.prototype = { if (exec(DIGIT, chr)) { buffer += chr; } else if ( - chr == EOF || chr == '/' || chr == '?' || chr == '#' || - (chr == '\\' && url.isSpecial()) || + chr === EOF || chr === '/' || chr === '?' || chr === '#' || + (chr === '\\' && url.isSpecial()) || stateOverride ) { - if (buffer != '') { + if (buffer !== '') { var port = parseInt(buffer, 10); if (port > 0xFFFF) return INVALID_PORT; url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port; @@ -592,31 +592,35 @@ URLState.prototype = { case FILE: url.scheme = 'file'; - if (chr == '/' || chr == '\\') state = FILE_SLASH; - else if (base && base.scheme == 'file') { - if (chr == EOF) { - url.host = base.host; - url.path = arraySlice(base.path); - url.query = base.query; - } else if (chr == '?') { - url.host = base.host; - url.path = arraySlice(base.path); - url.query = ''; - state = QUERY; - } else if (chr == '#') { - url.host = base.host; - url.path = arraySlice(base.path); - url.query = base.query; - url.fragment = ''; - state = FRAGMENT; - } else { - if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) { + if (chr === '/' || chr === '\\') state = FILE_SLASH; + else if (base && base.scheme === 'file') { + switch (chr) { + case EOF: url.host = base.host; url.path = arraySlice(base.path); - url.shortenPath(); - } - state = PATH; - continue; + url.query = base.query; + break; + case '?': + url.host = base.host; + url.path = arraySlice(base.path); + url.query = ''; + state = QUERY; + break; + case '#': + url.host = base.host; + url.path = arraySlice(base.path); + url.query = base.query; + url.fragment = ''; + state = FRAGMENT; + break; + default: + if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) { + url.host = base.host; + url.path = arraySlice(base.path); + url.shortenPath(); + } + state = PATH; + continue; } } else { state = PATH; @@ -624,11 +628,11 @@ URLState.prototype = { } break; case FILE_SLASH: - if (chr == '/' || chr == '\\') { + if (chr === '/' || chr === '\\') { state = FILE_HOST; break; } - if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) { + if (base && base.scheme === 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) { if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]); else url.host = base.host; } @@ -636,17 +640,17 @@ URLState.prototype = { continue; case FILE_HOST: - if (chr == EOF || chr == '/' || chr == '\\' || chr == '?' || chr == '#') { + if (chr === EOF || chr === '/' || chr === '\\' || chr === '?' || chr === '#') { if (!stateOverride && isWindowsDriveLetter(buffer)) { state = PATH; - } else if (buffer == '') { + } else if (buffer === '') { url.host = ''; if (stateOverride) return; state = PATH_START; } else { failure = url.parseHost(buffer); if (failure) return failure; - if (url.host == 'localhost') url.host = ''; + if (url.host === 'localhost') url.host = ''; if (stateOverride) return; buffer = ''; state = PATH_START; @@ -657,50 +661,50 @@ URLState.prototype = { case PATH_START: if (url.isSpecial()) { state = PATH; - if (chr != '/' && chr != '\\') continue; - } else if (!stateOverride && chr == '?') { + if (chr !== '/' && chr !== '\\') continue; + } else if (!stateOverride && chr === '?') { url.query = ''; state = QUERY; - } else if (!stateOverride && chr == '#') { + } else if (!stateOverride && chr === '#') { url.fragment = ''; state = FRAGMENT; - } else if (chr != EOF) { + } else if (chr !== EOF) { state = PATH; - if (chr != '/') continue; + if (chr !== '/') continue; } break; case PATH: if ( - chr == EOF || chr == '/' || - (chr == '\\' && url.isSpecial()) || - (!stateOverride && (chr == '?' || chr == '#')) + chr === EOF || chr === '/' || + (chr === '\\' && url.isSpecial()) || + (!stateOverride && (chr === '?' || chr === '#')) ) { if (isDoubleDot(buffer)) { url.shortenPath(); - if (chr != '/' && !(chr == '\\' && url.isSpecial())) { + if (chr !== '/' && !(chr === '\\' && url.isSpecial())) { push(url.path, ''); } } else if (isSingleDot(buffer)) { - if (chr != '/' && !(chr == '\\' && url.isSpecial())) { + if (chr !== '/' && !(chr === '\\' && url.isSpecial())) { push(url.path, ''); } } else { - if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) { + if (url.scheme === 'file' && !url.path.length && isWindowsDriveLetter(buffer)) { if (url.host) url.host = ''; buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter } push(url.path, buffer); } buffer = ''; - if (url.scheme == 'file' && (chr == EOF || chr == '?' || chr == '#')) { + if (url.scheme === 'file' && (chr === EOF || chr === '?' || chr === '#')) { while (url.path.length > 1 && url.path[0] === '') { shift(url.path); } } - if (chr == '?') { + if (chr === '?') { url.query = ''; state = QUERY; - } else if (chr == '#') { + } else if (chr === '#') { url.fragment = ''; state = FRAGMENT; } @@ -709,28 +713,28 @@ URLState.prototype = { } break; case CANNOT_BE_A_BASE_URL_PATH: - if (chr == '?') { + if (chr === '?') { url.query = ''; state = QUERY; - } else if (chr == '#') { + } else if (chr === '#') { url.fragment = ''; state = FRAGMENT; - } else if (chr != EOF) { + } else if (chr !== EOF) { url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet); } break; case QUERY: - if (!stateOverride && chr == '#') { + if (!stateOverride && chr === '#') { url.fragment = ''; state = FRAGMENT; - } else if (chr != EOF) { - if (chr == "'" && url.isSpecial()) url.query += '%27'; - else if (chr == '#') url.query += '%23'; + } else if (chr !== EOF) { + if (chr === "'" && url.isSpecial()) url.query += '%27'; + else if (chr === '#') url.query += '%23'; else url.query += percentEncode(chr, C0ControlPercentEncodeSet); } break; case FRAGMENT: - if (chr != EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet); + if (chr !== EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet); break; } @@ -740,8 +744,8 @@ URLState.prototype = { // https://url.spec.whatwg.org/#host-parsing parseHost: function (input) { var result, codePoints, index; - if (charAt(input, 0) == '[') { - if (charAt(input, input.length - 1) != ']') return INVALID_HOST; + if (charAt(input, 0) === '[') { + if (charAt(input, input.length - 1) !== ']') return INVALID_HOST; result = parseIPv6(stringSlice(input, 1, -1)); if (!result) return INVALID_HOST; this.host = result; @@ -764,11 +768,11 @@ URLState.prototype = { }, // https://url.spec.whatwg.org/#cannot-have-a-username-password-port cannotHaveUsernamePasswordPort: function () { - return !this.host || this.cannotBeABaseURL || this.scheme == 'file'; + return !this.host || this.cannotBeABaseURL || this.scheme === 'file'; }, // https://url.spec.whatwg.org/#include-credentials includesCredentials: function () { - return this.username != '' || this.password != ''; + return this.username !== '' || this.password !== ''; }, // https://url.spec.whatwg.org/#is-special isSpecial: function () { @@ -778,7 +782,7 @@ URLState.prototype = { shortenPath: function () { var path = this.path; var pathSize = path.length; - if (pathSize && (this.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) { + if (pathSize && (this.scheme !== 'file' || pathSize !== 1 || !isWindowsDriveLetter(path[0], true))) { path.length--; } }, @@ -801,7 +805,7 @@ URLState.prototype = { } output += serializeHost(host); if (port !== null) output += ':' + port; - } else if (scheme == 'file') output += '//'; + } else if (scheme === 'file') output += '//'; output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : ''; if (query !== null) output += '?' + query; if (fragment !== null) output += '#' + fragment; @@ -817,12 +821,12 @@ URLState.prototype = { getOrigin: function () { var scheme = this.scheme; var port = this.port; - if (scheme == 'blob') try { + if (scheme === 'blob') try { return new URLConstructor(scheme.path[0]).origin; } catch (error) { return 'null'; } - if (scheme == 'file' || !this.isSpecial()) return 'null'; + if (scheme === 'file' || !this.isSpecial()) return 'null'; return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : ''); }, // https://url.spec.whatwg.org/#dom-url-protocol @@ -885,7 +889,7 @@ URLState.prototype = { setPort: function (port) { if (this.cannotHaveUsernamePasswordPort()) return; port = $toString(port); - if (port == '') this.port = null; + if (port === '') this.port = null; else this.parse(port, PORT); }, // https://url.spec.whatwg.org/#dom-url-pathname @@ -905,10 +909,10 @@ URLState.prototype = { }, setSearch: function (search) { search = $toString(search); - if (search == '') { + if (search === '') { this.query = null; } else { - if ('?' == charAt(search, 0)) search = stringSlice(search, 1); + if ('?' === charAt(search, 0)) search = stringSlice(search, 1); this.query = ''; this.parse(search, QUERY); } @@ -925,11 +929,11 @@ URLState.prototype = { }, setHash: function (hash) { hash = $toString(hash); - if (hash == '') { + if (hash === '') { this.fragment = null; return; } - if ('#' == charAt(hash, 0)) hash = stringSlice(hash, 1); + if ('#' === charAt(hash, 0)) hash = stringSlice(hash, 1); this.fragment = ''; this.parse(hash, FRAGMENT); }, diff --git a/scripts/check-compat-data-mapping.mjs b/scripts/check-compat-data-mapping.mjs index 84b7c2e2e915..b176ff327838 100644 --- a/scripts/check-compat-data-mapping.mjs +++ b/scripts/check-compat-data-mapping.mjs @@ -67,7 +67,7 @@ assert(modernV8ToChrome(v8) <= latest(mapping.ChromeToNode)[0], 'NodeJS'); assert(latest(Object.entries(electron))[0] <= latest(mapping.ChromeToElectron)[0], 'Electron'); assert(modernV8ToChrome(deno.engine) <= latest(mapping.ChromeToDeno)[0], 'Deno'); assert(oculus.engine <= latest(mapping.ChromeAndroidToQuest)[0], 'Meta Quest'); -assert(opera.version == mapping.ChromeToOpera(opera.engine), 'Opera'); +assert(opera.version === String(mapping.ChromeToOpera(opera.engine)), 'Opera'); assert(operaAndroid.engine <= latest(mapping.ChromeAndroidToOperaAndroid)[0], 'Opera for Android'); assert(ios.version === Object.entries(safari).find(([, { engine_version: engine }]) => engine === ios.engine)[0], 'iOS Safari'); assert(samsung.engine <= latest(mapping.ChromeAndroidToSamsung)[0], 'Samsung Internet'); diff --git a/tests/compat/tests.js b/tests/compat/tests.js index 306e1ec9b392..5a09a7033649 100644 --- a/tests/compat/tests.js +++ b/tests/compat/tests.js @@ -44,14 +44,14 @@ var WEBKIT_STRING_PAD_BUG = /Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\ var DESCRIPTORS_SUPPORT = function () { return Object.defineProperty({}, 'a', { get: function () { return 7; } - }).a == 7; + }).a === 7; }; var V8_PROTOTYPE_DEFINE_BUG = function () { return Object.defineProperty(function () { /* empty */ }, 'prototype', { value: 42, writable: false - }).prototype == 42; + }).prototype === 42; }; var PROMISES_SUPPORT = function () { @@ -184,8 +184,8 @@ var TYPED_ARRAY_CONSTRUCTORS_NOT_REQUIRES_WRAPPERS = function () { return this; }; - return new Int8Array(iterable)[0] == 1 - && new Int8Array(new ArrayBuffer(2), 1, undefined).length == 1; + return new Int8Array(iterable)[0] === 1 + && new Int8Array(new ArrayBuffer(2), 1, undefined).length === 1; }; function NCG_SUPPORT() { @@ -211,7 +211,7 @@ function createIsRegExpLogicTest(name) { function createStringHTMLMethodTest(METHOD_NAME) { return function () { var test = ''[METHOD_NAME]('"'); - return test == test.toLowerCase() && test.split('"').length <= 3; + return test === test.toLowerCase() && test.split('"').length <= 3; }; } @@ -266,14 +266,14 @@ function NATIVE_RAW_JSON() { function IMMEDIATE() { return setImmediate && clearImmediate && !(IS_BUN && (function () { var version = global.Bun.version.split('.'); - return version.length < 3 || version[0] == 0 && (version[1] < 3 || version[1] == 3 && version[2] == 0); + return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0'); })()); } function TIMERS() { return !(/MSIE .\./.test(USERAGENT) || IS_BUN && (function () { var version = global.Bun.version.split('.'); - return version.length < 3 || version[0] == 0 && (version[1] < 3 || version[1] == 3 && version[2] == 0); + return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0'); })()); } @@ -283,15 +283,15 @@ GLOBAL.tests = { return Object.getOwnPropertySymbols('qwe') && Symbol['for'] && Symbol.keyFor - && JSON.stringify([Symbol()]) == '[null]' - && JSON.stringify({ a: Symbol() }) == '{}' - && JSON.stringify(Object(Symbol())) == '{}' + && JSON.stringify([Symbol()]) === '[null]' + && JSON.stringify({ a: Symbol() }) === '{}' + && JSON.stringify(Object(Symbol())) === '{}' && Symbol.prototype[Symbol.toPrimitive] && Symbol.prototype[Symbol.toStringTag]; }], 'es.symbol.constructor': SYMBOLS_SUPPORT, 'es.symbol.description': function () { - return Symbol('foo').description == 'foo' && Symbol().description === undefined; + return Symbol('foo').description === 'foo' && Symbol().description === undefined; }, 'es.symbol.async-iterator': function () { return Symbol.asyncIterator; @@ -604,7 +604,7 @@ GLOBAL.tests = { new ArrayBuffer(); new ArrayBuffer(1.5); new ArrayBuffer(NaN); - return ArrayBuffer.length == 1 && ArrayBuffer.name == 'ArrayBuffer'; + return ArrayBuffer.length === 1 && ArrayBuffer.name === 'ArrayBuffer'; }], 'es.array-buffer.is-view': [ARRAY_BUFFER_VIEWS_SUPPORT, function () { return ArrayBuffer.isView; @@ -630,7 +630,7 @@ GLOBAL.tests = { try { new Date(NaN).toISOString(); } catch (error) { - return new Date(-5e13 - 1).toISOString() == '0385-07-25T07:06:39.999Z'; + return new Date(-5e13 - 1).toISOString() === '0385-07-25T07:06:39.999Z'; } }, 'es.date.to-json': function () { @@ -642,7 +642,7 @@ GLOBAL.tests = { }], // TODO: Remove from `core-js@4` 'es.date.to-string': function () { - return new Date(NaN).toString() == 'Invalid Date'; + return new Date(NaN).toString() === 'Invalid Date'; }, 'es.escape': function () { return escape; @@ -662,9 +662,9 @@ GLOBAL.tests = { return globalThis; }, 'es.json.stringify': [SYMBOLS_SUPPORT, function () { - return JSON.stringify([Symbol()]) == '[null]' - && JSON.stringify({ a: Symbol() }) == '{}' - && JSON.stringify(Object(Symbol())) == '{}' + return JSON.stringify([Symbol()]) === '[null]' + && JSON.stringify({ a: Symbol() }) === '{}' + && JSON.stringify(Object(Symbol())) === '{}' && JSON.stringify('\uDF06\uD834') === '"\\udf06\\ud834"' && JSON.stringify('\uDEAD') === '"\\udead"'; }], @@ -685,16 +685,16 @@ GLOBAL.tests = { var map = new Map(iterable); return map.forEach && map[Symbol.iterator]().next() - && map.get(1) == 2 - && map.set(-0, 3) == map + && map.get(1) === 2 + && map.set(-0, 3) === map && map.has(0) && map[Symbol.toStringTag]; }], 'es.math.acosh': function () { // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509 - return Math.floor(Math.acosh(Number.MAX_VALUE)) == 710 + return Math.floor(Math.acosh(Number.MAX_VALUE)) === 710 // Tor Browser bug: Math.acosh(Infinity) -> NaN - && Math.acosh(Infinity) == Infinity; + && Math.acosh(Infinity) === Infinity; }, 'es.math.asinh': function () { return 1 / Math.asinh(0) > 0; @@ -715,7 +715,7 @@ GLOBAL.tests = { // Old FF bug return Math.expm1(10) <= 22025.465794806719 && Math.expm1(10) >= 22025.4657948067165168 // Tor Browser bug - && Math.expm1(-2e-17) == -2e-17; + && Math.expm1(-2e-17) === -2e-17; }, 'es.math.fround': function () { return Math.fround; @@ -724,7 +724,7 @@ GLOBAL.tests = { return Math.hypot && Math.hypot(Infinity, NaN) === Infinity; }, 'es.math.imul': function () { - return Math.imul(0xFFFFFFFF, 5) == -5 && Math.imul.length == 2; + return Math.imul(0xFFFFFFFF, 5) === -5 && Math.imul.length === 2; }, 'es.math.log10': function () { return Math.log10; @@ -739,7 +739,7 @@ GLOBAL.tests = { return Math.sign; }, 'es.math.sinh': function () { - return Math.sinh(-2e-17) == -2e-17; + return Math.sinh(-2e-17) === -2e-17; }, 'es.math.tanh': function () { return Math.tanh; @@ -839,7 +839,7 @@ GLOBAL.tests = { var alphabet = 'abcdefghijklmnopqrst'; A[symbol] = 7; alphabet.split('').forEach(function (chr) { B[chr] = chr; }); - return Object.assign({}, A)[symbol] == 7 && Object.keys(Object.assign({}, B)).join('') == alphabet; + return Object.assign({}, A)[symbol] === 7 && Object.keys(Object.assign({}, B)).join('') === alphabet; }, // TODO: Remove from `core-js@4` 'es.object.create': function () { @@ -1015,7 +1015,7 @@ GLOBAL.tests = { return new RegExp(re1) !== re1 && RegExp(re1) === re1 && RegExp(re2) !== re2 - && RegExp(re1, 'i') == '/a/i' + && String(RegExp(re1, 'i')) === '/a/i' && new RegExp('a', 'y') // just check that it doesn't throw && RegExp('.', 's').exec('\n') && RegExp[Symbol.species]; @@ -1108,7 +1108,7 @@ GLOBAL.tests = { return set.forEach && set[Symbol.iterator]().next() && set.has(1) - && set.add(-0) == set + && set.add(-0) === set && set.has(0) && set[Symbol.toStringTag]; }], @@ -1139,7 +1139,7 @@ GLOBAL.tests = { re[Symbol.match](''); // eslint-disable-next-line regexp/prefer-regexp-exec -- required for testing - return ''.match(O) == 7 && execCalled; + return ''.match(O) === 7 && execCalled; }, 'es.string.match-all': function () { try { @@ -1177,7 +1177,7 @@ GLOBAL.tests = { return result; }; - return ''.replace(O) == 7 + return ''.replace(O) === 7 && execCalled // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive && ''.replace(re2, '$') === '7' @@ -1197,7 +1197,7 @@ GLOBAL.tests = { re.exec = function () { execCalled = true; return null; }; re[Symbol.search](''); - return ''.search(O) == 7 && execCalled; + return ''.search(O) === 7 && execCalled; }, 'es.string.split': function () { var O = {}; @@ -1216,7 +1216,7 @@ GLOBAL.tests = { re2.exec = function () { return originalExec.apply(this, arguments); }; var result = 'ab'.split(re2); - return ''.split(O) == 7 && execCalled && result.length === 2 && result[0] === 'a' && result[1] === 'b'; + return ''.split(O) === 7 && execCalled && result.length === 2 && result[0] === 'a' && result[1] === 'b'; }, 'es.string.starts-with': createIsRegExpLogicTest('startsWith'), 'es.string.substr': function () { @@ -1414,11 +1414,11 @@ GLOBAL.tests = { try { Int8Array.prototype.toLocaleString.call([1, 2]); } catch (error) { - return [1, 2].toLocaleString() == new Int8Array([1, 2]).toLocaleString(); + return [1, 2].toLocaleString() === new Int8Array([1, 2]).toLocaleString(); } }], 'es.typed-array.to-string': [ARRAY_BUFFER_VIEWS_SUPPORT, function () { - return Int8Array.prototype.toString == Array.prototype.toString; + return Int8Array.prototype.toString === Array.prototype.toString; }], 'es.typed-array.to-reversed': function () { return Int8Array.prototype.toReversed; @@ -1450,9 +1450,9 @@ GLOBAL.tests = { var map = new WeakMap(iterable); // MS IE bug - return map.get(key) == 1 - && map.get(null) == undefined - && map.set({}, 2) == map + return map.get(key) === 1 + && map.get(null) === undefined + && map.set({}, 2) === map && map[Symbol.toStringTag] // MS Edge bug && Object.isFrozen(key); @@ -1472,7 +1472,7 @@ GLOBAL.tests = { var set = new WeakSet(iterable); return set.has(key) && !set.has(null) - && set.add({}) == set + && set.add({}) === set && set[Symbol.toStringTag]; }], 'esnext.suppressed-error.constructor': function () { @@ -1779,7 +1779,7 @@ GLOBAL.tests = { return Set.from; }, 'esnext.set.intersection.v2': [createSetMethodTest('intersection'), function () { - return Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2]))) == '3,2'; + return Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2]))) === '3,2'; }], 'esnext.set.is-disjoint-from.v2': createSetMethodTest('isDisjointFrom'), 'esnext.set.is-subset-of.v2': createSetMethodTest('isSubsetOf'), @@ -1975,7 +1975,7 @@ GLOBAL.tests = { function checkNewErrorsCloningSemantic(structuredCloneImplementation) { var test = structuredCloneImplementation(new AggregateError([1], 'message', { cause: 3 })); - return test.name == 'AggregateError' && test.errors[0] == 1 && test.message == 'message' && test.cause == 3; + return test.name === 'AggregateError' && test.errors[0] === 1 && test.message === 'message' && test.cause === 3; } return checkErrorsCloning(structuredClone, Error) diff --git a/tests/eslint/eslint.config.js b/tests/eslint/eslint.config.js index cb23e7e1e964..f835d483d506 100644 --- a/tests/eslint/eslint.config.js +++ b/tests/eslint/eslint.config.js @@ -104,6 +104,8 @@ const base = { 'dot-notation': [ERROR, { allowKeywords: true }], // enforce newline before and after dot 'dot-location': [ERROR, 'property'], + // require the use of === and !== + eqeqeq: [ERROR, 'smart'], // disallow use of arguments.caller or arguments.callee 'no-caller': ERROR, // disallow lexical declarations in case/default clauses diff --git a/tests/helpers/helpers.js b/tests/helpers/helpers.js index 8e25a6844aa0..31f3897b4364 100644 --- a/tests/helpers/helpers.js +++ b/tests/helpers/helpers.js @@ -4,7 +4,7 @@ import ASYNC_ITERATOR from 'core-js-pure/es/symbol/async-iterator'; export function is(a, b) { // eslint-disable-next-line no-self-compare -- NaN check - return a === b ? a !== 0 || 1 / a === 1 / b : a != a && b != b; + return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b; } export function createIterator(elements, methods) {