core-js 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/array-buffer-view-core.js +1 -1
- package/internals/array-buffer.js +3 -3
- 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/redefine.js +2 -1
- 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/typed-array-constructor.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.function.name.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.regexp.to-string.js +5 -3
- 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.string.replace.js +2 -2
- package/modules/es.string.split.js +1 -1
- 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.dom-collections.for-each.js +1 -1
- package/modules/web.dom-collections.iterator.js +2 -2
- 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
|
@@ -4,7 +4,7 @@ var fails = require('../internals/fails');
|
|
|
4
4
|
module.exports = function (METHOD_NAME, argument) {
|
|
5
5
|
var method = [][METHOD_NAME];
|
|
6
6
|
return !method || !fails(function () {
|
|
7
|
-
// eslint-disable-next-line no-useless-call
|
|
8
|
-
method.call(null, argument || function () { throw
|
|
7
|
+
// eslint-disable-next-line no-useless-call,no-throw-literal
|
|
8
|
+
method.call(null, argument || function () { throw 1; }, 1);
|
|
9
9
|
});
|
|
10
10
|
};
|
package/internals/string-at.js
CHANGED
|
@@ -9,8 +9,8 @@ module.exports = function (that, pos, CONVERT_TO_STRING) {
|
|
|
9
9
|
var first, second;
|
|
10
10
|
if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
|
|
11
11
|
first = S.charCodeAt(position);
|
|
12
|
-
return first <
|
|
13
|
-
|| (second = S.charCodeAt(position + 1)) <
|
|
12
|
+
return first < 0xD800 || first > 0xDBFF || position + 1 === size
|
|
13
|
+
|| (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF
|
|
14
14
|
? CONVERT_TO_STRING ? S.charAt(position) : first
|
|
15
|
-
: CONVERT_TO_STRING ? S.slice(position, position + 2) : (first -
|
|
15
|
+
: CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
|
|
16
16
|
};
|
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
|
};
|
|
@@ -119,7 +119,7 @@ if (require('../internals/descriptors')) {
|
|
|
119
119
|
|
|
120
120
|
var setter = function (that, index, value) {
|
|
121
121
|
var data = getInternalState(that);
|
|
122
|
-
if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value >
|
|
122
|
+
if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;
|
|
123
123
|
data.view[SETTER](index * BYTES + data.byteOffset, value, true);
|
|
124
124
|
};
|
|
125
125
|
|
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
|
}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
var anObject = require('../internals/an-object');
|
|
3
3
|
var fails = require('../internals/fails');
|
|
4
4
|
var flags = require('../internals/regexp-flags');
|
|
5
|
-
var DESCRIPTORS = require('../internals/descriptors');
|
|
6
5
|
var TO_STRING = 'toString';
|
|
7
6
|
var nativeToString = /./[TO_STRING];
|
|
7
|
+
var RegExpPrototype = RegExp.prototype;
|
|
8
8
|
|
|
9
9
|
var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });
|
|
10
10
|
// FF44- RegExp#toString has a wrong name
|
|
@@ -15,7 +15,9 @@ var INCORRECT_NAME = nativeToString.name != TO_STRING;
|
|
|
15
15
|
if (NOT_GENERIC || INCORRECT_NAME) {
|
|
16
16
|
require('../internals/redefine')(RegExp.prototype, TO_STRING, function toString() {
|
|
17
17
|
var R = anObject(this);
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
var p = String(R.source);
|
|
19
|
+
var rf = R.flags;
|
|
20
|
+
var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);
|
|
21
|
+
return '/' + p + '/' + f;
|
|
20
22
|
}, { unsafe: true });
|
|
21
23
|
}
|
|
@@ -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
|
|
@@ -10,8 +10,8 @@ var regExpExec = require('../internals/regexp-exec-abstract');
|
|
|
10
10
|
var max = Math.max;
|
|
11
11
|
var min = Math.min;
|
|
12
12
|
var floor = Math.floor;
|
|
13
|
-
var SUBSTITUTION_SYMBOLS = /\$([
|
|
14
|
-
var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([
|
|
13
|
+
var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d\d?|<[^>]*>)/g;
|
|
14
|
+
var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d\d?)/g;
|
|
15
15
|
|
|
16
16
|
var maybeToString = function (it) {
|
|
17
17
|
return it === undefined ? it : String(it);
|
|
@@ -11,7 +11,7 @@ var regexpExec = require('../internals/regexp-exec');
|
|
|
11
11
|
var fails = require('../internals/fails');
|
|
12
12
|
var arrayPush = [].push;
|
|
13
13
|
var min = Math.min;
|
|
14
|
-
var MAX_UINT32 =
|
|
14
|
+
var MAX_UINT32 = 0xFFFFFFFF;
|
|
15
15
|
|
|
16
16
|
// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError
|
|
17
17
|
var SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });
|
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
|