25 lines
757 B
JavaScript
25 lines
757 B
JavaScript
|
'use strict';
|
||
|
var $ = require('../internals/export');
|
||
|
var fails = require('../internals/fails');
|
||
|
var thisNumberValue = require('../internals/this-number-value');
|
||
|
|
||
|
var nativeToPrecision = 1.0.toPrecision;
|
||
|
|
||
|
var FORCED = fails(function () {
|
||
|
// IE7-
|
||
|
return nativeToPrecision.call(1, undefined) !== '1';
|
||
|
}) || !fails(function () {
|
||
|
// V8 ~ Android 4.3-
|
||
|
nativeToPrecision.call({});
|
||
|
});
|
||
|
|
||
|
// `Number.prototype.toPrecision` method
|
||
|
// https://tc39.es/ecma262/#sec-number.prototype.toprecision
|
||
|
$({ target: 'Number', proto: true, forced: FORCED }, {
|
||
|
toPrecision: function toPrecision(precision) {
|
||
|
return precision === undefined
|
||
|
? nativeToPrecision.call(thisNumberValue(this))
|
||
|
: nativeToPrecision.call(thisNumberValue(this), precision);
|
||
|
}
|
||
|
});
|