core-js 2.5.6 → 2.6.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/CHANGELOG.md +12 -0
- package/LICENSE +1 -1
- package/README.md +62 -62
- package/bower.json +1 -1
- package/build/config.js +1 -0
- package/client/core.js +1268 -853
- package/client/core.min.js +5 -5
- package/client/core.min.js.map +1 -1
- package/client/library.js +124 -116
- package/client/library.min.js +5 -5
- package/client/library.min.js.map +1 -1
- package/client/shim.js +1205 -790
- package/client/shim.min.js +4 -4
- package/client/shim.min.js.map +1 -1
- package/es6/index.js +1 -0
- package/es6/regexp.js +1 -0
- package/fn/regexp/index.js +1 -0
- package/library/es6/index.js +1 -0
- package/library/es6/regexp.js +1 -0
- package/library/fn/regexp/index.js +1 -0
- package/library/modules/_advance-string-index.js +8 -0
- package/library/modules/_core.js +1 -1
- package/library/modules/_fix-re-wks.js +74 -6
- package/library/modules/_regexp-exec-abstract.js +1 -0
- package/library/modules/_regexp-exec.js +1 -0
- package/library/modules/_shared.js +1 -1
- package/library/modules/es6.regexp.exec.js +1 -0
- package/library/modules/es6.typed.array-buffer.js +3 -3
- package/library/shim.js +1 -0
- package/modules/_advance-string-index.js +8 -0
- package/modules/_core.js +1 -1
- package/modules/_fix-re-wks.js +74 -6
- package/modules/_regexp-exec-abstract.js +21 -0
- package/modules/_regexp-exec.js +58 -0
- package/modules/_shared.js +1 -1
- package/modules/es6.regexp.exec.js +9 -0
- package/modules/es6.regexp.match.js +38 -8
- package/modules/es6.regexp.replace.js +116 -10
- package/modules/es6.regexp.search.js +29 -8
- package/modules/es6.regexp.split.js +91 -30
- package/modules/es6.typed.array-buffer.js +3 -3
- package/modules/library/_regexp-exec-abstract.js +1 -0
- package/modules/library/_regexp-exec.js +1 -0
- package/modules/library/es6.regexp.exec.js +1 -0
- package/package.json +3 -3
- package/shim.js +1 -0
|
@@ -1,12 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var isRegExp = require('./_is-regexp');
|
|
4
|
+
var anObject = require('./_an-object');
|
|
5
|
+
var speciesConstructor = require('./_species-constructor');
|
|
6
|
+
var advanceStringIndex = require('./_advance-string-index');
|
|
7
|
+
var toLength = require('./_to-length');
|
|
8
|
+
var callRegExpExec = require('./_regexp-exec-abstract');
|
|
9
|
+
var regexpExec = require('./_regexp-exec');
|
|
10
|
+
var $min = Math.min;
|
|
11
|
+
var $push = [].push;
|
|
12
|
+
var $SPLIT = 'split';
|
|
13
|
+
var LENGTH = 'length';
|
|
14
|
+
var LAST_INDEX = 'lastIndex';
|
|
15
|
+
|
|
16
|
+
// eslint-disable-next-line no-empty
|
|
17
|
+
var SUPPORTS_Y = !!(function () { try { return new RegExp('x', 'y'); } catch (e) {} })();
|
|
18
|
+
|
|
1
19
|
// @@split logic
|
|
2
|
-
require('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split) {
|
|
3
|
-
|
|
4
|
-
var isRegExp = require('./_is-regexp');
|
|
5
|
-
var _split = $split;
|
|
6
|
-
var $push = [].push;
|
|
7
|
-
var $SPLIT = 'split';
|
|
8
|
-
var LENGTH = 'length';
|
|
9
|
-
var LAST_INDEX = 'lastIndex';
|
|
20
|
+
require('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, maybeCallNative) {
|
|
21
|
+
var internalSplit;
|
|
10
22
|
if (
|
|
11
23
|
'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||
|
|
12
24
|
'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||
|
|
@@ -15,13 +27,12 @@ require('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split) {
|
|
|
15
27
|
'.'[$SPLIT](/()()/)[LENGTH] > 1 ||
|
|
16
28
|
''[$SPLIT](/.?/)[LENGTH]
|
|
17
29
|
) {
|
|
18
|
-
var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group
|
|
19
30
|
// based on es5-shim implementation, need to rework it
|
|
20
|
-
|
|
31
|
+
internalSplit = function (separator, limit) {
|
|
21
32
|
var string = String(this);
|
|
22
33
|
if (separator === undefined && limit === 0) return [];
|
|
23
34
|
// If `separator` is not a regex, use native split
|
|
24
|
-
if (!isRegExp(separator)) return
|
|
35
|
+
if (!isRegExp(separator)) return $split.call(string, separator, limit);
|
|
25
36
|
var output = [];
|
|
26
37
|
var flags = (separator.ignoreCase ? 'i' : '') +
|
|
27
38
|
(separator.multiline ? 'm' : '') +
|
|
@@ -31,19 +42,11 @@ require('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split) {
|
|
|
31
42
|
var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;
|
|
32
43
|
// Make `global` and avoid `lastIndex` issues by working with a copy
|
|
33
44
|
var separatorCopy = new RegExp(separator.source, flags + 'g');
|
|
34
|
-
var
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
while (match = separatorCopy.exec(string)) {
|
|
38
|
-
// `separatorCopy.lastIndex` is not reliable cross-browser
|
|
39
|
-
lastIndex = match.index + match[0][LENGTH];
|
|
45
|
+
var match, lastIndex, lastLength;
|
|
46
|
+
while (match = regexpExec.call(separatorCopy, string)) {
|
|
47
|
+
lastIndex = separatorCopy[LAST_INDEX];
|
|
40
48
|
if (lastIndex > lastLastIndex) {
|
|
41
49
|
output.push(string.slice(lastLastIndex, match.index));
|
|
42
|
-
// Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG
|
|
43
|
-
// eslint-disable-next-line no-loop-func
|
|
44
|
-
if (!NPCG && match[LENGTH] > 1) match[0].replace(separator2, function () {
|
|
45
|
-
for (i = 1; i < arguments[LENGTH] - 2; i++) if (arguments[i] === undefined) match[i] = undefined;
|
|
46
|
-
});
|
|
47
50
|
if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));
|
|
48
51
|
lastLength = match[0][LENGTH];
|
|
49
52
|
lastLastIndex = lastIndex;
|
|
@@ -58,14 +61,72 @@ require('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split) {
|
|
|
58
61
|
};
|
|
59
62
|
// Chakra, V8
|
|
60
63
|
} else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {
|
|
61
|
-
|
|
62
|
-
return separator === undefined && limit === 0 ? [] :
|
|
64
|
+
internalSplit = function (separator, limit) {
|
|
65
|
+
return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);
|
|
63
66
|
};
|
|
67
|
+
} else {
|
|
68
|
+
internalSplit = $split;
|
|
64
69
|
}
|
|
65
|
-
|
|
66
|
-
return [
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
70
|
+
|
|
71
|
+
return [
|
|
72
|
+
// `String.prototype.split` method
|
|
73
|
+
// https://tc39.github.io/ecma262/#sec-string.prototype.split
|
|
74
|
+
function split(separator, limit) {
|
|
75
|
+
var O = defined(this);
|
|
76
|
+
var splitter = separator == undefined ? undefined : separator[SPLIT];
|
|
77
|
+
return splitter !== undefined
|
|
78
|
+
? splitter.call(separator, O, limit)
|
|
79
|
+
: internalSplit.call(String(O), separator, limit);
|
|
80
|
+
},
|
|
81
|
+
// `RegExp.prototype[@@split]` method
|
|
82
|
+
// https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split
|
|
83
|
+
//
|
|
84
|
+
// NOTE: This cannot be properly polyfilled in engines that don't support
|
|
85
|
+
// the 'y' flag.
|
|
86
|
+
function (regexp, limit) {
|
|
87
|
+
var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);
|
|
88
|
+
if (res.done) return res.value;
|
|
89
|
+
|
|
90
|
+
var rx = anObject(regexp);
|
|
91
|
+
var S = String(this);
|
|
92
|
+
var C = speciesConstructor(rx, RegExp);
|
|
93
|
+
|
|
94
|
+
var unicodeMatching = rx.unicode;
|
|
95
|
+
var flags = (rx.ignoreCase ? 'i' : '') +
|
|
96
|
+
(rx.multiline ? 'm' : '') +
|
|
97
|
+
(rx.unicode ? 'u' : '') +
|
|
98
|
+
(SUPPORTS_Y ? 'y' : 'g');
|
|
99
|
+
|
|
100
|
+
// ^(? + rx + ) is needed, in combination with some S slicing, to
|
|
101
|
+
// simulate the 'y' flag.
|
|
102
|
+
var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);
|
|
103
|
+
var lim = limit === undefined ? 0xffffffff : limit >>> 0;
|
|
104
|
+
if (lim === 0) return [];
|
|
105
|
+
if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];
|
|
106
|
+
var p = 0;
|
|
107
|
+
var q = 0;
|
|
108
|
+
var A = [];
|
|
109
|
+
while (q < S.length) {
|
|
110
|
+
splitter.lastIndex = SUPPORTS_Y ? q : 0;
|
|
111
|
+
var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));
|
|
112
|
+
var e;
|
|
113
|
+
if (
|
|
114
|
+
z === null ||
|
|
115
|
+
(e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p
|
|
116
|
+
) {
|
|
117
|
+
q = advanceStringIndex(S, q, unicodeMatching);
|
|
118
|
+
} else {
|
|
119
|
+
A.push(S.slice(p, q));
|
|
120
|
+
if (A.length === lim) return A;
|
|
121
|
+
for (var i = 1; i <= z.length - 1; i++) {
|
|
122
|
+
A.push(z[i]);
|
|
123
|
+
if (A.length === lim) return A;
|
|
124
|
+
}
|
|
125
|
+
q = p = e;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
A.push(S.slice(p));
|
|
129
|
+
return A;
|
|
130
|
+
}
|
|
131
|
+
];
|
|
71
132
|
});
|
|
@@ -32,12 +32,12 @@ $export($export.P + $export.U + $export.F * require('./_fails')(function () {
|
|
|
32
32
|
if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix
|
|
33
33
|
var len = anObject(this).byteLength;
|
|
34
34
|
var first = toAbsoluteIndex(start, len);
|
|
35
|
-
var
|
|
36
|
-
var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(
|
|
35
|
+
var fin = toAbsoluteIndex(end === undefined ? len : end, len);
|
|
36
|
+
var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first));
|
|
37
37
|
var viewS = new $DataView(this);
|
|
38
38
|
var viewT = new $DataView(result);
|
|
39
39
|
var index = 0;
|
|
40
|
-
while (first <
|
|
40
|
+
while (first < fin) {
|
|
41
41
|
viewT.setUint8(index++, viewS.getUint8(first++));
|
|
42
42
|
} return result;
|
|
43
43
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
// empty
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
// empty
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
// empty
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "core-js",
|
|
3
3
|
"description": "Standard library",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.6.2",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/zloirock/core-js.git"
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"LiveScript": "1.3.x",
|
|
12
12
|
"es-observable-tests": "0.2.x",
|
|
13
13
|
"eslint": "4.19.x",
|
|
14
|
-
"eslint-plugin-import": "2.
|
|
14
|
+
"eslint-plugin-import": "2.12.x",
|
|
15
15
|
"grunt": "^1.0.2",
|
|
16
16
|
"grunt-cli": "^1.2.0",
|
|
17
17
|
"grunt-contrib-clean": "^1.1.0",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"grunt-karma": "^2.0.0",
|
|
22
22
|
"grunt-livescript": "0.6.x",
|
|
23
23
|
"karma": "^2.0.0",
|
|
24
|
-
"karma-qunit": "^2.0
|
|
24
|
+
"karma-qunit": "^2.1.0",
|
|
25
25
|
"karma-chrome-launcher": "^2.2.0",
|
|
26
26
|
"karma-firefox-launcher": "^1.0.1",
|
|
27
27
|
"karma-ie-launcher": "^1.0.0",
|
package/shim.js
CHANGED
|
@@ -99,6 +99,7 @@ require('./modules/es6.array.find-index');
|
|
|
99
99
|
require('./modules/es6.array.species');
|
|
100
100
|
require('./modules/es6.array.iterator');
|
|
101
101
|
require('./modules/es6.regexp.constructor');
|
|
102
|
+
require('./modules/es6.regexp.exec');
|
|
102
103
|
require('./modules/es6.regexp.to-string');
|
|
103
104
|
require('./modules/es6.regexp.flags');
|
|
104
105
|
require('./modules/es6.regexp.match');
|