Math them all.

This commit is contained in:
Michał Lipiński
2017-04-04 22:38:50 +02:00
parent bbd59f800b
commit 2538a56577
11 changed files with 14 additions and 52 deletions

View File

@@ -1,7 +1,3 @@
/* Built-in method references for those with the same name as other `lodash` methods. */
const nativeMax = Math.max
const nativeMin = Math.min
/**
* The base implementation of `inRange` which doesn't coerce arguments.
*
@@ -12,7 +8,7 @@ const nativeMin = Math.min
* @returns {boolean} Returns `true` if `number` is in the range, else `false`.
*/
function baseInRange(number, start, end) {
return number >= nativeMin(start, end) && number < nativeMax(start, end)
return number >= Math.min(start, end) && number < Math.max(start, end)
}
export default baseInRange

View File

@@ -4,9 +4,6 @@ import arrayIncludesWith from './arrayIncludesWith.js'
import arrayMap from './arrayMap.js'
import cacheHas from './cacheHas.js'
/* Built-in method references for those with the same name as other `lodash` methods. */
const nativeMin = Math.min
/**
* The base implementation of methods like `intersection` that accepts an
* array of arrays to inspect.
@@ -33,7 +30,7 @@ function baseIntersection(arrays, iteratee, comparator) {
if (othIndex && iteratee) {
array = arrayMap(array, (value) => iteratee(value))
}
maxLength = nativeMin(array.length, maxLength)
maxLength = Math.min(array.length, maxLength)
caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))
? new SetCache(othIndex && array)
: undefined

View File

@@ -1,7 +1,3 @@
/* Built-in method references for those with the same name as other `lodash` methods. */
const nativeCeil = Math.ceil
const nativeMax = Math.max
/**
* The base implementation of `range` and `rangeRight` which doesn't
* coerce arguments.
@@ -15,7 +11,7 @@ const nativeMax = Math.max
*/
function baseRange(start, end, step, fromRight) {
let index = -1
let length = nativeMax(nativeCeil((end - start) / (step || 1)), 0)
let length = Math.max(Math.ceil((end - start) / (step || 1)), 0)
const result = new Array(length)
while (length--) {

View File

@@ -4,9 +4,6 @@ import isSymbol from '../isSymbol.js'
const MAX_ARRAY_LENGTH = 4294967295
const MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1
/* Built-in method references for those with the same name as other `lodash` methods. */
const nativeFloor = Math.floor, nativeMin = Math.min
/**
* The base implementation of `sortedIndexBy` and `sortedLastIndexBy`
* which invokes `iteratee` for `value` and each element of `array` to compute
@@ -32,7 +29,7 @@ function baseSortedIndexBy(array, value, iteratee, retHighest) {
while (low < high) {
let setLow
const mid = nativeFloor((low + high) / 2)
const mid = Math.floor((low + high) / 2)
const computed = iteratee(array[mid])
const othIsDefined = computed !== undefined
const othIsNull = computed === null
@@ -58,7 +55,7 @@ function baseSortedIndexBy(array, value, iteratee, retHighest) {
high = mid
}
}
return nativeMin(high, MAX_ARRAY_INDEX)
return Math.min(high, MAX_ARRAY_INDEX)
}
export default baseSortedIndexBy

View File

@@ -1,6 +1,3 @@
/* Built-in method references for those with the same name as other `lodash` methods. */
const nativeMax = Math.max
/**
* Creates an array that is the composition of partially applied arguments,
* placeholders, and provided arguments into a single array of arguments.
@@ -19,7 +16,7 @@ function composeArgs(args, partials, holders, isCurried) {
let argsIndex = -1
let leftIndex = -1
let rangeLength = nativeMax(argsLength - holdersLength, 0)
let rangeLength = Math.max(argsLength - holdersLength, 0)
const result = new Array(leftLength + rangeLength)
const isUncurried = !isCurried

View File

@@ -1,6 +1,3 @@
/* Built-in method references for those with the same name as other `lodash` methods. */
const nativeMax = Math.max
/**
* This function is like `composeArgs` except that the arguments composition
* is tailored for `partialRight`.
@@ -20,7 +17,7 @@ function composeArgsRight(args, partials, holders, isCurried) {
const argsLength = args.length
const holdersLength = holders.length
const rightLength = partials.length
const rangeLength = nativeMax(argsLength - holdersLength, 0)
const rangeLength = Math.max(argsLength - holdersLength, 0)
const result = new Array(rangeLength + rightLength)
const isUncurried = !isCurried

View File

@@ -5,9 +5,6 @@ import hasUnicode from './hasUnicode.js'
import stringSize from './stringSize.js'
import stringToArray from './stringToArray.js'
/* Built-in method references for those with the same name as other `lodash` methods. */
const nativeCeil = Math.ceil
/**
* Creates the padding for `string` based on `length`. The `chars` string
* is truncated if the number of characters exceeds `length`.
@@ -24,7 +21,7 @@ function createPadding(length, chars) {
if (charsLength < 2) {
return charsLength ? baseRepeat(chars, length) : chars
}
const result = baseRepeat(chars, nativeCeil(length / stringSize(chars)))
const result = baseRepeat(chars, Math.ceil(length / stringSize(chars)))
return hasUnicode(chars)
? castSlice(stringToArray(result), 0, length).join('')
: result.slice(0, length)

View File

@@ -13,9 +13,6 @@ const WRAP_CURRY_FLAG = 8
const WRAP_ARY_FLAG = 128
const WRAP_REARG_FLAG = 256
/* Built-in method references for those with the same name as other `lodash` methods. */
const nativeMin = Math.min
/**
* Merges the function metadata of `source` into `data`.
*
@@ -76,7 +73,7 @@ function mergeData(data, source) {
}
// Use source `ary` if it's smaller.
if (srcBitmask & WRAP_ARY_FLAG) {
data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8])
data[8] = data[8] == null ? source[8] : Math.min(data[8], source[8])
}
// Use source `arity` if one is not provided.
if (data[9] == null) {

View File

@@ -3,9 +3,6 @@ import toFinite from './toFinite.js'
/** Built-in method references without a dependency on `root`. */
const freeParseFloat = parseFloat
/* Built-in method references for those with the same name as other `lodash` methods. */
const nativeRandom = Math.random
/**
* Produces a random number between the inclusive `lower` and `upper` bounds.
* If only one argument is provided a number between `0` and the given number
@@ -66,11 +63,11 @@ function random(lower, upper, floating) {
upper = temp
}
if (floating || lower % 1 || upper % 1) {
const rand = nativeRandom()
const rand = Math.random()
const randLength = `${ rand }`.length - 1
return Math.min(lower + (rand * (upper - lower + freeParseFloat(`1e-${ randLength }`)), upper))
}
return lower + Math.floor(nativeRandom() * (upper - lower + 1))
return lower + Math.floor(Math.random() * (upper - lower + 1))
}
export default random

View File

@@ -1,9 +1,3 @@
/* Used as references for the maximum safe integer in JavaScript Math.pow(2, 53) - 1 */
const MAX_SAFE_INTEGER = 9007199254740991
/* Built-in method references for those with the same name as other `lodash` methods. */
const nativeFloor = Math.floor
/**
* Repeats the given string `n` times.
*
@@ -25,7 +19,7 @@ const nativeFloor = Math.floor
*/
function repeat(string, n) {
let result = ''
if (!string || n < 1 || n > MAX_SAFE_INTEGER) {
if (!string || n < 1 || n > Number.MAX_SAFE_INTEGER) {
return result
}
// Leverage the exponentiation by squaring algorithm for a faster repeat.
@@ -34,7 +28,7 @@ function repeat(string, n) {
if (n % 2) {
result += string
}
n = nativeFloor(n / 2)
n = Math.floor(n / 2)
if (n) {
string += string
}

View File

@@ -3,9 +3,6 @@ import arrayMap from './.internal/arrayMap.js'
import baseProperty from './.internal/baseProperty.js'
import isArrayLikeObject from './isArrayLikeObject.js'
/* Built-in method references for those with the same name as other `lodash` methods. */
const nativeMax = Math.max
/**
* This method is like `zip` except that it accepts an array of grouped
* elements and creates an array regrouping the elements to their pre-zip
@@ -31,7 +28,7 @@ function unzip(array) {
let length = 0
array = arrayFilter(array, (group) => {
if (isArrayLikeObject(group)) {
length = nativeMax(group.length, length)
length = Math.max(group.length, length)
return true
}
})