You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					27 lines
				
				996 B
			
		
		
			
		
	
	
					27 lines
				
				996 B
			| 
											3 years ago
										 | 'use strict'; | ||
|  | // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
 | ||
|  | var fails = require('./_fails'); | ||
|  | var getTime = Date.prototype.getTime; | ||
|  | var $toISOString = Date.prototype.toISOString; | ||
|  | 
 | ||
|  | var lz = function (num) { | ||
|  |   return num > 9 ? num : '0' + num; | ||
|  | }; | ||
|  | 
 | ||
|  | // PhantomJS / old WebKit has a broken implementations
 | ||
|  | module.exports = (fails(function () { | ||
|  |   return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z'; | ||
|  | }) || !fails(function () { | ||
|  |   $toISOString.call(new Date(NaN)); | ||
|  | })) ? function toISOString() { | ||
|  |   if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value'); | ||
|  |   var d = this; | ||
|  |   var y = d.getUTCFullYear(); | ||
|  |   var m = d.getUTCMilliseconds(); | ||
|  |   var s = y < 0 ? '-' : y > 9999 ? '+' : ''; | ||
|  |   return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) + | ||
|  |     '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) + | ||
|  |     'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) + | ||
|  |     ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z'; | ||
|  | } : $toISOString; |