aboutsummaryrefslogtreecommitdiff
path: root/node_modules/core-js/library/modules/es5.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/core-js/library/modules/es5.js')
-rw-r--r--node_modules/core-js/library/modules/es5.js311
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