blob: c1877609418f5efa53d06cf5a8ef16b417cd4e5b [file] [log] [blame]
Leo Repp58b9f112021-11-22 11:57:47 +01001'use strict';
2
3var GetIntrinsic = require('get-intrinsic');
4
5var $Number = GetIntrinsic('%Number%');
6
7var isPrimitive = require('../helpers/isPrimitive');
8
9var ToPrimitive = require('./ToPrimitive');
10var ToNumber = require('./ToNumber');
11var Type = require('./Type');
12
13// https://262.ecma-international.org/6.0/#sec-tonumber
14
15module.exports = function ToNumeric(argument) {
16 var primValue = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number);
17 if (Type(primValue) === 'BigInt') {
18 return primValue;
19 }
20 return ToNumber(primValue);
21};