core-js 0.8.0 → 0.8.4
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/README.md +61 -25
- package/bower.json +1 -1
- package/build/build.ls +22 -12
- package/client/core.js +3376 -2951
- package/client/core.min.js +3 -3
- package/client/core.min.js.map +1 -1
- package/client/library.js +3294 -2877
- package/client/library.min.js +3 -4
- package/client/library.min.js.map +1 -1
- package/client/shim.js +2775 -2402
- package/client/shim.min.js +3 -3
- package/client/shim.min.js.map +1 -1
- package/es7/index.js +1 -0
- package/es7/set.js +2 -0
- package/fn/set.js +1 -0
- package/library/es7/index.js +1 -0
- package/library/es7/set.js +2 -0
- package/library/fn/set.js +1 -0
- package/library/modules/$.assign.js +3 -1
- package/library/modules/$.collection-strong.js +3 -3
- package/library/modules/$.collection-weak.js +5 -5
- package/library/modules/$.collection.js +1 -3
- package/library/modules/$.iter-detect.js +19 -0
- package/library/modules/$.iter.js +0 -26
- package/library/modules/$.own-keys.js +1 -1
- package/library/modules/$.set-proto.js +22 -16
- package/library/modules/$.task.js +9 -6
- package/library/modules/es5.js +2 -1
- package/library/modules/es6.array.copy-within.js +1 -1
- package/library/modules/es6.array.fill.js +1 -1
- package/library/modules/es6.array.from.js +2 -2
- package/library/modules/es6.array.of.js +1 -1
- package/library/modules/es6.map.js +2 -2
- package/library/modules/es6.math.js +34 -20
- package/library/modules/es6.number.statics.js +6 -5
- package/library/modules/es6.object.is.js +1 -1
- package/library/modules/es6.object.set-prototype-of.js +1 -1
- package/library/modules/es6.object.statics-accept-primitives.js +2 -2
- package/library/modules/es6.object.to-string.js +1 -1
- package/library/modules/es6.promise.js +113 -107
- package/library/modules/es6.reflect.js +24 -19
- package/library/modules/es6.set.js +1 -1
- package/library/modules/es6.string.ends-with.js +1 -1
- package/library/modules/es6.string.from-code-point.js +1 -1
- package/library/modules/es6.string.includes.js +1 -1
- package/library/modules/es6.string.raw.js +4 -4
- package/library/modules/es6.string.repeat.js +1 -1
- package/library/modules/es6.string.starts-with.js +1 -1
- package/library/modules/es6.symbol.js +7 -4
- package/library/modules/es6.weak-map.js +2 -2
- package/library/modules/es6.weak-set.js +1 -1
- package/library/modules/es7.object.get-own-property-descriptors.js +1 -1
- package/library/modules/es7.object.to-array.js +1 -1
- package/library/modules/es7.set.to-json.js +10 -0
- package/library/modules/js.array.statics.js +2 -2
- package/library/modules/web.dom.iterable.js +7 -6
- package/library/modules/web.timers.js +8 -7
- package/library/shim.js +1 -0
- package/modules/$.assign.js +3 -1
- package/modules/$.collection-strong.js +3 -3
- package/modules/$.collection-weak.js +5 -5
- package/modules/$.collection.js +1 -3
- package/modules/$.iter-detect.js +19 -0
- package/modules/$.iter.js +0 -26
- package/modules/$.own-keys.js +1 -1
- package/modules/$.set-proto.js +22 -16
- package/modules/$.task.js +9 -6
- package/modules/es5.js +2 -1
- package/modules/es6.array.copy-within.js +1 -1
- package/modules/es6.array.fill.js +1 -1
- package/modules/es6.array.from.js +2 -2
- package/modules/es6.array.of.js +1 -1
- package/modules/es6.map.js +2 -2
- package/modules/es6.math.js +34 -20
- package/modules/es6.number.statics.js +6 -5
- package/modules/es6.object.is.js +1 -1
- package/modules/es6.object.set-prototype-of.js +1 -1
- package/modules/es6.object.statics-accept-primitives.js +2 -2
- package/modules/es6.object.to-string.js +1 -1
- package/modules/es6.promise.js +113 -107
- package/modules/es6.reflect.js +24 -19
- package/modules/es6.set.js +1 -1
- package/modules/es6.string.ends-with.js +1 -1
- package/modules/es6.string.from-code-point.js +1 -1
- package/modules/es6.string.includes.js +1 -1
- package/modules/es6.string.raw.js +4 -4
- package/modules/es6.string.repeat.js +1 -1
- package/modules/es6.string.starts-with.js +1 -1
- package/modules/es6.symbol.js +7 -4
- package/modules/es6.weak-map.js +2 -2
- package/modules/es6.weak-set.js +1 -1
- package/modules/es7.object.get-own-property-descriptors.js +1 -1
- package/modules/es7.object.to-array.js +1 -1
- package/modules/es7.set.to-json.js +10 -0
- package/modules/js.array.statics.js +2 -2
- package/modules/web.dom.iterable.js +7 -6
- package/modules/web.timers.js +8 -7
- package/package.json +8 -6
- package/shim.js +1 -0
- package/library/modules/core.iterator.js +0 -146
- package/modules/core.iterator.js +0 -146
|
@@ -12,106 +12,108 @@ var $ = require('./$')
|
|
|
12
12
|
, global = $.g
|
|
13
13
|
, process = global.process
|
|
14
14
|
, asap = process && process.nextTick || require('./$.task').set
|
|
15
|
-
,
|
|
16
|
-
, Base =
|
|
15
|
+
, P = global[PROMISE]
|
|
16
|
+
, Base = P
|
|
17
17
|
, isFunction = $.isFunction
|
|
18
18
|
, isObject = $.isObject
|
|
19
19
|
, assertFunction = assert.fn
|
|
20
20
|
, assertObject = assert.obj
|
|
21
21
|
, test;
|
|
22
|
+
|
|
23
|
+
// helpers
|
|
22
24
|
function getConstructor(C){
|
|
23
25
|
var S = assertObject(C)[SPECIES];
|
|
24
26
|
return S != undefined ? S : C;
|
|
25
27
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
if(
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
if(
|
|
55
|
-
|
|
56
|
-
process.emit('unhandledRejection', value, promise);
|
|
57
|
-
} else if(global.console && isFunction(console.error)){
|
|
58
|
-
console.error('Unhandled promise rejection', value);
|
|
59
|
-
}
|
|
28
|
+
function isThenable(it){
|
|
29
|
+
var then;
|
|
30
|
+
if(isObject(it))then = it.then;
|
|
31
|
+
return isFunction(then) ? then : false;
|
|
32
|
+
}
|
|
33
|
+
function isUnhandled(promise){
|
|
34
|
+
var record = promise[RECORD]
|
|
35
|
+
, chain = record.c
|
|
36
|
+
, i = 0
|
|
37
|
+
, react;
|
|
38
|
+
if(record.h)return false;
|
|
39
|
+
while(chain.length > i){
|
|
40
|
+
react = chain[i++];
|
|
41
|
+
if(react.fail || !isUnhandled(react.P))return false;
|
|
42
|
+
} return true;
|
|
43
|
+
}
|
|
44
|
+
function notify(record, isReject){
|
|
45
|
+
var chain = record.c;
|
|
46
|
+
if(isReject || chain.length)asap(function(){
|
|
47
|
+
var promise = record.p
|
|
48
|
+
, value = record.v
|
|
49
|
+
, ok = record.s == 1
|
|
50
|
+
, i = 0;
|
|
51
|
+
if(isReject && isUnhandled(promise)){
|
|
52
|
+
setTimeout(function(){
|
|
53
|
+
if(isUnhandled(promise)){
|
|
54
|
+
if(cof(process) == 'process'){
|
|
55
|
+
process.emit('unhandledRejection', value, promise);
|
|
56
|
+
} else if(global.console && isFunction(console.error)){
|
|
57
|
+
console.error('Unhandled promise rejection', value);
|
|
60
58
|
}
|
|
61
|
-
}, 1e3);
|
|
62
|
-
} else while(chain.length > i)!function(react){
|
|
63
|
-
var cb = ok ? react.ok : react.fail
|
|
64
|
-
, ret, then;
|
|
65
|
-
try {
|
|
66
|
-
if(cb){
|
|
67
|
-
if(!ok)record.h = true;
|
|
68
|
-
ret = cb === true ? value : cb(value);
|
|
69
|
-
if(ret === react.P){
|
|
70
|
-
react.rej(TypeError(PROMISE + '-chain cycle'));
|
|
71
|
-
} else if(then = isThenable(ret)){
|
|
72
|
-
then.call(ret, react.res, react.rej);
|
|
73
|
-
} else react.res(ret);
|
|
74
|
-
} else react.rej(value);
|
|
75
|
-
} catch(err){
|
|
76
|
-
react.rej(err);
|
|
77
59
|
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
if(record.d)return;
|
|
95
|
-
record.d = true;
|
|
96
|
-
record = record.r || record; // unwrap
|
|
97
|
-
try {
|
|
98
|
-
if(then = isThenable(value)){
|
|
99
|
-
wrapper = {r: record, d: false}; // wrap
|
|
100
|
-
then.call(value, ctx(resolve, wrapper, 1), ctx(reject, wrapper, 1));
|
|
101
|
-
} else {
|
|
102
|
-
record.v = value;
|
|
103
|
-
record.s = 1;
|
|
104
|
-
notify(record);
|
|
60
|
+
}, 1e3);
|
|
61
|
+
} else while(chain.length > i)!function(react){
|
|
62
|
+
var cb = ok ? react.ok : react.fail
|
|
63
|
+
, ret, then;
|
|
64
|
+
try {
|
|
65
|
+
if(cb){
|
|
66
|
+
if(!ok)record.h = true;
|
|
67
|
+
ret = cb === true ? value : cb(value);
|
|
68
|
+
if(ret === react.P){
|
|
69
|
+
react.rej(TypeError(PROMISE + '-chain cycle'));
|
|
70
|
+
} else if(then = isThenable(ret)){
|
|
71
|
+
then.call(ret, react.res, react.rej);
|
|
72
|
+
} else react.res(ret);
|
|
73
|
+
} else react.rej(value);
|
|
74
|
+
} catch(err){
|
|
75
|
+
react.rej(err);
|
|
105
76
|
}
|
|
106
|
-
}
|
|
107
|
-
|
|
77
|
+
}(chain[i++]);
|
|
78
|
+
chain.length = 0;
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
function $reject(value){
|
|
82
|
+
var record = this;
|
|
83
|
+
if(record.d)return;
|
|
84
|
+
record.d = true;
|
|
85
|
+
record = record.r || record; // unwrap
|
|
86
|
+
record.v = value;
|
|
87
|
+
record.s = 2;
|
|
88
|
+
notify(record, true);
|
|
89
|
+
}
|
|
90
|
+
function $resolve(value){
|
|
91
|
+
var record = this
|
|
92
|
+
, then, wrapper;
|
|
93
|
+
if(record.d)return;
|
|
94
|
+
record.d = true;
|
|
95
|
+
record = record.r || record; // unwrap
|
|
96
|
+
try {
|
|
97
|
+
if(then = isThenable(value)){
|
|
98
|
+
wrapper = {r: record, d: false}; // wrap
|
|
99
|
+
then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
|
|
100
|
+
} else {
|
|
101
|
+
record.v = value;
|
|
102
|
+
record.s = 1;
|
|
103
|
+
notify(record);
|
|
108
104
|
}
|
|
105
|
+
} catch(err){
|
|
106
|
+
$reject.call(wrapper || {r: record, d: false}, err); // wrap
|
|
109
107
|
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// constructor polyfill
|
|
111
|
+
if(!(isFunction(P) && isFunction(P.resolve) && P.resolve(test = new P(function(){})) == test)){
|
|
110
112
|
// 25.4.3.1 Promise(executor)
|
|
111
|
-
|
|
113
|
+
P = function Promise(executor){
|
|
112
114
|
assertFunction(executor);
|
|
113
115
|
var record = {
|
|
114
|
-
p: assert.inst(this,
|
|
116
|
+
p: assert.inst(this, P, PROMISE), // <- promise
|
|
115
117
|
c: [], // <- chain
|
|
116
118
|
s: 0, // <- state
|
|
117
119
|
d: false, // <- done
|
|
@@ -120,79 +122,83 @@ isFunction(Promise) && isFunction(Promise.resolve)
|
|
|
120
122
|
};
|
|
121
123
|
$.hide(this, RECORD, record);
|
|
122
124
|
try {
|
|
123
|
-
executor(ctx(resolve, record, 1), ctx(reject, record, 1));
|
|
125
|
+
executor(ctx($resolve, record, 1), ctx($reject, record, 1));
|
|
124
126
|
} catch(err){
|
|
125
|
-
reject.call(record, err);
|
|
127
|
+
$reject.call(record, err);
|
|
126
128
|
}
|
|
127
129
|
};
|
|
128
|
-
$.mix(
|
|
130
|
+
$.mix(P.prototype, {
|
|
129
131
|
// 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
|
|
130
|
-
then: function(onFulfilled, onRejected){
|
|
132
|
+
then: function then(onFulfilled, onRejected){
|
|
131
133
|
var S = assertObject(assertObject(this).constructor)[SPECIES];
|
|
132
134
|
var react = {
|
|
133
135
|
ok: isFunction(onFulfilled) ? onFulfilled : true,
|
|
134
136
|
fail: isFunction(onRejected) ? onRejected : false
|
|
135
137
|
};
|
|
136
|
-
var
|
|
138
|
+
var promise = react.P = new (S != undefined ? S : P)(function(res, rej){
|
|
137
139
|
react.res = assertFunction(res);
|
|
138
140
|
react.rej = assertFunction(rej);
|
|
139
141
|
});
|
|
140
142
|
var record = this[RECORD];
|
|
141
143
|
record.c.push(react);
|
|
142
144
|
record.s && notify(record);
|
|
143
|
-
return
|
|
145
|
+
return promise;
|
|
144
146
|
},
|
|
145
147
|
// 25.4.5.1 Promise.prototype.catch(onRejected)
|
|
146
148
|
'catch': function(onRejected){
|
|
147
149
|
return this.then(undefined, onRejected);
|
|
148
150
|
}
|
|
149
151
|
});
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// export
|
|
155
|
+
$def($def.G + $def.W + $def.F * (P != Base), {Promise: P});
|
|
156
|
+
cof.set(P, PROMISE);
|
|
157
|
+
require('./$.species')(P);
|
|
158
|
+
|
|
159
|
+
// statics
|
|
152
160
|
$def($def.S, PROMISE, {
|
|
153
161
|
// 25.4.4.5 Promise.reject(r)
|
|
154
|
-
reject: function(r){
|
|
162
|
+
reject: function reject(r){
|
|
155
163
|
return new (getConstructor(this))(function(res, rej){
|
|
156
164
|
rej(r);
|
|
157
165
|
});
|
|
158
166
|
},
|
|
159
167
|
// 25.4.4.6 Promise.resolve(x)
|
|
160
|
-
resolve: function(x){
|
|
168
|
+
resolve: function resolve(x){
|
|
161
169
|
return isObject(x) && RECORD in x && $.getProto(x) === this.prototype
|
|
162
170
|
? x : new (getConstructor(this))(function(res){
|
|
163
171
|
res(x);
|
|
164
172
|
});
|
|
165
173
|
}
|
|
166
174
|
});
|
|
167
|
-
$def($def.S + $def.F * (
|
|
168
|
-
|
|
169
|
-
})
|
|
175
|
+
$def($def.S + $def.F * !require('./$.iter-detect')(function(iter){
|
|
176
|
+
P.all(iter)['catch'](function(){});
|
|
177
|
+
}), PROMISE, {
|
|
170
178
|
// 25.4.4.1 Promise.all(iterable)
|
|
171
|
-
all: function(iterable){
|
|
179
|
+
all: function all(iterable){
|
|
172
180
|
var C = getConstructor(this)
|
|
173
181
|
, values = [];
|
|
174
|
-
return new C(function(
|
|
182
|
+
return new C(function(res, rej){
|
|
175
183
|
forOf(iterable, false, values.push, values);
|
|
176
184
|
var remaining = values.length
|
|
177
185
|
, results = Array(remaining);
|
|
178
186
|
if(remaining)$.each.call(values, function(promise, index){
|
|
179
187
|
C.resolve(promise).then(function(value){
|
|
180
188
|
results[index] = value;
|
|
181
|
-
--remaining ||
|
|
182
|
-
},
|
|
189
|
+
--remaining || res(results);
|
|
190
|
+
}, rej);
|
|
183
191
|
});
|
|
184
|
-
else
|
|
192
|
+
else res(results);
|
|
185
193
|
});
|
|
186
194
|
},
|
|
187
195
|
// 25.4.4.4 Promise.race(iterable)
|
|
188
|
-
race: function(iterable){
|
|
196
|
+
race: function race(iterable){
|
|
189
197
|
var C = getConstructor(this);
|
|
190
|
-
return new C(function(
|
|
198
|
+
return new C(function(res, rej){
|
|
191
199
|
forOf(iterable, false, function(promise){
|
|
192
|
-
C.resolve(promise).then(
|
|
200
|
+
C.resolve(promise).then(res, rej);
|
|
193
201
|
});
|
|
194
202
|
});
|
|
195
203
|
}
|
|
196
|
-
});
|
|
197
|
-
cof.set(Promise, PROMISE);
|
|
198
|
-
require('./$.species')(Promise);
|
|
204
|
+
});
|
|
@@ -10,8 +10,8 @@ var $ = require('./$')
|
|
|
10
10
|
, setDesc = $.setDesc
|
|
11
11
|
, getProto = $.getProto
|
|
12
12
|
, apply = Function.apply
|
|
13
|
-
, assertObject
|
|
14
|
-
,
|
|
13
|
+
, assertObject = assert.obj
|
|
14
|
+
, _isExtensible = Object.isExtensible || $.it;
|
|
15
15
|
function Enumerate(iterated){
|
|
16
16
|
var keys = [], key;
|
|
17
17
|
for(key in iterated)keys.push(key);
|
|
@@ -39,7 +39,7 @@ function wrap(fn){
|
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
function
|
|
42
|
+
function get(target, propertyKey/*, receiver*/){
|
|
43
43
|
var receiver = arguments.length < 3 ? target : arguments[2]
|
|
44
44
|
, desc = getDesc(assertObject(target), propertyKey), proto;
|
|
45
45
|
if(desc)return $.has(desc, 'value')
|
|
@@ -48,16 +48,16 @@ function reflectGet(target, propertyKey/*, receiver*/){
|
|
|
48
48
|
? undefined
|
|
49
49
|
: desc.get.call(receiver);
|
|
50
50
|
return isObject(proto = getProto(target))
|
|
51
|
-
?
|
|
51
|
+
? get(proto, propertyKey, receiver)
|
|
52
52
|
: undefined;
|
|
53
53
|
}
|
|
54
|
-
function
|
|
54
|
+
function set(target, propertyKey, V/*, receiver*/){
|
|
55
55
|
var receiver = arguments.length < 4 ? target : arguments[3]
|
|
56
56
|
, ownDesc = getDesc(assertObject(target), propertyKey)
|
|
57
57
|
, existingDescriptor, proto;
|
|
58
58
|
if(!ownDesc){
|
|
59
59
|
if(isObject(proto = getProto(target))){
|
|
60
|
-
return
|
|
60
|
+
return set(proto, propertyKey, V, receiver);
|
|
61
61
|
}
|
|
62
62
|
ownDesc = $.desc(0);
|
|
63
63
|
}
|
|
@@ -75,7 +75,7 @@ var reflect = {
|
|
|
75
75
|
// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
|
|
76
76
|
apply: require('./$.ctx')(Function.call, apply, 3),
|
|
77
77
|
// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
|
|
78
|
-
construct: function(target, argumentsList /*, newTarget*/){
|
|
78
|
+
construct: function construct(target, argumentsList /*, newTarget*/){
|
|
79
79
|
var proto = assert.fn(arguments.length < 3 ? target : arguments[2]).prototype
|
|
80
80
|
, instance = $.create(isObject(proto) ? proto : Object.prototype)
|
|
81
81
|
, result = apply.call(target, instance, argumentsList);
|
|
@@ -84,43 +84,48 @@ var reflect = {
|
|
|
84
84
|
// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
|
|
85
85
|
defineProperty: wrap(setDesc),
|
|
86
86
|
// 26.1.4 Reflect.deleteProperty(target, propertyKey)
|
|
87
|
-
deleteProperty: function(target, propertyKey){
|
|
87
|
+
deleteProperty: function deleteProperty(target, propertyKey){
|
|
88
88
|
var desc = getDesc(assertObject(target), propertyKey);
|
|
89
89
|
return desc && !desc.configurable ? false : delete target[propertyKey];
|
|
90
90
|
},
|
|
91
91
|
// 26.1.5 Reflect.enumerate(target)
|
|
92
|
-
enumerate: function(target){
|
|
92
|
+
enumerate: function enumerate(target){
|
|
93
93
|
return new Enumerate(assertObject(target));
|
|
94
94
|
},
|
|
95
95
|
// 26.1.6 Reflect.get(target, propertyKey [, receiver])
|
|
96
|
-
get:
|
|
96
|
+
get: get,
|
|
97
97
|
// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)
|
|
98
|
-
getOwnPropertyDescriptor: function(target, propertyKey){
|
|
98
|
+
getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey){
|
|
99
99
|
return getDesc(assertObject(target), propertyKey);
|
|
100
100
|
},
|
|
101
101
|
// 26.1.8 Reflect.getPrototypeOf(target)
|
|
102
|
-
getPrototypeOf: function(target){
|
|
102
|
+
getPrototypeOf: function getPrototypeOf(target){
|
|
103
103
|
return getProto(assertObject(target));
|
|
104
104
|
},
|
|
105
105
|
// 26.1.9 Reflect.has(target, propertyKey)
|
|
106
|
-
has: function(target, propertyKey){
|
|
106
|
+
has: function has(target, propertyKey){
|
|
107
107
|
return propertyKey in target;
|
|
108
108
|
},
|
|
109
109
|
// 26.1.10 Reflect.isExtensible(target)
|
|
110
|
-
isExtensible: function(target){
|
|
111
|
-
return !!
|
|
110
|
+
isExtensible: function isExtensible(target){
|
|
111
|
+
return !!_isExtensible(assertObject(target));
|
|
112
112
|
},
|
|
113
113
|
// 26.1.11 Reflect.ownKeys(target)
|
|
114
114
|
ownKeys: require('./$.own-keys'),
|
|
115
115
|
// 26.1.12 Reflect.preventExtensions(target)
|
|
116
116
|
preventExtensions: wrap(Object.preventExtensions || $.it),
|
|
117
117
|
// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])
|
|
118
|
-
set:
|
|
118
|
+
set: set
|
|
119
119
|
};
|
|
120
120
|
// 26.1.14 Reflect.setPrototypeOf(target, proto)
|
|
121
|
-
if(setProto)reflect.setPrototypeOf = function(target, proto){
|
|
122
|
-
setProto(
|
|
123
|
-
|
|
121
|
+
if(setProto)reflect.setPrototypeOf = function setPrototypeOf(target, proto){
|
|
122
|
+
setProto.check(target, proto);
|
|
123
|
+
try {
|
|
124
|
+
setProto.set(target, proto);
|
|
125
|
+
return true;
|
|
126
|
+
} catch(e){
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
124
129
|
};
|
|
125
130
|
|
|
126
131
|
$def($def.G, {Reflect: {}});
|
|
@@ -4,7 +4,7 @@ var strong = require('./$.collection-strong');
|
|
|
4
4
|
// 23.2 Set Objects
|
|
5
5
|
require('./$.collection')('Set', {
|
|
6
6
|
// 23.2.3.1 Set.prototype.add(value)
|
|
7
|
-
add: function(value){
|
|
7
|
+
add: function add(value){
|
|
8
8
|
return strong.def(this, value = value === 0 ? 0 : value, value);
|
|
9
9
|
}
|
|
10
10
|
}, strong);
|
|
@@ -6,7 +6,7 @@ var $ = require('./$')
|
|
|
6
6
|
|
|
7
7
|
$def($def.P, 'String', {
|
|
8
8
|
// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])
|
|
9
|
-
endsWith: function(searchString /*, endPosition = @length */){
|
|
9
|
+
endsWith: function endsWith(searchString /*, endPosition = @length */){
|
|
10
10
|
if(cof(searchString) == 'RegExp')throw TypeError();
|
|
11
11
|
var that = String($.assertDefined(this))
|
|
12
12
|
, endPosition = arguments[1]
|
|
@@ -4,7 +4,7 @@ var $def = require('./$.def')
|
|
|
4
4
|
|
|
5
5
|
$def($def.S, 'String', {
|
|
6
6
|
// 21.1.2.2 String.fromCodePoint(...codePoints)
|
|
7
|
-
fromCodePoint: function(x){ // eslint-disable-line no-unused-vars
|
|
7
|
+
fromCodePoint: function fromCodePoint(x){ // eslint-disable-line no-unused-vars
|
|
8
8
|
var res = []
|
|
9
9
|
, len = arguments.length
|
|
10
10
|
, i = 0
|
|
@@ -5,7 +5,7 @@ var $ = require('./$')
|
|
|
5
5
|
|
|
6
6
|
$def($def.P, 'String', {
|
|
7
7
|
// 21.1.3.7 String.prototype.includes(searchString, position = 0)
|
|
8
|
-
includes: function(searchString /*, position = 0 */){
|
|
8
|
+
includes: function includes(searchString /*, position = 0 */){
|
|
9
9
|
if(cof(searchString) == 'RegExp')throw TypeError();
|
|
10
10
|
return !!~String($.assertDefined(this)).indexOf(searchString, arguments[1]);
|
|
11
11
|
}
|
|
@@ -3,14 +3,14 @@ var $ = require('./$')
|
|
|
3
3
|
|
|
4
4
|
$def($def.S, 'String', {
|
|
5
5
|
// 21.1.2.4 String.raw(callSite, ...substitutions)
|
|
6
|
-
raw: function(callSite){
|
|
7
|
-
var
|
|
8
|
-
, len = $.toLength(
|
|
6
|
+
raw: function raw(callSite){
|
|
7
|
+
var tpl = $.toObject(callSite.raw)
|
|
8
|
+
, len = $.toLength(tpl.length)
|
|
9
9
|
, sln = arguments.length
|
|
10
10
|
, res = []
|
|
11
11
|
, i = 0;
|
|
12
12
|
while(len > i){
|
|
13
|
-
res.push(String(
|
|
13
|
+
res.push(String(tpl[i++]));
|
|
14
14
|
if(i < sln)res.push(String(arguments[i]));
|
|
15
15
|
} return res.join('');
|
|
16
16
|
}
|
|
@@ -5,7 +5,7 @@ var $ = require('./$')
|
|
|
5
5
|
|
|
6
6
|
$def($def.P, 'String', {
|
|
7
7
|
// 21.1.3.18 String.prototype.startsWith(searchString [, position ])
|
|
8
|
-
startsWith: function(searchString /*, position = 0 */){
|
|
8
|
+
startsWith: function startsWith(searchString /*, position = 0 */){
|
|
9
9
|
if(cof(searchString) == 'RegExp')throw TypeError();
|
|
10
10
|
var that = String($.assertDefined(this))
|
|
11
11
|
, index = $.toLength(Math.min(arguments[1], that.length));
|
|
@@ -4,6 +4,7 @@ var $ = require('./$')
|
|
|
4
4
|
, setTag = require('./$.cof').set
|
|
5
5
|
, uid = require('./$.uid')
|
|
6
6
|
, $def = require('./$.def')
|
|
7
|
+
, keyOf = require('./$.keyof')
|
|
7
8
|
, has = $.has
|
|
8
9
|
, hide = $.hide
|
|
9
10
|
, getNames = $.getNames
|
|
@@ -28,7 +29,7 @@ function wrap(tag){
|
|
|
28
29
|
|
|
29
30
|
// 19.4.1.1 Symbol([description])
|
|
30
31
|
if(!$.isFunction(Symbol)){
|
|
31
|
-
Symbol = function(description){
|
|
32
|
+
Symbol = function Symbol(description){
|
|
32
33
|
if(this instanceof Symbol)throw TypeError('Symbol is not a constructor');
|
|
33
34
|
return wrap(uid(description));
|
|
34
35
|
};
|
|
@@ -46,7 +47,9 @@ var symbolStatics = {
|
|
|
46
47
|
: SymbolRegistry[key] = Symbol(key);
|
|
47
48
|
},
|
|
48
49
|
// 19.4.2.5 Symbol.keyFor(sym)
|
|
49
|
-
keyFor:
|
|
50
|
+
keyFor: function keyFor(key){
|
|
51
|
+
return keyOf(SymbolRegistry, key);
|
|
52
|
+
},
|
|
50
53
|
pure: uid.safe,
|
|
51
54
|
set: $.set,
|
|
52
55
|
useSetter: function(){ setter = true; },
|
|
@@ -78,13 +81,13 @@ $def($def.S, 'Symbol', symbolStatics);
|
|
|
78
81
|
|
|
79
82
|
$def($def.S + $def.F * (Symbol != Base), 'Object', {
|
|
80
83
|
// 19.1.2.7 Object.getOwnPropertyNames(O)
|
|
81
|
-
getOwnPropertyNames: function(it){
|
|
84
|
+
getOwnPropertyNames: function getOwnPropertyNames(it){
|
|
82
85
|
var names = getNames(toObject(it)), result = [], key, i = 0;
|
|
83
86
|
while(names.length > i)has(AllSymbols, key = names[i++]) || result.push(key);
|
|
84
87
|
return result;
|
|
85
88
|
},
|
|
86
89
|
// 19.1.2.8 Object.getOwnPropertySymbols(O)
|
|
87
|
-
getOwnPropertySymbols: function(it){
|
|
90
|
+
getOwnPropertySymbols: function getOwnPropertySymbols(it){
|
|
88
91
|
var names = getNames(toObject(it)), result = [], key, i = 0;
|
|
89
92
|
while(names.length > i)has(AllSymbols, key = names[i++]) && result.push(AllSymbols[key]);
|
|
90
93
|
return result;
|
|
@@ -12,14 +12,14 @@ var $ = require('./$')
|
|
|
12
12
|
// 23.3 WeakMap Objects
|
|
13
13
|
var WeakMap = require('./$.collection')('WeakMap', {
|
|
14
14
|
// 23.3.3.3 WeakMap.prototype.get(key)
|
|
15
|
-
get: function(key){
|
|
15
|
+
get: function get(key){
|
|
16
16
|
if(isObject(key)){
|
|
17
17
|
if(isFrozen(key))return leakStore(this).get(key);
|
|
18
18
|
if(has(key, WEAK))return key[WEAK][this[ID]];
|
|
19
19
|
}
|
|
20
20
|
},
|
|
21
21
|
// 23.3.3.5 WeakMap.prototype.set(key, value)
|
|
22
|
-
set: function(key, value){
|
|
22
|
+
set: function set(key, value){
|
|
23
23
|
return weak.def(this, key, value);
|
|
24
24
|
}
|
|
25
25
|
}, weak, true, true);
|
|
@@ -4,7 +4,7 @@ var weak = require('./$.collection-weak');
|
|
|
4
4
|
// 23.4 WeakSet Objects
|
|
5
5
|
require('./$.collection')('WeakSet', {
|
|
6
6
|
// 23.4.3.1 WeakSet.prototype.add(value)
|
|
7
|
-
add: function(value){
|
|
7
|
+
add: function add(value){
|
|
8
8
|
return weak.def(this, value, true);
|
|
9
9
|
}
|
|
10
10
|
}, weak, false, true);
|
|
@@ -4,7 +4,7 @@ var $ = require('./$')
|
|
|
4
4
|
, ownKeys = require('./$.own-keys');
|
|
5
5
|
|
|
6
6
|
$def($def.S, 'Object', {
|
|
7
|
-
getOwnPropertyDescriptors: function(object){
|
|
7
|
+
getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object){
|
|
8
8
|
var O = $.toObject(object)
|
|
9
9
|
, result = {};
|
|
10
10
|
$.each.call(ownKeys(O), function(key){
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// JavaScript 1.6 / Strawman array statics shim
|
|
2
2
|
var $ = require('./$')
|
|
3
3
|
, $def = require('./$.def')
|
|
4
|
-
,
|
|
4
|
+
, $Array = $.core.Array || Array
|
|
5
5
|
, statics = {};
|
|
6
6
|
function setStatics(keys, length){
|
|
7
7
|
$.each.call(keys.split(','), function(key){
|
|
8
|
-
if(length == undefined && key in
|
|
8
|
+
if(length == undefined && key in $Array)statics[key] = $Array[key];
|
|
9
9
|
else if(key in [])statics[key] = require('./$.ctx')(Function.call, [][key], length);
|
|
10
10
|
});
|
|
11
11
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
require('./es6.array.iterator');
|
|
2
|
-
var $
|
|
3
|
-
, Iterators
|
|
4
|
-
, ITERATOR
|
|
5
|
-
,
|
|
2
|
+
var $ = require('./$')
|
|
3
|
+
, Iterators = require('./$.iter').Iterators
|
|
4
|
+
, ITERATOR = require('./$.wks')('iterator')
|
|
5
|
+
, ArrayValues = Iterators.Array
|
|
6
|
+
, NodeList = $.g.NodeList;
|
|
6
7
|
if($.FW && NodeList && !(ITERATOR in NodeList.prototype)){
|
|
7
|
-
$.hide(NodeList.prototype, ITERATOR,
|
|
8
|
+
$.hide(NodeList.prototype, ITERATOR, ArrayValues);
|
|
8
9
|
}
|
|
9
|
-
Iterators.NodeList =
|
|
10
|
+
Iterators.NodeList = ArrayValues;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// ie9- setTimeout & setInterval additional parameters fix
|
|
2
|
-
var $
|
|
3
|
-
, $def
|
|
4
|
-
, invoke
|
|
5
|
-
, partial
|
|
6
|
-
,
|
|
2
|
+
var $ = require('./$')
|
|
3
|
+
, $def = require('./$.def')
|
|
4
|
+
, invoke = require('./$.invoke')
|
|
5
|
+
, partial = require('./$.partial')
|
|
6
|
+
, navigator = $.g.navigator
|
|
7
|
+
, MSIE = !!navigator && /MSIE .\./.test(navigator.userAgent); // <- dirty ie9- check
|
|
7
8
|
function wrap(set){
|
|
8
9
|
return MSIE ? function(fn, time /*, ...args */){
|
|
9
10
|
return set(invoke(
|
|
@@ -14,6 +15,6 @@ function wrap(set){
|
|
|
14
15
|
} : set;
|
|
15
16
|
}
|
|
16
17
|
$def($def.G + $def.B + $def.F * MSIE, {
|
|
17
|
-
setTimeout: wrap(setTimeout),
|
|
18
|
-
setInterval: wrap(setInterval)
|
|
18
|
+
setTimeout: wrap($.g.setTimeout),
|
|
19
|
+
setInterval: wrap($.g.setInterval)
|
|
19
20
|
});
|
package/library/shim.js
CHANGED
|
@@ -37,6 +37,7 @@ require('./modules/es7.string.at');
|
|
|
37
37
|
require('./modules/es7.regexp.escape');
|
|
38
38
|
require('./modules/es7.object.get-own-property-descriptors');
|
|
39
39
|
require('./modules/es7.object.to-array');
|
|
40
|
+
require('./modules/es7.set.to-json');
|
|
40
41
|
require('./modules/js.array.statics');
|
|
41
42
|
require('./modules/web.timers');
|
|
42
43
|
require('./modules/web.immediate');
|