| 'use strict'; | 
| // TODO: Remove from `core-js@4` | 
| var uncurryThis = require('../internals/function-uncurry-this'); | 
| var defineBuiltIn = require('../internals/define-built-in'); | 
|   | 
| var DatePrototype = Date.prototype; | 
| var INVALID_DATE = 'Invalid Date'; | 
| var TO_STRING = 'toString'; | 
| var nativeDateToString = uncurryThis(DatePrototype[TO_STRING]); | 
| var thisTimeValue = uncurryThis(DatePrototype.getTime); | 
|   | 
| // `Date.prototype.toString` method | 
| // https://tc39.es/ecma262/#sec-date.prototype.tostring | 
| if (String(new Date(NaN)) !== INVALID_DATE) { | 
|   defineBuiltIn(DatePrototype, TO_STRING, function toString() { | 
|     var value = thisTimeValue(this); | 
|     // eslint-disable-next-line no-self-compare -- NaN check | 
|     return value === value ? nativeDateToString(this) : INVALID_DATE; | 
|   }); | 
| } |