diff options
Diffstat (limited to 'node_modules/core-js/library/modules/es5.js')
-rw-r--r-- | node_modules/core-js/library/modules/es5.js | 311 |
1 files changed, 35 insertions, 276 deletions
diff --git a/node_modules/core-js/library/modules/es5.js b/node_modules/core-js/library/modules/es5.js index 50f72b047..dd7ebadf8 100644 --- a/node_modules/core-js/library/modules/es5.js +++ b/node_modules/core-js/library/modules/es5.js @@ -1,276 +1,35 @@ -'use strict'; -var $ = require('./$') - , $export = require('./$.export') - , DESCRIPTORS = require('./$.descriptors') - , createDesc = require('./$.property-desc') - , html = require('./$.html') - , cel = require('./$.dom-create') - , has = require('./$.has') - , cof = require('./$.cof') - , invoke = require('./$.invoke') - , fails = require('./$.fails') - , anObject = require('./$.an-object') - , aFunction = require('./$.a-function') - , isObject = require('./$.is-object') - , toObject = require('./$.to-object') - , toIObject = require('./$.to-iobject') - , toInteger = require('./$.to-integer') - , toIndex = require('./$.to-index') - , toLength = require('./$.to-length') - , IObject = require('./$.iobject') - , IE_PROTO = require('./$.uid')('__proto__') - , createArrayMethod = require('./$.array-methods') - , arrayIndexOf = require('./$.array-includes')(false) - , ObjectProto = Object.prototype - , ArrayProto = Array.prototype - , arraySlice = ArrayProto.slice - , arrayJoin = ArrayProto.join - , defineProperty = $.setDesc - , getOwnDescriptor = $.getDesc - , defineProperties = $.setDescs - , factories = {} - , IE8_DOM_DEFINE; - -if(!DESCRIPTORS){ - IE8_DOM_DEFINE = !fails(function(){ - return defineProperty(cel('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - $.setDesc = function(O, P, Attributes){ - if(IE8_DOM_DEFINE)try { - return defineProperty(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)anObject(O)[P] = Attributes.value; - return O; - }; - $.getDesc = function(O, P){ - if(IE8_DOM_DEFINE)try { - return getOwnDescriptor(O, P); - } catch(e){ /* empty */ } - if(has(O, P))return createDesc(!ObjectProto.propertyIsEnumerable.call(O, P), O[P]); - }; - $.setDescs = defineProperties = function(O, Properties){ - anObject(O); - var keys = $.getKeys(Properties) - , length = keys.length - , i = 0 - , P; - while(length > i)$.setDesc(O, P = keys[i++], Properties[P]); - return O; - }; -} -$export($export.S + $export.F * !DESCRIPTORS, 'Object', { - // 19.1.2.6 / 15.2.3.3 Object.getOwnPropertyDescriptor(O, P) - getOwnPropertyDescriptor: $.getDesc, - // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) - defineProperty: $.setDesc, - // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties) - defineProperties: defineProperties -}); - - // IE 8- don't enum bug keys -var keys1 = ('constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,' + - 'toLocaleString,toString,valueOf').split(',') - // Additional keys for getOwnPropertyNames - , keys2 = keys1.concat('length', 'prototype') - , keysLen1 = keys1.length; - -// Create object with `null` prototype: use iframe Object with cleared prototype -var createDict = function(){ - // Thrash, waste and sodomy: IE GC bug - var iframe = cel('iframe') - , i = keysLen1 - , gt = '>' - , iframeDocument; - iframe.style.display = 'none'; - html.appendChild(iframe); - iframe.src = 'javascript:'; // eslint-disable-line no-script-url - // createDict = iframe.contentWindow.Object; - // html.removeChild(iframe); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write('<script>document.F=Object</script' + gt); - iframeDocument.close(); - createDict = iframeDocument.F; - while(i--)delete createDict.prototype[keys1[i]]; - return createDict(); -}; -var createGetKeys = function(names, length){ - return function(object){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; -}; -var Empty = function(){}; -$export($export.S, 'Object', { - // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) - getPrototypeOf: $.getProto = $.getProto || function(O){ - O = toObject(O); - if(has(O, IE_PROTO))return O[IE_PROTO]; - if(typeof O.constructor == 'function' && O instanceof O.constructor){ - return O.constructor.prototype; - } return O instanceof Object ? ObjectProto : null; - }, - // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) - getOwnPropertyNames: $.getNames = $.getNames || createGetKeys(keys2, keys2.length, true), - // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) - create: $.create = $.create || function(O, /*?*/Properties){ - var result; - if(O !== null){ - Empty.prototype = anObject(O); - result = new Empty(); - Empty.prototype = null; - // add "__proto__" for Object.getPrototypeOf shim - result[IE_PROTO] = O; - } else result = createDict(); - return Properties === undefined ? result : defineProperties(result, Properties); - }, - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - keys: $.getKeys = $.getKeys || createGetKeys(keys1, keysLen1, false) -}); - -var construct = function(F, len, args){ - if(!(len in factories)){ - for(var n = [], i = 0; i < len; i++)n[i] = 'a[' + i + ']'; - factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')'); - } - return factories[len](F, args); -}; - -// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...) -$export($export.P, 'Function', { - bind: function bind(that /*, args... */){ - var fn = aFunction(this) - , partArgs = arraySlice.call(arguments, 1); - var bound = function(/* args... */){ - var args = partArgs.concat(arraySlice.call(arguments)); - return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that); - }; - if(isObject(fn.prototype))bound.prototype = fn.prototype; - return bound; - } -}); - -// fallback for not array-like ES3 strings and DOM objects -$export($export.P + $export.F * fails(function(){ - if(html)arraySlice.call(html); -}), 'Array', { - slice: function(begin, end){ - var len = toLength(this.length) - , klass = cof(this); - end = end === undefined ? len : end; - if(klass == 'Array')return arraySlice.call(this, begin, end); - var start = toIndex(begin, len) - , upTo = toIndex(end, len) - , size = toLength(upTo - start) - , cloned = Array(size) - , i = 0; - for(; i < size; i++)cloned[i] = klass == 'String' - ? this.charAt(start + i) - : this[start + i]; - return cloned; - } -}); -$export($export.P + $export.F * (IObject != Object), 'Array', { - join: function join(separator){ - return arrayJoin.call(IObject(this), separator === undefined ? ',' : separator); - } -}); - -// 22.1.2.2 / 15.4.3.2 Array.isArray(arg) -$export($export.S, 'Array', {isArray: require('./$.is-array')}); - -var createArrayReduce = function(isRight){ - return function(callbackfn, memo){ - aFunction(callbackfn); - var O = IObject(this) - , length = toLength(O.length) - , index = isRight ? length - 1 : 0 - , i = isRight ? -1 : 1; - if(arguments.length < 2)for(;;){ - if(index in O){ - memo = O[index]; - index += i; - break; - } - index += i; - if(isRight ? index < 0 : length <= index){ - throw TypeError('Reduce of empty array with no initial value'); - } - } - for(;isRight ? index >= 0 : length > index; index += i)if(index in O){ - memo = callbackfn(memo, O[index], index, this); - } - return memo; - }; -}; - -var methodize = function($fn){ - return function(arg1/*, arg2 = undefined */){ - return $fn(this, arg1, arguments[1]); - }; -}; - -$export($export.P, 'Array', { - // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg]) - forEach: $.each = $.each || methodize(createArrayMethod(0)), - // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg]) - map: methodize(createArrayMethod(1)), - // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg]) - filter: methodize(createArrayMethod(2)), - // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg]) - some: methodize(createArrayMethod(3)), - // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg]) - every: methodize(createArrayMethod(4)), - // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue]) - reduce: createArrayReduce(false), - // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue]) - reduceRight: createArrayReduce(true), - // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex]) - indexOf: methodize(arrayIndexOf), - // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex]) - lastIndexOf: function(el, fromIndex /* = @[*-1] */){ - var O = toIObject(this) - , length = toLength(O.length) - , index = length - 1; - if(arguments.length > 1)index = Math.min(index, toInteger(fromIndex)); - if(index < 0)index = toLength(length + index); - for(;index >= 0; index--)if(index in O)if(O[index] === el)return index; - return -1; - } -}); - -// 20.3.3.1 / 15.9.4.4 Date.now() -$export($export.S, 'Date', {now: function(){ return +new Date; }}); - -var lz = function(num){ - return num > 9 ? num : '0' + num; -}; - -// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString() -// PhantomJS / old WebKit has a broken implementations -$export($export.P + $export.F * (fails(function(){ - return new Date(-5e13 - 1).toISOString() != '0385-07-25T07:06:39.999Z'; -}) || !fails(function(){ - new Date(NaN).toISOString(); -})), 'Date', { - toISOString: function toISOString(){ - if(!isFinite(this))throw RangeError('Invalid time value'); - var d = this - , y = d.getUTCFullYear() - , m = d.getUTCMilliseconds() - , 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'; - } -});
\ No newline at end of file +// This file still here for a legacy code and will be removed in a near time +require('./es6.object.create'); +require('./es6.object.define-property'); +require('./es6.object.define-properties'); +require('./es6.object.get-own-property-descriptor'); +require('./es6.object.get-prototype-of'); +require('./es6.object.keys'); +require('./es6.object.get-own-property-names'); +require('./es6.object.freeze'); +require('./es6.object.seal'); +require('./es6.object.prevent-extensions'); +require('./es6.object.is-frozen'); +require('./es6.object.is-sealed'); +require('./es6.object.is-extensible'); +require('./es6.function.bind'); +require('./es6.array.is-array'); +require('./es6.array.join'); +require('./es6.array.slice'); +require('./es6.array.sort'); +require('./es6.array.for-each'); +require('./es6.array.map'); +require('./es6.array.filter'); +require('./es6.array.some'); +require('./es6.array.every'); +require('./es6.array.reduce'); +require('./es6.array.reduce-right'); +require('./es6.array.index-of'); +require('./es6.array.last-index-of'); +require('./es6.date.now'); +require('./es6.date.to-iso-string'); +require('./es6.date.to-json'); +require('./es6.parse-int'); +require('./es6.parse-float'); +require('./es6.string.trim'); +require('./es6.regexp.to-string');
\ No newline at end of file |