| '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.github.io/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); |
| } |
| }); |