'use strict'; var $export = require('./_export') , toObject = require('./_to-object') , toPrimitive = require('./_to-primitive'); $export($export.P + $export.F * require('./_fails')(function(){ return new Date(NaN).toJSON() !== null || Date.prototype.toJSON.call({toISOString: function(){ return 1; }}) !== 1; }), 'Date', { toJSON: function toJSON(key){ var O = toObject(this) , pv = toPrimitive(O); return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString(); } });