X-Git-Url: https://git.josue.xyz/?a=blobdiff_plain;f=.config%2Fcoc%2Fextensions%2Fnode_modules%2Fcoc-prettier%2Fnode_modules%2Fcore-js%2Fmodules%2Fes.number.to-fixed.js;h=dac971822df8716ee7e70f6a48d147db7b2ec01b;hb=3be0a9efc698a9570a44456009afc6014812625a;hp=fa4d3e279d792153827ed592eb82ab0457ba25bb;hpb=3aba54c891969552833dbc350b3139e944e17a97;p=dotfiles%2F.git diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/core-js/modules/es.number.to-fixed.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/core-js/modules/es.number.to-fixed.js index fa4d3e27..dac97182 100644 --- a/.config/coc/extensions/node_modules/coc-prettier/node_modules/core-js/modules/es.number.to-fixed.js +++ b/.config/coc/extensions/node_modules/coc-prettier/node_modules/core-js/modules/es.number.to-fixed.js @@ -1,12 +1,18 @@ 'use strict'; var $ = require('../internals/export'); -var toInteger = require('../internals/to-integer'); +var global = require('../internals/global'); +var uncurryThis = require('../internals/function-uncurry-this'); +var toIntegerOrInfinity = require('../internals/to-integer-or-infinity'); var thisNumberValue = require('../internals/this-number-value'); -var repeat = require('../internals/string-repeat'); +var $repeat = require('../internals/string-repeat'); var fails = require('../internals/fails'); -var nativeToFixed = 1.0.toFixed; +var RangeError = global.RangeError; +var String = global.String; var floor = Math.floor; +var repeat = uncurryThis($repeat); +var stringSlice = uncurryThis(''.slice); +var un$ToFixed = uncurryThis(1.0.toFixed); var pow = function (x, n, acc) { return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc); @@ -25,61 +31,60 @@ var log = function (x) { } return n; }; -var FORCED = nativeToFixed && ( - 0.00008.toFixed(3) !== '0.000' || - 0.9.toFixed(0) !== '1' || - 1.255.toFixed(2) !== '1.25' || - 1000000000000000128.0.toFixed(0) !== '1000000000000000128' -) || !fails(function () { +var multiply = function (data, n, c) { + var index = -1; + var c2 = c; + while (++index < 6) { + c2 += n * data[index]; + data[index] = c2 % 1e7; + c2 = floor(c2 / 1e7); + } +}; + +var divide = function (data, n) { + var index = 6; + var c = 0; + while (--index >= 0) { + c += data[index]; + data[index] = floor(c / n); + c = (c % n) * 1e7; + } +}; + +var dataToString = function (data) { + var index = 6; + var s = ''; + while (--index >= 0) { + if (s !== '' || index === 0 || data[index] !== 0) { + var t = String(data[index]); + s = s === '' ? t : s + repeat('0', 7 - t.length) + t; + } + } return s; +}; + +var FORCED = fails(function () { + return un$ToFixed(0.00008, 3) !== '0.000' || + un$ToFixed(0.9, 0) !== '1' || + un$ToFixed(1.255, 2) !== '1.25' || + un$ToFixed(1000000000000000128.0, 0) !== '1000000000000000128'; +}) || !fails(function () { // V8 ~ Android 4.3- - nativeToFixed.call({}); + un$ToFixed({}); }); // `Number.prototype.toFixed` method -// https://tc39.github.io/ecma262/#sec-number.prototype.tofixed +// https://tc39.es/ecma262/#sec-number.prototype.tofixed $({ target: 'Number', proto: true, forced: FORCED }, { - // eslint-disable-next-line max-statements toFixed: function toFixed(fractionDigits) { var number = thisNumberValue(this); - var fractDigits = toInteger(fractionDigits); + var fractDigits = toIntegerOrInfinity(fractionDigits); var data = [0, 0, 0, 0, 0, 0]; var sign = ''; var result = '0'; var e, z, j, k; - var multiply = function (n, c) { - var index = -1; - var c2 = c; - while (++index < 6) { - c2 += n * data[index]; - data[index] = c2 % 1e7; - c2 = floor(c2 / 1e7); - } - }; - - var divide = function (n) { - var index = 6; - var c = 0; - while (--index >= 0) { - c += data[index]; - data[index] = floor(c / n); - c = (c % n) * 1e7; - } - }; - - var dataToString = function () { - var index = 6; - var s = ''; - while (--index >= 0) { - if (s !== '' || index === 0 || data[index] !== 0) { - var t = String(data[index]); - s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t; - } - } return s; - }; - if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits'); - // eslint-disable-next-line no-self-compare + // eslint-disable-next-line no-self-compare -- NaN check if (number != number) return 'NaN'; if (number <= -1e21 || number >= 1e21) return String(number); if (number < 0) { @@ -92,33 +97,33 @@ $({ target: 'Number', proto: true, forced: FORCED }, { z *= 0x10000000000000; e = 52 - e; if (e > 0) { - multiply(0, z); + multiply(data, 0, z); j = fractDigits; while (j >= 7) { - multiply(1e7, 0); + multiply(data, 1e7, 0); j -= 7; } - multiply(pow(10, j, 1), 0); + multiply(data, pow(10, j, 1), 0); j = e - 1; while (j >= 23) { - divide(1 << 23); + divide(data, 1 << 23); j -= 23; } - divide(1 << j); - multiply(1, 1); - divide(2); - result = dataToString(); + divide(data, 1 << j); + multiply(data, 1, 1); + divide(data, 2); + result = dataToString(data); } else { - multiply(0, z); - multiply(1 << -e, 0); - result = dataToString() + repeat.call('0', fractDigits); + multiply(data, 0, z); + multiply(data, 1 << -e, 0); + result = dataToString(data) + repeat('0', fractDigits); } } if (fractDigits > 0) { k = result.length; result = sign + (k <= fractDigits - ? '0.' + repeat.call('0', fractDigits - k) + result - : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits)); + ? '0.' + repeat('0', fractDigits - k) + result + : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits)); } else { result = sign + result; } return result;