core-js-pure 3.0.0 → 3.1.2
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 +7 -5
- package/es/index.js +2 -0
- package/es/instance/match-all.js +8 -0
- package/es/number/max-safe-integer.js +1 -1
- package/es/number/min-safe-integer.js +1 -1
- package/es/string/index.js +1 -0
- package/es/string/match-all.js +3 -0
- package/es/string/virtual/index.js +1 -0
- package/es/string/virtual/match-all.js +3 -0
- package/es/symbol/index.js +1 -0
- package/es/symbol/match-all.js +4 -0
- package/features/array/flat-map.js +1 -1
- package/features/array/flat.js +1 -1
- package/features/index.js +1 -1
- package/features/instance/match-all.js +1 -8
- package/features/object/index.js +1 -1
- package/features/string/index.js +1 -0
- package/features/string/match-all.js +2 -1
- package/features/string/virtual/index.js +1 -0
- package/features/string/virtual/match-all.js +2 -1
- package/features/symbol/index.js +1 -0
- package/features/symbol/match-all.js +1 -0
- package/features/symbol/replace-all.js +3 -0
- package/internals/call-with-safe-iteration-closing.js +2 -2
- package/internals/check-correctness-of-iteration.js +2 -2
- package/internals/classof.js +1 -1
- package/internals/fails.js +1 -1
- package/internals/flatten-into-array.js +1 -1
- package/internals/forced-object-prototype-accessors-methods.js +6 -2
- package/internals/forced-string-trim-method.js +1 -1
- package/internals/global.js +12 -3
- package/internals/hide.js +2 -1
- package/internals/ie8-dom-define.js +6 -2
- package/internals/internal-metadata.js +2 -1
- package/internals/microtask.js +3 -3
- package/internals/native-symbol.js +5 -3
- package/internals/native-url.js +2 -1
- package/internals/object-assign.js +7 -2
- package/internals/object-create.js +2 -1
- package/internals/object-define-property.js +1 -1
- package/internals/object-get-own-property-descriptor.js +1 -1
- package/internals/object-get-own-property-names-external.js +1 -1
- package/internals/object-set-prototype-of.js +2 -2
- package/internals/object-to-array.js +8 -3
- package/internals/parse-int.js +1 -1
- package/internals/perform.js +3 -3
- package/internals/punycode-to-ascii.js +3 -3
- package/internals/set-global.js +1 -1
- package/internals/shared.js +3 -2
- package/internals/sloppy-array-method.js +2 -2
- package/internals/string-at.js +3 -3
- package/internals/task.js +21 -11
- package/internals/to-length.js +1 -1
- package/internals/webkit-string-pad-bug.js +5 -0
- package/internals/whitespaces.js +1 -1
- package/modules/es.array.concat.js +1 -1
- package/modules/es.array.splice.js +1 -1
- package/modules/es.math.imul.js +2 -2
- package/modules/es.number.is-safe-integer.js +1 -1
- package/modules/es.number.max-safe-integer.js +1 -1
- package/modules/es.number.min-safe-integer.js +1 -1
- package/modules/es.object.get-own-property-names.js +1 -1
- package/modules/es.promise.js +15 -13
- package/modules/es.reflect.define-property.js +1 -1
- package/modules/es.reflect.prevent-extensions.js +1 -1
- package/modules/es.reflect.set-prototype-of.js +1 -1
- package/modules/es.string.from-code-point.js +2 -2
- package/modules/es.string.match-all.js +91 -0
- package/modules/es.string.pad-end.js +1 -4
- package/modules/es.string.pad-start.js +1 -4
- package/modules/es.symbol.js +11 -1
- package/modules/es.symbol.match-all.js +2 -0
- package/modules/esnext.math.imulh.js +1 -1
- package/modules/esnext.math.umulh.js +1 -1
- package/modules/esnext.number.from-string.js +1 -1
- package/modules/esnext.observable.js +12 -12
- package/modules/esnext.promise.all-settled.js +4 -2
- package/modules/esnext.promise.any.js +4 -2
- package/modules/esnext.promise.try.js +8 -6
- package/modules/esnext.string.match-all.js +3 -87
- package/modules/esnext.string.replace-all.js +37 -8
- package/modules/esnext.symbol.replace-all.js +3 -0
- package/modules/web.url-search-params.js +19 -1
- package/modules/web.url.js +32 -36
- package/package.json +5 -2
- package/proposals/string-match-all.js +3 -0
- package/proposals/string-replace-all.js +1 -0
- package/scripts/postinstall.js +12 -0
- package/stable/array/flat-map.js +1 -1
- package/stable/array/flat.js +1 -1
- package/stable/instance/match-all.js +1 -0
- package/stable/object/index.js +1 -1
- package/stable/string/match-all.js +1 -0
- package/stable/string/virtual/match-all.js +1 -0
- package/stable/symbol/match-all.js +1 -0
- package/stage/0.js +0 -1
- package/stage/1.js +1 -1
- package/stage/2.js +1 -1
- package/stage/3.js +1 -1
- package/stage/4.js +2 -0
package/internals/task.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
var global = require('../internals/global');
|
|
2
|
+
var fails = require('../internals/fails');
|
|
2
3
|
var classof = require('../internals/classof-raw');
|
|
3
4
|
var bind = require('../internals/bind-context');
|
|
4
5
|
var html = require('../internals/html');
|
|
5
6
|
var createElement = require('../internals/document-create-element');
|
|
7
|
+
var location = global.location;
|
|
6
8
|
var set = global.setImmediate;
|
|
7
9
|
var clear = global.clearImmediate;
|
|
8
10
|
var process = global.process;
|
|
@@ -13,8 +15,7 @@ var queue = {};
|
|
|
13
15
|
var ONREADYSTATECHANGE = 'onreadystatechange';
|
|
14
16
|
var defer, channel, port;
|
|
15
17
|
|
|
16
|
-
var run = function () {
|
|
17
|
-
var id = +this;
|
|
18
|
+
var run = function (id) {
|
|
18
19
|
// eslint-disable-next-line no-prototype-builtins
|
|
19
20
|
if (queue.hasOwnProperty(id)) {
|
|
20
21
|
var fn = queue[id];
|
|
@@ -23,8 +24,19 @@ var run = function () {
|
|
|
23
24
|
}
|
|
24
25
|
};
|
|
25
26
|
|
|
27
|
+
var runner = function (id) {
|
|
28
|
+
return function () {
|
|
29
|
+
run(id);
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
|
|
26
33
|
var listener = function (event) {
|
|
27
|
-
run
|
|
34
|
+
run(event.data);
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
var post = function (id) {
|
|
38
|
+
// old engines have not location.origin
|
|
39
|
+
global.postMessage(id + '', location.protocol + '//' + location.host);
|
|
28
40
|
};
|
|
29
41
|
|
|
30
42
|
// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
|
|
@@ -46,12 +58,12 @@ if (!set || !clear) {
|
|
|
46
58
|
// Node.js 0.8-
|
|
47
59
|
if (classof(process) == 'process') {
|
|
48
60
|
defer = function (id) {
|
|
49
|
-
process.nextTick(
|
|
61
|
+
process.nextTick(runner(id));
|
|
50
62
|
};
|
|
51
63
|
// Sphere (JS game engine) Dispatch API
|
|
52
64
|
} else if (Dispatch && Dispatch.now) {
|
|
53
65
|
defer = function (id) {
|
|
54
|
-
Dispatch.now(
|
|
66
|
+
Dispatch.now(runner(id));
|
|
55
67
|
};
|
|
56
68
|
// Browsers with MessageChannel, includes WebWorkers
|
|
57
69
|
} else if (MessageChannel) {
|
|
@@ -61,23 +73,21 @@ if (!set || !clear) {
|
|
|
61
73
|
defer = bind(port.postMessage, port, 1);
|
|
62
74
|
// Browsers with postMessage, skip WebWorkers
|
|
63
75
|
// IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
|
|
64
|
-
} else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {
|
|
65
|
-
defer =
|
|
66
|
-
global.postMessage(id + '', '*');
|
|
67
|
-
};
|
|
76
|
+
} else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts && !fails(post)) {
|
|
77
|
+
defer = post;
|
|
68
78
|
global.addEventListener('message', listener, false);
|
|
69
79
|
// IE8-
|
|
70
80
|
} else if (ONREADYSTATECHANGE in createElement('script')) {
|
|
71
81
|
defer = function (id) {
|
|
72
82
|
html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {
|
|
73
83
|
html.removeChild(this);
|
|
74
|
-
run
|
|
84
|
+
run(id);
|
|
75
85
|
};
|
|
76
86
|
};
|
|
77
87
|
// Rest old browsers
|
|
78
88
|
} else {
|
|
79
89
|
defer = function (id) {
|
|
80
|
-
setTimeout(
|
|
90
|
+
setTimeout(runner(id), 0);
|
|
81
91
|
};
|
|
82
92
|
}
|
|
83
93
|
}
|
package/internals/to-length.js
CHANGED
|
@@ -4,5 +4,5 @@ var min = Math.min;
|
|
|
4
4
|
// `ToLength` abstract operation
|
|
5
5
|
// https://tc39.github.io/ecma262/#sec-tolength
|
|
6
6
|
module.exports = function (argument) {
|
|
7
|
-
return argument > 0 ? min(toInteger(argument),
|
|
7
|
+
return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
|
|
8
8
|
};
|
package/internals/whitespaces.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// a string of all valid unicode whitespaces
|
|
2
2
|
// eslint-disable-next-line max-len
|
|
3
|
-
module.exports = '\
|
|
3
|
+
module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
|
|
@@ -6,7 +6,7 @@ var toLength = require('../internals/to-length');
|
|
|
6
6
|
var createProperty = require('../internals/create-property');
|
|
7
7
|
var arraySpeciesCreate = require('../internals/array-species-create');
|
|
8
8
|
var IS_CONCAT_SPREADABLE = require('../internals/well-known-symbol')('isConcatSpreadable');
|
|
9
|
-
var MAX_SAFE_INTEGER =
|
|
9
|
+
var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
|
|
10
10
|
var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';
|
|
11
11
|
|
|
12
12
|
var IS_CONCAT_SPREADABLE_SUPPORT = !require('../internals/fails')(function () {
|
|
@@ -7,7 +7,7 @@ var arraySpeciesCreate = require('../internals/array-species-create');
|
|
|
7
7
|
var createProperty = require('../internals/create-property');
|
|
8
8
|
var max = Math.max;
|
|
9
9
|
var min = Math.min;
|
|
10
|
-
var MAX_SAFE_INTEGER =
|
|
10
|
+
var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
|
|
11
11
|
var MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';
|
|
12
12
|
|
|
13
13
|
var SPECIES_SUPPORT = require('../internals/array-method-has-species-support')('splice');
|
package/modules/es.math.imul.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var nativeImul = Math.imul;
|
|
2
2
|
|
|
3
3
|
var FORCED = require('../internals/fails')(function () {
|
|
4
|
-
return nativeImul(
|
|
4
|
+
return nativeImul(0xFFFFFFFF, 5) != -5 || nativeImul.length != 2;
|
|
5
5
|
});
|
|
6
6
|
|
|
7
7
|
// `Math.imul` method
|
|
@@ -9,7 +9,7 @@ var FORCED = require('../internals/fails')(function () {
|
|
|
9
9
|
// some WebKit versions fails with big numbers, some has wrong arity
|
|
10
10
|
require('../internals/export')({ target: 'Math', stat: true, forced: FORCED }, {
|
|
11
11
|
imul: function imul(x, y) {
|
|
12
|
-
var UINT16 =
|
|
12
|
+
var UINT16 = 0xFFFF;
|
|
13
13
|
var xn = +x;
|
|
14
14
|
var yn = +y;
|
|
15
15
|
var xl = UINT16 & xn;
|
|
@@ -5,6 +5,6 @@ var abs = Math.abs;
|
|
|
5
5
|
// https://tc39.github.io/ecma262/#sec-number.issafeinteger
|
|
6
6
|
require('../internals/export')({ target: 'Number', stat: true }, {
|
|
7
7
|
isSafeInteger: function isSafeInteger(number) {
|
|
8
|
-
return isInteger(number) && abs(number) <=
|
|
8
|
+
return isInteger(number) && abs(number) <= 0x1FFFFFFFFFFFFF;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// `Number.MAX_SAFE_INTEGER` constant
|
|
2
2
|
// https://tc39.github.io/ecma262/#sec-number.max_safe_integer
|
|
3
|
-
require('../internals/export')({ target: 'Number', stat: true }, { MAX_SAFE_INTEGER:
|
|
3
|
+
require('../internals/export')({ target: 'Number', stat: true }, { MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF });
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// `Number.MIN_SAFE_INTEGER` constant
|
|
2
2
|
// https://tc39.github.io/ecma262/#sec-number.min_safe_integer
|
|
3
|
-
require('../internals/export')({ target: 'Number', stat: true }, { MIN_SAFE_INTEGER: -
|
|
3
|
+
require('../internals/export')({ target: 'Number', stat: true }, { MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF });
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;
|
|
2
|
-
var FAILS_ON_PRIMITIVES = require('../internals/fails')(function () { Object.getOwnPropertyNames(1); });
|
|
2
|
+
var FAILS_ON_PRIMITIVES = require('../internals/fails')(function () { return !Object.getOwnPropertyNames(1); });
|
|
3
3
|
|
|
4
4
|
// `Object.getOwnPropertyNames` method
|
|
5
5
|
// https://tc39.github.io/ecma262/#sec-object.getownpropertynames
|
package/modules/es.promise.js
CHANGED
|
@@ -106,9 +106,9 @@ var notify = function (promise, state, isReject) {
|
|
|
106
106
|
then.call(result, resolve, reject);
|
|
107
107
|
} else resolve(result);
|
|
108
108
|
} else reject(value);
|
|
109
|
-
} catch (
|
|
109
|
+
} catch (error) {
|
|
110
110
|
if (domain && !exited) domain.exit();
|
|
111
|
-
reject(
|
|
111
|
+
reject(error);
|
|
112
112
|
}
|
|
113
113
|
};
|
|
114
114
|
while (chain.length > i) run(chain[i++]); // variable length - can't use forEach
|
|
@@ -144,8 +144,8 @@ var onUnhandled = function (promise, state) {
|
|
|
144
144
|
});
|
|
145
145
|
// Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
|
|
146
146
|
state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;
|
|
147
|
+
if (result.error) throw result.value;
|
|
147
148
|
}
|
|
148
|
-
if (IS_UNHANDLED && result.e) throw result.v;
|
|
149
149
|
});
|
|
150
150
|
};
|
|
151
151
|
|
|
@@ -191,8 +191,8 @@ var internalResolve = function (promise, state, value, unwrap) {
|
|
|
191
191
|
bind(internalResolve, promise, wrapper, state),
|
|
192
192
|
bind(internalReject, promise, wrapper, state)
|
|
193
193
|
);
|
|
194
|
-
} catch (
|
|
195
|
-
internalReject(promise, wrapper,
|
|
194
|
+
} catch (error) {
|
|
195
|
+
internalReject(promise, wrapper, error, state);
|
|
196
196
|
}
|
|
197
197
|
});
|
|
198
198
|
} else {
|
|
@@ -200,8 +200,8 @@ var internalResolve = function (promise, state, value, unwrap) {
|
|
|
200
200
|
state.state = FULFILLED;
|
|
201
201
|
notify(promise, state, false);
|
|
202
202
|
}
|
|
203
|
-
} catch (
|
|
204
|
-
internalReject(promise, { done: false },
|
|
203
|
+
} catch (error) {
|
|
204
|
+
internalReject(promise, { done: false }, error, state);
|
|
205
205
|
}
|
|
206
206
|
};
|
|
207
207
|
|
|
@@ -215,8 +215,8 @@ if (FORCED) {
|
|
|
215
215
|
var state = getInternalState(this);
|
|
216
216
|
try {
|
|
217
217
|
executor(bind(internalResolve, this, state), bind(internalReject, this, state));
|
|
218
|
-
} catch (
|
|
219
|
-
internalReject(this, state,
|
|
218
|
+
} catch (error) {
|
|
219
|
+
internalReject(this, state, error);
|
|
220
220
|
}
|
|
221
221
|
};
|
|
222
222
|
// eslint-disable-next-line no-unused-vars
|
|
@@ -309,6 +309,7 @@ $export({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {
|
|
|
309
309
|
var resolve = capability.resolve;
|
|
310
310
|
var reject = capability.reject;
|
|
311
311
|
var result = perform(function () {
|
|
312
|
+
var $promiseResolve = aFunction(C.resolve);
|
|
312
313
|
var values = [];
|
|
313
314
|
var counter = 0;
|
|
314
315
|
var remaining = 1;
|
|
@@ -317,7 +318,7 @@ $export({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {
|
|
|
317
318
|
var alreadyCalled = false;
|
|
318
319
|
values.push(undefined);
|
|
319
320
|
remaining++;
|
|
320
|
-
|
|
321
|
+
$promiseResolve.call(C, promise).then(function (value) {
|
|
321
322
|
if (alreadyCalled) return;
|
|
322
323
|
alreadyCalled = true;
|
|
323
324
|
values[index] = value;
|
|
@@ -326,7 +327,7 @@ $export({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {
|
|
|
326
327
|
});
|
|
327
328
|
--remaining || resolve(values);
|
|
328
329
|
});
|
|
329
|
-
if (result.
|
|
330
|
+
if (result.error) reject(result.value);
|
|
330
331
|
return capability.promise;
|
|
331
332
|
},
|
|
332
333
|
// `Promise.race` method
|
|
@@ -336,11 +337,12 @@ $export({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {
|
|
|
336
337
|
var capability = newPromiseCapability(C);
|
|
337
338
|
var reject = capability.reject;
|
|
338
339
|
var result = perform(function () {
|
|
340
|
+
var $promiseResolve = aFunction(C.resolve);
|
|
339
341
|
iterate(iterable, function (promise) {
|
|
340
|
-
|
|
342
|
+
$promiseResolve.call(C, promise).then(capability.resolve, reject);
|
|
341
343
|
});
|
|
342
344
|
});
|
|
343
|
-
if (result.
|
|
345
|
+
if (result.error) reject(result.value);
|
|
344
346
|
return capability.promise;
|
|
345
347
|
}
|
|
346
348
|
});
|
|
@@ -11,7 +11,7 @@ require('../internals/export')({ target: 'Reflect', stat: true, sham: !FREEZING
|
|
|
11
11
|
var objectPreventExtensions = getBuiltIn('Object', 'preventExtensions');
|
|
12
12
|
if (objectPreventExtensions) objectPreventExtensions(target);
|
|
13
13
|
return true;
|
|
14
|
-
} catch (
|
|
14
|
+
} catch (error) {
|
|
15
15
|
return false;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -15,10 +15,10 @@ require('../internals/export')({ target: 'String', stat: true, forced: INCORRECT
|
|
|
15
15
|
var code;
|
|
16
16
|
while (length > i) {
|
|
17
17
|
code = +arguments[i++];
|
|
18
|
-
if (toAbsoluteIndex(code,
|
|
18
|
+
if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point');
|
|
19
19
|
elements.push(code < 0x10000
|
|
20
20
|
? fromCharCode(code)
|
|
21
|
-
: fromCharCode(((code -= 0x10000) >> 10) +
|
|
21
|
+
: fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00)
|
|
22
22
|
);
|
|
23
23
|
} return elements.join('');
|
|
24
24
|
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var createIteratorConstructor = require('../internals/create-iterator-constructor');
|
|
3
|
+
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
4
|
+
var toLength = require('../internals/to-length');
|
|
5
|
+
var aFunction = require('../internals/a-function');
|
|
6
|
+
var anObject = require('../internals/an-object');
|
|
7
|
+
var classof = require('../internals/classof');
|
|
8
|
+
var getFlags = require('../internals/regexp-flags');
|
|
9
|
+
var hide = require('../internals/hide');
|
|
10
|
+
var speciesConstructor = require('../internals/species-constructor');
|
|
11
|
+
var advanceStringIndex = require('../internals/advance-string-index');
|
|
12
|
+
var MATCH_ALL = require('../internals/well-known-symbol')('matchAll');
|
|
13
|
+
var IS_PURE = require('../internals/is-pure');
|
|
14
|
+
var REGEXP_STRING = 'RegExp String';
|
|
15
|
+
var REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator';
|
|
16
|
+
var InternalStateModule = require('../internals/internal-state');
|
|
17
|
+
var setInternalState = InternalStateModule.set;
|
|
18
|
+
var getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);
|
|
19
|
+
var RegExpPrototype = RegExp.prototype;
|
|
20
|
+
var regExpBuiltinExec = RegExpPrototype.exec;
|
|
21
|
+
|
|
22
|
+
var regExpExec = function (R, S) {
|
|
23
|
+
var exec = R.exec;
|
|
24
|
+
var result;
|
|
25
|
+
if (typeof exec == 'function') {
|
|
26
|
+
result = exec.call(R, S);
|
|
27
|
+
if (typeof result != 'object') throw TypeError('Incorrect exec result');
|
|
28
|
+
return result;
|
|
29
|
+
} return regExpBuiltinExec.call(R, S);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
// eslint-disable-next-line max-len
|
|
33
|
+
var $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, global, fullUnicode) {
|
|
34
|
+
setInternalState(this, {
|
|
35
|
+
type: REGEXP_STRING_ITERATOR,
|
|
36
|
+
regexp: regexp,
|
|
37
|
+
string: string,
|
|
38
|
+
global: global,
|
|
39
|
+
unicode: fullUnicode,
|
|
40
|
+
done: false
|
|
41
|
+
});
|
|
42
|
+
}, REGEXP_STRING, function next() {
|
|
43
|
+
var state = getInternalState(this);
|
|
44
|
+
if (state.done) return { value: undefined, done: true };
|
|
45
|
+
var R = state.regexp;
|
|
46
|
+
var S = state.string;
|
|
47
|
+
var match = regExpExec(R, S);
|
|
48
|
+
if (match === null) return { value: undefined, done: state.done = true };
|
|
49
|
+
if (state.global) {
|
|
50
|
+
if (String(match[0]) == '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode);
|
|
51
|
+
return { value: match, done: false };
|
|
52
|
+
}
|
|
53
|
+
state.done = true;
|
|
54
|
+
return { value: match, done: false };
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
var $matchAll = function (string) {
|
|
58
|
+
var R = anObject(this);
|
|
59
|
+
var S = String(string);
|
|
60
|
+
var C, flagsValue, flags, matcher, global, fullUnicode;
|
|
61
|
+
C = speciesConstructor(R, RegExp);
|
|
62
|
+
flagsValue = R.flags;
|
|
63
|
+
if (flagsValue === undefined && R instanceof RegExp && !('flags' in RegExpPrototype)) {
|
|
64
|
+
flagsValue = getFlags.call(R);
|
|
65
|
+
}
|
|
66
|
+
flags = flagsValue === undefined ? '' : String(flagsValue);
|
|
67
|
+
matcher = new C(C === RegExp ? R.source : R, flags);
|
|
68
|
+
global = !!~flags.indexOf('g');
|
|
69
|
+
fullUnicode = !!~flags.indexOf('u');
|
|
70
|
+
matcher.lastIndex = toLength(R.lastIndex);
|
|
71
|
+
return new $RegExpStringIterator(matcher, S, global, fullUnicode);
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
// `String.prototype.matchAll` method
|
|
75
|
+
// https://github.com/tc39/proposal-string-matchall
|
|
76
|
+
require('../internals/export')({ target: 'String', proto: true }, {
|
|
77
|
+
matchAll: function matchAll(regexp) {
|
|
78
|
+
var O = requireObjectCoercible(this);
|
|
79
|
+
var S, matcher, rx;
|
|
80
|
+
if (regexp != null) {
|
|
81
|
+
matcher = regexp[MATCH_ALL];
|
|
82
|
+
if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll;
|
|
83
|
+
if (matcher != null) return aFunction(matcher).call(regexp, O);
|
|
84
|
+
}
|
|
85
|
+
S = String(O);
|
|
86
|
+
rx = new RegExp(regexp, 'g');
|
|
87
|
+
return IS_PURE ? $matchAll.call(rx, S) : rx[MATCH_ALL](S);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
IS_PURE || MATCH_ALL in RegExpPrototype || hide(RegExpPrototype, MATCH_ALL, $matchAll);
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var internalStringPad = require('../internals/string-pad');
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
// https://github.com/zloirock/core-js/issues/280
|
|
6
|
-
var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent);
|
|
3
|
+
var WEBKIT_BUG = require('../internals/webkit-string-pad-bug');
|
|
7
4
|
|
|
8
5
|
// `String.prototype.padEnd` method
|
|
9
6
|
// https://tc39.github.io/ecma262/#sec-string.prototype.padend
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var internalStringPad = require('../internals/string-pad');
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
// https://github.com/zloirock/core-js/issues/280
|
|
6
|
-
var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent);
|
|
3
|
+
var WEBKIT_BUG = require('../internals/webkit-string-pad-bug');
|
|
7
4
|
|
|
8
5
|
// `String.prototype.padStart` method
|
|
9
6
|
// https://tc39.github.io/ecma262/#sec-string.prototype.padstart
|
package/modules/es.symbol.js
CHANGED
|
@@ -18,6 +18,7 @@ var enumKeys = require('../internals/enum-keys');
|
|
|
18
18
|
var isArray = require('../internals/is-array');
|
|
19
19
|
var anObject = require('../internals/an-object');
|
|
20
20
|
var isObject = require('../internals/is-object');
|
|
21
|
+
var toObject = require('../internals/to-object');
|
|
21
22
|
var toIndexedObject = require('../internals/to-indexed-object');
|
|
22
23
|
var toPrimitive = require('../internals/to-primitive');
|
|
23
24
|
var createPropertyDescriptor = require('../internals/create-property-descriptor');
|
|
@@ -36,6 +37,7 @@ var getInternalState = InternalStateModule.getterFor(SYMBOL);
|
|
|
36
37
|
var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
|
|
37
38
|
var nativeDefineProperty = definePropertyModule.f;
|
|
38
39
|
var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;
|
|
40
|
+
var getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');
|
|
39
41
|
var $Symbol = global.Symbol;
|
|
40
42
|
var JSON = global.JSON;
|
|
41
43
|
var nativeJSONStringify = JSON && JSON.stringify;
|
|
@@ -172,7 +174,7 @@ if (!NATIVE_SYMBOL) {
|
|
|
172
174
|
definePropertyModule.f = $defineProperty;
|
|
173
175
|
getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;
|
|
174
176
|
require('../internals/object-get-own-property-names').f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;
|
|
175
|
-
|
|
177
|
+
getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;
|
|
176
178
|
|
|
177
179
|
if (DESCRIPTORS) {
|
|
178
180
|
// https://github.com/tc39/proposal-Symbol-description
|
|
@@ -240,6 +242,14 @@ $export({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {
|
|
|
240
242
|
getOwnPropertySymbols: $getOwnPropertySymbols
|
|
241
243
|
});
|
|
242
244
|
|
|
245
|
+
// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
|
|
246
|
+
// https://bugs.chromium.org/p/v8/issues/detail?id=3443
|
|
247
|
+
$export({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {
|
|
248
|
+
getOwnPropertySymbols: function getOwnPropertySymbols(it) {
|
|
249
|
+
return getOwnPropertySymbolsModule.f(toObject(it));
|
|
250
|
+
}
|
|
251
|
+
});
|
|
252
|
+
|
|
243
253
|
// `JSON.stringify` method behavior with symbols
|
|
244
254
|
// https://tc39.github.io/ecma262/#sec-json.stringify
|
|
245
255
|
JSON && $export({ target: 'JSON', stat: true, forced: !NATIVE_SYMBOL || fails(function () {
|
|
@@ -3,7 +3,7 @@ var toInteger = require('../internals/to-integer');
|
|
|
3
3
|
var parseInt = require('../internals/parse-int');
|
|
4
4
|
var INVALID_NUMBER_REPRESENTATION = 'Invalid number representation';
|
|
5
5
|
var INVALID_RADIX = 'Invalid radix';
|
|
6
|
-
var valid = /^[
|
|
6
|
+
var valid = /^[\da-z]+$/;
|
|
7
7
|
|
|
8
8
|
// `Number.fromString` method
|
|
9
9
|
// https://github.com/tc39/proposal-number-fromstring
|
|
@@ -27,8 +27,8 @@ var cleanupSubscription = function (subscriptionState) {
|
|
|
27
27
|
subscriptionState.cleanup = undefined;
|
|
28
28
|
try {
|
|
29
29
|
cleanup();
|
|
30
|
-
} catch (
|
|
31
|
-
hostReportErrors(
|
|
30
|
+
} catch (error) {
|
|
31
|
+
hostReportErrors(error);
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
};
|
|
@@ -55,8 +55,8 @@ var Subscription = function (observer, subscriber) {
|
|
|
55
55
|
if (!DESCRIPTORS) this.closed = false;
|
|
56
56
|
try {
|
|
57
57
|
if (start = getMethod(observer.start)) start.call(observer, this);
|
|
58
|
-
} catch (
|
|
59
|
-
hostReportErrors(
|
|
58
|
+
} catch (error) {
|
|
59
|
+
hostReportErrors(error);
|
|
60
60
|
}
|
|
61
61
|
if (subscriptionClosed(subscriptionState)) return;
|
|
62
62
|
var subscriptionObserver = subscriptionState.subscriptionObserver = new SubscriptionObserver(this);
|
|
@@ -66,8 +66,8 @@ var Subscription = function (observer, subscriber) {
|
|
|
66
66
|
if (cleanup != null) subscriptionState.cleanup = typeof cleanup.unsubscribe === 'function'
|
|
67
67
|
? function () { subscription.unsubscribe(); }
|
|
68
68
|
: aFunction(cleanup);
|
|
69
|
-
} catch (
|
|
70
|
-
subscriptionObserver.error(
|
|
69
|
+
} catch (error) {
|
|
70
|
+
subscriptionObserver.error(error);
|
|
71
71
|
return;
|
|
72
72
|
} if (subscriptionClosed(subscriptionState)) cleanupSubscription(subscriptionState);
|
|
73
73
|
};
|
|
@@ -102,8 +102,8 @@ SubscriptionObserver.prototype = redefineAll({}, {
|
|
|
102
102
|
try {
|
|
103
103
|
var m = getMethod(observer.next);
|
|
104
104
|
if (m) m.call(observer, value);
|
|
105
|
-
} catch (
|
|
106
|
-
hostReportErrors(
|
|
105
|
+
} catch (error) {
|
|
106
|
+
hostReportErrors(error);
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
},
|
|
@@ -117,8 +117,8 @@ SubscriptionObserver.prototype = redefineAll({}, {
|
|
|
117
117
|
var m = getMethod(observer.error);
|
|
118
118
|
if (m) m.call(observer, value);
|
|
119
119
|
else hostReportErrors(value);
|
|
120
|
-
} catch (
|
|
121
|
-
hostReportErrors(
|
|
120
|
+
} catch (err) {
|
|
121
|
+
hostReportErrors(err);
|
|
122
122
|
} cleanupSubscription(subscriptionState);
|
|
123
123
|
}
|
|
124
124
|
},
|
|
@@ -131,8 +131,8 @@ SubscriptionObserver.prototype = redefineAll({}, {
|
|
|
131
131
|
try {
|
|
132
132
|
var m = getMethod(observer.complete);
|
|
133
133
|
if (m) m.call(observer);
|
|
134
|
-
} catch (
|
|
135
|
-
hostReportErrors(
|
|
134
|
+
} catch (error) {
|
|
135
|
+
hostReportErrors(error);
|
|
136
136
|
} cleanupSubscription(subscriptionState);
|
|
137
137
|
}
|
|
138
138
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
// `Promise.allSettled` method
|
|
3
3
|
// https://github.com/tc39/proposal-promise-allSettled
|
|
4
|
+
var aFunction = require('../internals/a-function');
|
|
4
5
|
var newPromiseCapabilityModule = require('../internals/new-promise-capability');
|
|
5
6
|
var perform = require('../internals/perform');
|
|
6
7
|
var iterate = require('../internals/iterate');
|
|
@@ -12,6 +13,7 @@ require('../internals/export')({ target: 'Promise', stat: true }, {
|
|
|
12
13
|
var resolve = capability.resolve;
|
|
13
14
|
var reject = capability.reject;
|
|
14
15
|
var result = perform(function () {
|
|
16
|
+
var promiseResolve = aFunction(C.resolve);
|
|
15
17
|
var values = [];
|
|
16
18
|
var counter = 0;
|
|
17
19
|
var remaining = 1;
|
|
@@ -20,7 +22,7 @@ require('../internals/export')({ target: 'Promise', stat: true }, {
|
|
|
20
22
|
var alreadyCalled = false;
|
|
21
23
|
values.push(undefined);
|
|
22
24
|
remaining++;
|
|
23
|
-
|
|
25
|
+
promiseResolve.call(C, promise).then(function (value) {
|
|
24
26
|
if (alreadyCalled) return;
|
|
25
27
|
alreadyCalled = true;
|
|
26
28
|
values[index] = { status: 'fulfilled', value: value };
|
|
@@ -34,7 +36,7 @@ require('../internals/export')({ target: 'Promise', stat: true }, {
|
|
|
34
36
|
});
|
|
35
37
|
--remaining || resolve(values);
|
|
36
38
|
});
|
|
37
|
-
if (result.
|
|
39
|
+
if (result.error) reject(result.value);
|
|
38
40
|
return capability.promise;
|
|
39
41
|
}
|
|
40
42
|
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
// `Promise.any` method
|
|
3
3
|
// https://github.com/tc39/proposal-promise-any
|
|
4
|
+
var aFunction = require('../internals/a-function');
|
|
4
5
|
var getBuiltIn = require('../internals/get-built-in');
|
|
5
6
|
var newPromiseCapabilityModule = require('../internals/new-promise-capability');
|
|
6
7
|
var perform = require('../internals/perform');
|
|
@@ -14,6 +15,7 @@ require('../internals/export')({ target: 'Promise', stat: true }, {
|
|
|
14
15
|
var resolve = capability.resolve;
|
|
15
16
|
var reject = capability.reject;
|
|
16
17
|
var result = perform(function () {
|
|
18
|
+
var promiseResolve = aFunction(C.resolve);
|
|
17
19
|
var errors = [];
|
|
18
20
|
var counter = 0;
|
|
19
21
|
var remaining = 1;
|
|
@@ -23,7 +25,7 @@ require('../internals/export')({ target: 'Promise', stat: true }, {
|
|
|
23
25
|
var alreadyRejected = false;
|
|
24
26
|
errors.push(undefined);
|
|
25
27
|
remaining++;
|
|
26
|
-
|
|
28
|
+
promiseResolve.call(C, promise).then(function (value) {
|
|
27
29
|
if (alreadyRejected || alreadyResolved) return;
|
|
28
30
|
alreadyResolved = true;
|
|
29
31
|
resolve(value);
|
|
@@ -36,7 +38,7 @@ require('../internals/export')({ target: 'Promise', stat: true }, {
|
|
|
36
38
|
});
|
|
37
39
|
--remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR));
|
|
38
40
|
});
|
|
39
|
-
if (result.
|
|
41
|
+
if (result.error) reject(result.value);
|
|
40
42
|
return capability.promise;
|
|
41
43
|
}
|
|
42
44
|
});
|
|
@@ -4,9 +4,11 @@
|
|
|
4
4
|
var newPromiseCapabilityModule = require('../internals/new-promise-capability');
|
|
5
5
|
var perform = require('../internals/perform');
|
|
6
6
|
|
|
7
|
-
require('../internals/export')({ target: 'Promise', stat: true }, {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
require('../internals/export')({ target: 'Promise', stat: true }, {
|
|
8
|
+
'try': function (callbackfn) {
|
|
9
|
+
var promiseCapability = newPromiseCapabilityModule.f(this);
|
|
10
|
+
var result = perform(callbackfn);
|
|
11
|
+
(result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value);
|
|
12
|
+
return promiseCapability.promise;
|
|
13
|
+
}
|
|
14
|
+
});
|