JSFiddle - React, Tailwind, and code Playground

HTML

смари в консоль

JavaScript

function bigint(string){
	string = string.toString() || '0';
	if(
			(string.indexOf('.') === -1)
		&&	(string.indexOf('e') === -1)
		&&	Number(string) <= Number.MAX_SAFE_INTEGER
	){
		return Number(string);
	}
	else if(
			(string.indexOf('e') !== -1)
		||	(string.indexOf('.') !== -1)	//(1e-3).toString() = "0.001"
	){
		if(
				(string.indexOf('e-') !== -1)
			||	(string.indexOf('e+') !== -1)
			||	(string.indexOf('.') !== -1)
		){
			//return string; //нахой
			if(string.indexOf('e+') !== -1){
			
				var exponent = string.split('e+')[1];
				
				var multiplier = string.split('e+')[0];
				var divisor = (10n ** eval( (string.split('e')[0].length - (string.indexOf('.') + 1) ).toString()+'n' ) );
				var wholePart = ( eval(multiplier.split('.')[0]+'n' ) );
				var rest = eval('1'+( ( multiplier.split('.')[1] || '0e' ).split('e')[0])+'n') - divisor;
				return ( (wholePart * divisor + rest) * (10n ** eval(exponent+'n')) / divisor );
			}
			else if(string.indexOf('e-') !== -1){
				var divisor = (10n ** eval(string.split('e-')[1]+'n'));
				var divisor2 = (10n ** eval( (string.split('e')[0].length - (string.indexOf('.') + 1) ).toString()+'n' ) );
				var multiplier = (string.split('e-')[0]);
				var wholePart = ( eval(multiplier.split('.')[0]+'n' ) );
				var rest = eval('1'+( ( string.split('.')[1] || '0e').split('e')[0] ) +'n') - divisor2;
			}else if(string.indexOf('.') !== -1){
				var divisor = eval('0n');
				var wholePart = ( eval(string.split('.')[0]+'n' ) );
				var divisor2 = (10n ** eval( (string.length - (string.indexOf('.') + 1) ).toString()+'n' ) );
				var rest = eval( ('1'+string.split('.')[1] || '0')+'n') - divisor2;
			}

			return [wholePart, divisor, rest];
		}
	}else{
		return eval(string+'n');
	}
}

console.log(1, bigint(1).toString());
console.log(Number.MAX_SAFE_INTEGER, bigint(Number.MAX_SAFE_INTEGER).toString()); //9007199254740991
console.log(9007199254740992, bigint(9007199254740992).toString());
console.log('fail here',...