Spaces:
Running
Running
// Polyfills | |
if ( Number.EPSILON === undefined ) { | |
Number.EPSILON = Math.pow( 2, - 52 ); | |
} | |
if ( Number.isInteger === undefined ) { | |
// Missing in IE | |
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger | |
Number.isInteger = function ( value ) { | |
return typeof value === 'number' && isFinite( value ) && Math.floor( value ) === value; | |
}; | |
} | |
// | |
if ( Math.sign === undefined ) { | |
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sign | |
Math.sign = function ( x ) { | |
return ( x < 0 ) ? - 1 : ( x > 0 ) ? 1 : + x; | |
}; | |
} | |
if ( 'name' in Function.prototype === false ) { | |
// Missing in IE | |
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name | |
Object.defineProperty( Function.prototype, 'name', { | |
get: function () { | |
return this.toString().match( /^\s*function\s*([^\(\s]*)/ )[ 1 ]; | |
} | |
} ); | |
} | |
if ( Object.assign === undefined ) { | |
// Missing in IE | |
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign | |
( function () { | |
Object.assign = function ( target ) { | |
'use strict'; | |
if ( target === undefined || target === null ) { | |
throw new TypeError( 'Cannot convert undefined or null to object' ); | |
} | |
var output = Object( target ); | |
for ( var index = 1; index < arguments.length; index ++ ) { | |
var source = arguments[ index ]; | |
if ( source !== undefined && source !== null ) { | |
for ( var nextKey in source ) { | |
if ( Object.prototype.hasOwnProperty.call( source, nextKey ) ) { | |
output[ nextKey ] = source[ nextKey ]; | |
} | |
} | |
} | |
} | |
return output; | |
}; | |
} )(); | |
} | |