diff options
Diffstat (limited to 'src/node_modules/es-abstract/2020/ToNumeric.js')
-rw-r--r-- | src/node_modules/es-abstract/2020/ToNumeric.js | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/node_modules/es-abstract/2020/ToNumeric.js b/src/node_modules/es-abstract/2020/ToNumeric.js new file mode 100644 index 0000000..5ca58c5 --- /dev/null +++ b/src/node_modules/es-abstract/2020/ToNumeric.js @@ -0,0 +1,21 @@ +'use strict'; + +var GetIntrinsic = require('../GetIntrinsic'); + +var $Number = GetIntrinsic('%Number%'); + +var isPrimitive = require('../helpers/isPrimitive'); + +var ToPrimitive = require('./ToPrimitive'); +var ToNumber = require('./ToNumber'); +var Type = require('./Type'); + +// https://www.ecma-international.org/ecma-262/6.0/#sec-tonumber + +module.exports = function ToNumeric(argument) { + var primValue = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number); + if (Type(primValue) === 'BigInt') { + return primValue; + } + return ToNumber(primValue); +}; |