summaryrefslogtreecommitdiff
path: root/lib/util.js
diff options
context:
space:
mode:
authorMasashi Hirano <cherrydog07@gmail.com>2018-08-03 00:52:27 +0900
committerRoman Reiss <me@silverwind.io>2018-10-09 20:11:48 +0200
commitd71dd97263afc65c5cbf9e08ddc94c13f2479b8c (patch)
treee10e97425b5df13dd6cf475e77548fc3d3cf2679 /lib/util.js
parent186ce7e837bde20bd2726d662721a93c95ba24a6 (diff)
downloadnode-new-d71dd97263afc65c5cbf9e08ddc94c13f2479b8c.tar.gz
util: support BigInt in util.format
`util.format` and `console.log` now support BigInt via the existing format specifiers `%i` and `%d`. PR-URL: https://github.com/nodejs/node/pull/22097 Reviewed-By: Roman Reiss <me@silverwind.io> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'lib/util.js')
-rw-r--r--lib/util.js16
1 files changed, 14 insertions, 2 deletions
diff --git a/lib/util.js b/lib/util.js
index 27affda109..2e42beb58b 100644
--- a/lib/util.js
+++ b/lib/util.js
@@ -102,7 +102,13 @@ function formatWithOptions(inspectOptions, f) {
tempStr = tryStringify(arguments[a++]);
break;
case 100: // 'd'
- tempStr = `${Number(arguments[a++])}`;
+ const tempNum = arguments[a++];
+ // eslint-disable-next-line valid-typeof
+ if (typeof tempNum === 'bigint') {
+ tempStr = `${tempNum}n`;
+ } else {
+ tempStr = `${Number(tempNum)}`;
+ }
break;
case 79: // 'O'
tempStr = inspect(arguments[a++], inspectOptions);
@@ -117,7 +123,13 @@ function formatWithOptions(inspectOptions, f) {
break;
}
case 105: // 'i'
- tempStr = `${parseInt(arguments[a++])}`;
+ const tempInteger = arguments[a++];
+ // eslint-disable-next-line valid-typeof
+ if (typeof tempInteger === 'bigint') {
+ tempStr = `${tempInteger}n`;
+ } else {
+ tempStr = `${parseInt(tempInteger)}`;
+ }
break;
case 102: // 'f'
tempStr = `${parseFloat(arguments[a++])}`;