core-js-pure 3.4.8 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/features/object/index.js +3 -0
- package/features/object/iterate-entries.js +4 -0
- package/features/object/iterate-keys.js +4 -0
- package/features/object/iterate-values.js +4 -0
- package/internals/object-iterator.js +37 -0
- package/internals/shared.js +1 -1
- package/modules/esnext.object.iterate-entries.js +11 -0
- package/modules/esnext.object.iterate-keys.js +11 -0
- package/modules/esnext.object.iterate-values.js +11 -0
- package/package.json +1 -1
- package/proposals/object-iteration.js +3 -0
- package/stage/1.js +1 -0
package/features/object/index.js
CHANGED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var InternalStateModule = require('../internals/internal-state');
|
|
3
|
+
var createIteratorConstructor = require('../internals/create-iterator-constructor');
|
|
4
|
+
var has = require('../internals/has');
|
|
5
|
+
var objectKeys = require('../internals/object-keys');
|
|
6
|
+
var toObject = require('../internals/to-object');
|
|
7
|
+
|
|
8
|
+
var OBJECT_ITERATOR = 'Object Iterator';
|
|
9
|
+
var setInternalState = InternalStateModule.set;
|
|
10
|
+
var getInternalState = InternalStateModule.getterFor(OBJECT_ITERATOR);
|
|
11
|
+
|
|
12
|
+
module.exports = createIteratorConstructor(function ObjectIterator(source, mode) {
|
|
13
|
+
var object = toObject(source);
|
|
14
|
+
setInternalState(this, {
|
|
15
|
+
type: OBJECT_ITERATOR,
|
|
16
|
+
mode: mode,
|
|
17
|
+
object: object,
|
|
18
|
+
keys: objectKeys(object),
|
|
19
|
+
index: 0
|
|
20
|
+
});
|
|
21
|
+
}, 'Object', function next() {
|
|
22
|
+
var state = getInternalState(this);
|
|
23
|
+
var keys = state.keys;
|
|
24
|
+
while (true) {
|
|
25
|
+
if (keys === null || state.index >= keys.length) {
|
|
26
|
+
state.object = state.keys = null;
|
|
27
|
+
return { value: undefined, done: true };
|
|
28
|
+
}
|
|
29
|
+
var key = keys[state.index++];
|
|
30
|
+
var object = state.object;
|
|
31
|
+
if (!has(object, key)) continue;
|
|
32
|
+
switch (state.mode) {
|
|
33
|
+
case 'keys': return { value: key, done: false };
|
|
34
|
+
case 'values': return { value: object[key], done: false };
|
|
35
|
+
} /* entries */ return { value: [key, object[key]], done: false };
|
|
36
|
+
}
|
|
37
|
+
});
|
package/internals/shared.js
CHANGED
|
@@ -4,7 +4,7 @@ var store = require('../internals/shared-store');
|
|
|
4
4
|
(module.exports = function (key, value) {
|
|
5
5
|
return store[key] || (store[key] = value !== undefined ? value : {});
|
|
6
6
|
})('versions', []).push({
|
|
7
|
-
version: '3.
|
|
7
|
+
version: '3.5.0',
|
|
8
8
|
mode: IS_PURE ? 'pure' : 'global',
|
|
9
9
|
copyright: '© 2019 Denis Pushkarev (zloirock.ru)'
|
|
10
10
|
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var ObjectIterator = require('../internals/object-iterator');
|
|
4
|
+
|
|
5
|
+
// `Object.iterateEntries` method
|
|
6
|
+
// https://github.com/tc39/proposal-object-iteration
|
|
7
|
+
$({ target: 'Object', stat: true }, {
|
|
8
|
+
iterateEntries: function iterateEntries(object) {
|
|
9
|
+
return new ObjectIterator(object, 'entries');
|
|
10
|
+
}
|
|
11
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var ObjectIterator = require('../internals/object-iterator');
|
|
4
|
+
|
|
5
|
+
// `Object.iterateKeys` method
|
|
6
|
+
// https://github.com/tc39/proposal-object-iteration
|
|
7
|
+
$({ target: 'Object', stat: true }, {
|
|
8
|
+
iterateKeys: function iterateKeys(object) {
|
|
9
|
+
return new ObjectIterator(object, 'keys');
|
|
10
|
+
}
|
|
11
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var ObjectIterator = require('../internals/object-iterator');
|
|
4
|
+
|
|
5
|
+
// `Object.iterateValues` method
|
|
6
|
+
// https://github.com/tc39/proposal-object-iteration
|
|
7
|
+
$({ target: 'Object', stat: true }, {
|
|
8
|
+
iterateValues: function iterateValues(object) {
|
|
9
|
+
return new ObjectIterator(object, 'values');
|
|
10
|
+
}
|
|
11
|
+
});
|
package/package.json
CHANGED
package/stage/1.js
CHANGED
|
@@ -5,6 +5,7 @@ require('../proposals/keys-composition');
|
|
|
5
5
|
require('../proposals/math-extensions');
|
|
6
6
|
require('../proposals/math-signbit');
|
|
7
7
|
require('../proposals/number-from-string');
|
|
8
|
+
require('../proposals/object-iteration');
|
|
8
9
|
require('../proposals/observable');
|
|
9
10
|
require('../proposals/pattern-matching');
|
|
10
11
|
require('../proposals/promise-try');
|