core-js 2.3.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -5
- package/bower.json +1 -1
- package/build/config.js +4 -3
- package/client/core.js +280 -58
- package/client/core.min.js +4 -4
- package/client/core.min.js.map +1 -1
- package/client/library.js +280 -58
- package/client/library.min.js +4 -4
- package/client/library.min.js.map +1 -1
- package/client/shim.js +253 -31
- package/client/shim.min.js +4 -4
- package/client/shim.min.js.map +1 -1
- package/es7/index.js +1 -0
- package/es7/observable.js +7 -0
- package/fn/observable.js +7 -0
- package/library/es7/index.js +1 -0
- package/library/es7/observable.js +7 -0
- package/library/fn/observable.js +7 -0
- package/library/modules/_core.js +1 -1
- package/library/modules/_for-of.js +12 -6
- package/library/modules/es6.reflect.apply.js +5 -3
- package/library/modules/es6.reflect.construct.js +2 -1
- package/library/modules/es6.symbol.js +21 -13
- package/library/modules/es7.observable.js +199 -0
- package/library/shim.js +1 -0
- package/library/stage/1.js +1 -0
- package/modules/_core.js +1 -1
- package/modules/_for-of.js +12 -6
- package/modules/es6.reflect.apply.js +5 -3
- package/modules/es6.reflect.construct.js +2 -1
- package/modules/es6.symbol.js +21 -13
- package/modules/es7.observable.js +199 -0
- package/package.json +10 -8
- package/shim.js +1 -0
- package/stage/1.js +1 -0
- package/README.md +0 -1987
package/es7/index.js
CHANGED
|
@@ -32,4 +32,5 @@ require('../modules/es7.reflect.has-metadata');
|
|
|
32
32
|
require('../modules/es7.reflect.has-own-metadata');
|
|
33
33
|
require('../modules/es7.reflect.metadata');
|
|
34
34
|
require('../modules/es7.asap');
|
|
35
|
+
require('../modules/es7.observable');
|
|
35
36
|
module.exports = require('../modules/_core');
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
require('../modules/es6.object.to-string');
|
|
2
|
+
require('../modules/es6.string.iterator');
|
|
3
|
+
require('../modules/web.dom.iterable');
|
|
4
|
+
require('../modules/es6.promise');
|
|
5
|
+
require('../modules/es7.symbol.observable');
|
|
6
|
+
require('../modules/es7.observable');
|
|
7
|
+
module.exports = require('../modules/_core').Observable;
|
package/fn/observable.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
require('../modules/es6.object.to-string');
|
|
2
|
+
require('../modules/es6.string.iterator');
|
|
3
|
+
require('../modules/web.dom.iterable');
|
|
4
|
+
require('../modules/es6.promise');
|
|
5
|
+
require('../modules/es7.symbol.observable');
|
|
6
|
+
require('../modules/es7.observable');
|
|
7
|
+
module.exports = require('../modules/_core').Observable;
|
package/library/es7/index.js
CHANGED
|
@@ -32,4 +32,5 @@ require('../modules/es7.reflect.has-metadata');
|
|
|
32
32
|
require('../modules/es7.reflect.has-own-metadata');
|
|
33
33
|
require('../modules/es7.reflect.metadata');
|
|
34
34
|
require('../modules/es7.asap');
|
|
35
|
+
require('../modules/es7.observable');
|
|
35
36
|
module.exports = require('../modules/_core');
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
require('../modules/es6.object.to-string');
|
|
2
|
+
require('../modules/es6.string.iterator');
|
|
3
|
+
require('../modules/web.dom.iterable');
|
|
4
|
+
require('../modules/es6.promise');
|
|
5
|
+
require('../modules/es7.symbol.observable');
|
|
6
|
+
require('../modules/es7.observable');
|
|
7
|
+
module.exports = require('../modules/_core').Observable;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
require('../modules/es6.object.to-string');
|
|
2
|
+
require('../modules/es6.string.iterator');
|
|
3
|
+
require('../modules/web.dom.iterable');
|
|
4
|
+
require('../modules/es6.promise');
|
|
5
|
+
require('../modules/es7.symbol.observable');
|
|
6
|
+
require('../modules/es7.observable');
|
|
7
|
+
module.exports = require('../modules/_core').Observable;
|
package/library/modules/_core.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var core = module.exports = {version: '2.
|
|
1
|
+
var core = module.exports = {version: '2.4.0'};
|
|
2
2
|
if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
|
|
@@ -3,17 +3,23 @@ var ctx = require('./_ctx')
|
|
|
3
3
|
, isArrayIter = require('./_is-array-iter')
|
|
4
4
|
, anObject = require('./_an-object')
|
|
5
5
|
, toLength = require('./_to-length')
|
|
6
|
-
, getIterFn = require('./core.get-iterator-method')
|
|
7
|
-
|
|
6
|
+
, getIterFn = require('./core.get-iterator-method')
|
|
7
|
+
, BREAK = {}
|
|
8
|
+
, RETURN = {};
|
|
9
|
+
var exports = module.exports = function(iterable, entries, fn, that, ITERATOR){
|
|
8
10
|
var iterFn = ITERATOR ? function(){ return iterable; } : getIterFn(iterable)
|
|
9
11
|
, f = ctx(fn, that, entries ? 2 : 1)
|
|
10
12
|
, index = 0
|
|
11
|
-
, length, step, iterator;
|
|
13
|
+
, length, step, iterator, result;
|
|
12
14
|
if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');
|
|
13
15
|
// fast case for arrays with default iterator
|
|
14
16
|
if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){
|
|
15
|
-
entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
|
|
17
|
+
result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
|
|
18
|
+
if(result === BREAK || result === RETURN)return result;
|
|
16
19
|
} else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){
|
|
17
|
-
call(iterator, f, step.value, entries);
|
|
20
|
+
result = call(iterator, f, step.value, entries);
|
|
21
|
+
if(result === BREAK || result === RETURN)return result;
|
|
18
22
|
}
|
|
19
|
-
};
|
|
23
|
+
};
|
|
24
|
+
exports.BREAK = BREAK;
|
|
25
|
+
exports.RETURN = RETURN;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
|
|
2
|
-
var $export
|
|
3
|
-
,
|
|
2
|
+
var $export = require('./_export')
|
|
3
|
+
, aFunction = require('./_a-function')
|
|
4
|
+
, anObject = require('./_an-object')
|
|
5
|
+
, _apply = Function.apply;
|
|
4
6
|
|
|
5
7
|
$export($export.S, 'Reflect', {
|
|
6
8
|
apply: function apply(target, thisArgument, argumentsList){
|
|
7
|
-
return _apply.call(target, thisArgument, argumentsList);
|
|
9
|
+
return _apply.call(aFunction(target), thisArgument, anObject(argumentsList));
|
|
8
10
|
}
|
|
9
11
|
});
|
|
@@ -14,10 +14,11 @@ $export($export.S + $export.F * require('./_fails')(function(){
|
|
|
14
14
|
}), 'Reflect', {
|
|
15
15
|
construct: function construct(Target, args /*, newTarget*/){
|
|
16
16
|
aFunction(Target);
|
|
17
|
+
anObject(args);
|
|
17
18
|
var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
|
|
18
19
|
if(Target == newTarget){
|
|
19
20
|
// w/o altered newTarget, optimization for 0-4 arguments
|
|
20
|
-
|
|
21
|
+
switch(args.length){
|
|
21
22
|
case 0: return new Target;
|
|
22
23
|
case 1: return new Target(args[0]);
|
|
23
24
|
case 2: return new Target(args[0], args[1]);
|
|
@@ -37,6 +37,7 @@ var global = require('./_global')
|
|
|
37
37
|
, isEnum = {}.propertyIsEnumerable
|
|
38
38
|
, SymbolRegistry = shared('symbol-registry')
|
|
39
39
|
, AllSymbols = shared('symbols')
|
|
40
|
+
, OPSymbols = shared('op-symbols')
|
|
40
41
|
, ObjectProto = Object[PROTOTYPE]
|
|
41
42
|
, USE_NATIVE = typeof $Symbol == 'function'
|
|
42
43
|
, QObject = global.QObject;
|
|
@@ -68,6 +69,7 @@ var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){
|
|
|
68
69
|
};
|
|
69
70
|
|
|
70
71
|
var $defineProperty = function defineProperty(it, key, D){
|
|
72
|
+
if(it === ObjectProto)$defineProperty(OPSymbols, key, D);
|
|
71
73
|
anObject(it);
|
|
72
74
|
key = toPrimitive(key, true);
|
|
73
75
|
anObject(D);
|
|
@@ -95,10 +97,14 @@ var $create = function create(it, P){
|
|
|
95
97
|
};
|
|
96
98
|
var $propertyIsEnumerable = function propertyIsEnumerable(key){
|
|
97
99
|
var E = isEnum.call(this, key = toPrimitive(key, true));
|
|
100
|
+
if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;
|
|
98
101
|
return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
|
|
99
102
|
};
|
|
100
103
|
var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){
|
|
101
|
-
|
|
104
|
+
it = toIObject(it);
|
|
105
|
+
key = toPrimitive(key, true);
|
|
106
|
+
if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;
|
|
107
|
+
var D = gOPD(it, key);
|
|
102
108
|
if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;
|
|
103
109
|
return D;
|
|
104
110
|
};
|
|
@@ -107,16 +113,19 @@ var $getOwnPropertyNames = function getOwnPropertyNames(it){
|
|
|
107
113
|
, result = []
|
|
108
114
|
, i = 0
|
|
109
115
|
, key;
|
|
110
|
-
while(names.length > i)
|
|
111
|
-
|
|
116
|
+
while(names.length > i){
|
|
117
|
+
if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);
|
|
118
|
+
} return result;
|
|
112
119
|
};
|
|
113
120
|
var $getOwnPropertySymbols = function getOwnPropertySymbols(it){
|
|
114
|
-
var
|
|
121
|
+
var IS_OP = it === ObjectProto
|
|
122
|
+
, names = gOPN(IS_OP ? OPSymbols : toIObject(it))
|
|
115
123
|
, result = []
|
|
116
124
|
, i = 0
|
|
117
125
|
, key;
|
|
118
|
-
while(names.length > i)
|
|
119
|
-
|
|
126
|
+
while(names.length > i){
|
|
127
|
+
if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);
|
|
128
|
+
} return result;
|
|
120
129
|
};
|
|
121
130
|
|
|
122
131
|
// 19.4.1.1 Symbol([description])
|
|
@@ -124,13 +133,12 @@ if(!USE_NATIVE){
|
|
|
124
133
|
$Symbol = function Symbol(){
|
|
125
134
|
if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');
|
|
126
135
|
var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
});
|
|
136
|
+
var $set = function(value){
|
|
137
|
+
if(this === ObjectProto)$set.call(OPSymbols, value);
|
|
138
|
+
if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
|
|
139
|
+
setSymbolDesc(this, tag, createDesc(1, value));
|
|
140
|
+
};
|
|
141
|
+
if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});
|
|
134
142
|
return wrap(tag);
|
|
135
143
|
};
|
|
136
144
|
redefine($Symbol[PROTOTYPE], 'toString', function toString(){
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
// https://github.com/zenparsing/es-observable
|
|
3
|
+
var $export = require('./_export')
|
|
4
|
+
, global = require('./_global')
|
|
5
|
+
, core = require('./_core')
|
|
6
|
+
, microtask = require('./_microtask')()
|
|
7
|
+
, OBSERVABLE = require('./_wks')('observable')
|
|
8
|
+
, aFunction = require('./_a-function')
|
|
9
|
+
, anObject = require('./_an-object')
|
|
10
|
+
, anInstance = require('./_an-instance')
|
|
11
|
+
, redefineAll = require('./_redefine-all')
|
|
12
|
+
, hide = require('./_hide')
|
|
13
|
+
, forOf = require('./_for-of')
|
|
14
|
+
, RETURN = forOf.RETURN;
|
|
15
|
+
|
|
16
|
+
var getMethod = function(fn){
|
|
17
|
+
return fn == null ? undefined : aFunction(fn);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
var cleanupSubscription = function(subscription){
|
|
21
|
+
var cleanup = subscription._c;
|
|
22
|
+
if(cleanup){
|
|
23
|
+
subscription._c = undefined;
|
|
24
|
+
cleanup();
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
var subscriptionClosed = function(subscription){
|
|
29
|
+
return subscription._o === undefined;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
var closeSubscription = function(subscription){
|
|
33
|
+
if(!subscriptionClosed(subscription)){
|
|
34
|
+
subscription._o = undefined;
|
|
35
|
+
cleanupSubscription(subscription);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
var Subscription = function(observer, subscriber){
|
|
40
|
+
anObject(observer);
|
|
41
|
+
this._c = undefined;
|
|
42
|
+
this._o = observer;
|
|
43
|
+
observer = new SubscriptionObserver(this);
|
|
44
|
+
try {
|
|
45
|
+
var cleanup = subscriber(observer)
|
|
46
|
+
, subscription = cleanup;
|
|
47
|
+
if(cleanup != null){
|
|
48
|
+
if(typeof cleanup.unsubscribe === 'function')cleanup = function(){ subscription.unsubscribe(); };
|
|
49
|
+
else aFunction(cleanup);
|
|
50
|
+
this._c = cleanup;
|
|
51
|
+
}
|
|
52
|
+
} catch(e){
|
|
53
|
+
observer.error(e);
|
|
54
|
+
return;
|
|
55
|
+
} if(subscriptionClosed(this))cleanupSubscription(this);
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
Subscription.prototype = redefineAll({}, {
|
|
59
|
+
unsubscribe: function unsubscribe(){ closeSubscription(this); }
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
var SubscriptionObserver = function(subscription){
|
|
63
|
+
this._s = subscription;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
SubscriptionObserver.prototype = redefineAll({}, {
|
|
67
|
+
next: function next(value){
|
|
68
|
+
var subscription = this._s;
|
|
69
|
+
if(!subscriptionClosed(subscription)){
|
|
70
|
+
var observer = subscription._o;
|
|
71
|
+
try {
|
|
72
|
+
var m = getMethod(observer.next);
|
|
73
|
+
if(m)return m.call(observer, value);
|
|
74
|
+
} catch(e){
|
|
75
|
+
try {
|
|
76
|
+
closeSubscription(subscription);
|
|
77
|
+
} finally {
|
|
78
|
+
throw e;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
error: function error(value){
|
|
84
|
+
var subscription = this._s;
|
|
85
|
+
if(subscriptionClosed(subscription))throw value;
|
|
86
|
+
var observer = subscription._o;
|
|
87
|
+
subscription._o = undefined;
|
|
88
|
+
try {
|
|
89
|
+
var m = getMethod(observer.error);
|
|
90
|
+
if(!m)throw value;
|
|
91
|
+
value = m.call(observer, value);
|
|
92
|
+
} catch(e){
|
|
93
|
+
try {
|
|
94
|
+
cleanupSubscription(subscription);
|
|
95
|
+
} finally {
|
|
96
|
+
throw e;
|
|
97
|
+
}
|
|
98
|
+
} cleanupSubscription(subscription);
|
|
99
|
+
return value;
|
|
100
|
+
},
|
|
101
|
+
complete: function complete(value){
|
|
102
|
+
var subscription = this._s;
|
|
103
|
+
if(!subscriptionClosed(subscription)){
|
|
104
|
+
var observer = subscription._o;
|
|
105
|
+
subscription._o = undefined;
|
|
106
|
+
try {
|
|
107
|
+
var m = getMethod(observer.complete);
|
|
108
|
+
value = m ? m.call(observer, value) : undefined;
|
|
109
|
+
} catch(e){
|
|
110
|
+
try {
|
|
111
|
+
cleanupSubscription(subscription);
|
|
112
|
+
} finally {
|
|
113
|
+
throw e;
|
|
114
|
+
}
|
|
115
|
+
} cleanupSubscription(subscription);
|
|
116
|
+
return value;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
var $Observable = function Observable(subscriber){
|
|
122
|
+
anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber);
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
redefineAll($Observable.prototype, {
|
|
126
|
+
subscribe: function subscribe(observer){
|
|
127
|
+
return new Subscription(observer, this._f);
|
|
128
|
+
},
|
|
129
|
+
forEach: function forEach(fn){
|
|
130
|
+
var that = this;
|
|
131
|
+
return new (core.Promise || global.Promise)(function(resolve, reject){
|
|
132
|
+
aFunction(fn);
|
|
133
|
+
var subscription = that.subscribe({
|
|
134
|
+
next : function(value){
|
|
135
|
+
try {
|
|
136
|
+
return fn(value);
|
|
137
|
+
} catch(e){
|
|
138
|
+
reject(e);
|
|
139
|
+
subscription.unsubscribe();
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
error: reject,
|
|
143
|
+
complete: resolve
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
redefineAll($Observable, {
|
|
150
|
+
from: function from(x){
|
|
151
|
+
var C = typeof this === 'function' ? this : $Observable;
|
|
152
|
+
var method = getMethod(anObject(x)[OBSERVABLE]);
|
|
153
|
+
if(method){
|
|
154
|
+
var observable = anObject(method.call(x));
|
|
155
|
+
return observable.constructor === C ? observable : new C(function(observer){
|
|
156
|
+
return observable.subscribe(observer);
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
return new C(function(observer){
|
|
160
|
+
var done = false;
|
|
161
|
+
microtask(function(){
|
|
162
|
+
if(!done){
|
|
163
|
+
try {
|
|
164
|
+
if(forOf(x, false, function(it){
|
|
165
|
+
observer.next(it);
|
|
166
|
+
if(done)return RETURN;
|
|
167
|
+
}) === RETURN)return;
|
|
168
|
+
} catch(e){
|
|
169
|
+
if(done)throw e;
|
|
170
|
+
observer.error(e);
|
|
171
|
+
return;
|
|
172
|
+
} observer.complete();
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
return function(){ done = true; };
|
|
176
|
+
});
|
|
177
|
+
},
|
|
178
|
+
of: function of(){
|
|
179
|
+
for(var i = 0, l = arguments.length, items = Array(l); i < l;)items[i] = arguments[i++];
|
|
180
|
+
return new (typeof this === 'function' ? this : $Observable)(function(observer){
|
|
181
|
+
var done = false;
|
|
182
|
+
microtask(function(){
|
|
183
|
+
if(!done){
|
|
184
|
+
for(var i = 0; i < items.length; ++i){
|
|
185
|
+
observer.next(items[i]);
|
|
186
|
+
if(done)return;
|
|
187
|
+
} observer.complete();
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
return function(){ done = true; };
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
hide($Observable.prototype, OBSERVABLE, function(){ return this; });
|
|
196
|
+
|
|
197
|
+
$export($export.G, {Observable: $Observable});
|
|
198
|
+
|
|
199
|
+
require('./_set-species')('Observable');
|
package/library/shim.js
CHANGED
|
@@ -169,6 +169,7 @@ require('./modules/es7.reflect.has-metadata');
|
|
|
169
169
|
require('./modules/es7.reflect.has-own-metadata');
|
|
170
170
|
require('./modules/es7.reflect.metadata');
|
|
171
171
|
require('./modules/es7.asap');
|
|
172
|
+
require('./modules/es7.observable');
|
|
172
173
|
require('./modules/web.timers');
|
|
173
174
|
require('./modules/web.immediate');
|
|
174
175
|
require('./modules/web.dom.iterable');
|
package/library/stage/1.js
CHANGED
package/modules/_core.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var core = module.exports = {version: '2.
|
|
1
|
+
var core = module.exports = {version: '2.4.0'};
|
|
2
2
|
if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
|
package/modules/_for-of.js
CHANGED
|
@@ -3,17 +3,23 @@ var ctx = require('./_ctx')
|
|
|
3
3
|
, isArrayIter = require('./_is-array-iter')
|
|
4
4
|
, anObject = require('./_an-object')
|
|
5
5
|
, toLength = require('./_to-length')
|
|
6
|
-
, getIterFn = require('./core.get-iterator-method')
|
|
7
|
-
|
|
6
|
+
, getIterFn = require('./core.get-iterator-method')
|
|
7
|
+
, BREAK = {}
|
|
8
|
+
, RETURN = {};
|
|
9
|
+
var exports = module.exports = function(iterable, entries, fn, that, ITERATOR){
|
|
8
10
|
var iterFn = ITERATOR ? function(){ return iterable; } : getIterFn(iterable)
|
|
9
11
|
, f = ctx(fn, that, entries ? 2 : 1)
|
|
10
12
|
, index = 0
|
|
11
|
-
, length, step, iterator;
|
|
13
|
+
, length, step, iterator, result;
|
|
12
14
|
if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');
|
|
13
15
|
// fast case for arrays with default iterator
|
|
14
16
|
if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){
|
|
15
|
-
entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
|
|
17
|
+
result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
|
|
18
|
+
if(result === BREAK || result === RETURN)return result;
|
|
16
19
|
} else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){
|
|
17
|
-
call(iterator, f, step.value, entries);
|
|
20
|
+
result = call(iterator, f, step.value, entries);
|
|
21
|
+
if(result === BREAK || result === RETURN)return result;
|
|
18
22
|
}
|
|
19
|
-
};
|
|
23
|
+
};
|
|
24
|
+
exports.BREAK = BREAK;
|
|
25
|
+
exports.RETURN = RETURN;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
|
|
2
|
-
var $export
|
|
3
|
-
,
|
|
2
|
+
var $export = require('./_export')
|
|
3
|
+
, aFunction = require('./_a-function')
|
|
4
|
+
, anObject = require('./_an-object')
|
|
5
|
+
, _apply = Function.apply;
|
|
4
6
|
|
|
5
7
|
$export($export.S, 'Reflect', {
|
|
6
8
|
apply: function apply(target, thisArgument, argumentsList){
|
|
7
|
-
return _apply.call(target, thisArgument, argumentsList);
|
|
9
|
+
return _apply.call(aFunction(target), thisArgument, anObject(argumentsList));
|
|
8
10
|
}
|
|
9
11
|
});
|
|
@@ -14,10 +14,11 @@ $export($export.S + $export.F * require('./_fails')(function(){
|
|
|
14
14
|
}), 'Reflect', {
|
|
15
15
|
construct: function construct(Target, args /*, newTarget*/){
|
|
16
16
|
aFunction(Target);
|
|
17
|
+
anObject(args);
|
|
17
18
|
var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
|
|
18
19
|
if(Target == newTarget){
|
|
19
20
|
// w/o altered newTarget, optimization for 0-4 arguments
|
|
20
|
-
|
|
21
|
+
switch(args.length){
|
|
21
22
|
case 0: return new Target;
|
|
22
23
|
case 1: return new Target(args[0]);
|
|
23
24
|
case 2: return new Target(args[0], args[1]);
|
package/modules/es6.symbol.js
CHANGED
|
@@ -37,6 +37,7 @@ var global = require('./_global')
|
|
|
37
37
|
, isEnum = {}.propertyIsEnumerable
|
|
38
38
|
, SymbolRegistry = shared('symbol-registry')
|
|
39
39
|
, AllSymbols = shared('symbols')
|
|
40
|
+
, OPSymbols = shared('op-symbols')
|
|
40
41
|
, ObjectProto = Object[PROTOTYPE]
|
|
41
42
|
, USE_NATIVE = typeof $Symbol == 'function'
|
|
42
43
|
, QObject = global.QObject;
|
|
@@ -68,6 +69,7 @@ var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){
|
|
|
68
69
|
};
|
|
69
70
|
|
|
70
71
|
var $defineProperty = function defineProperty(it, key, D){
|
|
72
|
+
if(it === ObjectProto)$defineProperty(OPSymbols, key, D);
|
|
71
73
|
anObject(it);
|
|
72
74
|
key = toPrimitive(key, true);
|
|
73
75
|
anObject(D);
|
|
@@ -95,10 +97,14 @@ var $create = function create(it, P){
|
|
|
95
97
|
};
|
|
96
98
|
var $propertyIsEnumerable = function propertyIsEnumerable(key){
|
|
97
99
|
var E = isEnum.call(this, key = toPrimitive(key, true));
|
|
100
|
+
if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;
|
|
98
101
|
return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
|
|
99
102
|
};
|
|
100
103
|
var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){
|
|
101
|
-
|
|
104
|
+
it = toIObject(it);
|
|
105
|
+
key = toPrimitive(key, true);
|
|
106
|
+
if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;
|
|
107
|
+
var D = gOPD(it, key);
|
|
102
108
|
if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;
|
|
103
109
|
return D;
|
|
104
110
|
};
|
|
@@ -107,16 +113,19 @@ var $getOwnPropertyNames = function getOwnPropertyNames(it){
|
|
|
107
113
|
, result = []
|
|
108
114
|
, i = 0
|
|
109
115
|
, key;
|
|
110
|
-
while(names.length > i)
|
|
111
|
-
|
|
116
|
+
while(names.length > i){
|
|
117
|
+
if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);
|
|
118
|
+
} return result;
|
|
112
119
|
};
|
|
113
120
|
var $getOwnPropertySymbols = function getOwnPropertySymbols(it){
|
|
114
|
-
var
|
|
121
|
+
var IS_OP = it === ObjectProto
|
|
122
|
+
, names = gOPN(IS_OP ? OPSymbols : toIObject(it))
|
|
115
123
|
, result = []
|
|
116
124
|
, i = 0
|
|
117
125
|
, key;
|
|
118
|
-
while(names.length > i)
|
|
119
|
-
|
|
126
|
+
while(names.length > i){
|
|
127
|
+
if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);
|
|
128
|
+
} return result;
|
|
120
129
|
};
|
|
121
130
|
|
|
122
131
|
// 19.4.1.1 Symbol([description])
|
|
@@ -124,13 +133,12 @@ if(!USE_NATIVE){
|
|
|
124
133
|
$Symbol = function Symbol(){
|
|
125
134
|
if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');
|
|
126
135
|
var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
});
|
|
136
|
+
var $set = function(value){
|
|
137
|
+
if(this === ObjectProto)$set.call(OPSymbols, value);
|
|
138
|
+
if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
|
|
139
|
+
setSymbolDesc(this, tag, createDesc(1, value));
|
|
140
|
+
};
|
|
141
|
+
if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});
|
|
134
142
|
return wrap(tag);
|
|
135
143
|
};
|
|
136
144
|
redefine($Symbol[PROTOTYPE], 'toString', function toString(){
|