Skip to content

Commit ee2b322

Browse files
committed
Object.keys polyfill
1 parent 3c77659 commit ee2b322

File tree

19 files changed

+49
-23
lines changed

19 files changed

+49
-23
lines changed

packages/babel-plugin-polyfill-es-shims/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ This plugin supports the following `es-shims` polyfills.
4343
| `Array.prototype.reduce` | [`array.prototype.reduce`](https://github.com/es-shims/Array.prototype.reduce) |
4444
| `Array.prototype.reduceRight` | [`array.prototype.reduceright`](https://github.com/es-shims/Array.prototype.reduceRight) |
4545
| `Array.prototype.some` | [`array.prototype.some`](https://github.com/es-shims/Array.prototype.some) |
46+
| `Object.keys` | [`object.keys`](https://github.com/ljharb/object-keys) | [@ljharb](https://github.com/ljharb)
4647
| `String.prototype.split` | [`string.prototype.split`](https://github.com/es-shims/String.prototype.split) |
4748

4849
### ES2015 (ES6)

packages/babel-plugin-polyfill-es-shims/data/polyfills.json

+15
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,20 @@
290290
"samsung": "11",
291291
"electron": "5"
292292
},
293+
"Object.keys": {
294+
"chrome": "5",
295+
"opera": "12",
296+
"edge": "12",
297+
"firefox": "4",
298+
"safari": "4",
299+
"node": "0.10",
300+
"ie": "9",
301+
"android": "4",
302+
"ios": "6",
303+
"phantom": "2",
304+
"samsung": "1",
305+
"electron": "0.20"
306+
},
293307
"Object.getOwnPropertyDescriptors": {
294308
"chrome": "54",
295309
"opera": "41",
@@ -401,6 +415,7 @@
401415
"safari": "13.1",
402416
"node": "14",
403417
"ios": "13.4",
418+
"samsung": "13",
404419
"electron": "8"
405420
},
406421
"String.prototype.padEnd": {

packages/babel-plugin-polyfill-es-shims/missing-polyfills.md

-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
- `Array.prototype.copyWithin()`
2121
- `Array.prototype.fill()`
2222
- `Array.prototype.indexOf()`
23-
- `Object.keys()`
2423
- `Object.setPrototypeOf()`
2524
- `Math.acosh()`
2625
- `Math.asinh()`

packages/babel-plugin-polyfill-es-shims/src/mappings.js

+1
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ defineStatic("Object", "assign", "4.1.0");
7272
defineStatic("Object", "entries", "1.1.1");
7373
defineStatic("Object", "fromEntries", "2.0.2");
7474
defineStatic("Object", "is", "1.1.2", "object-is");
75+
defineStatic("Object", "keys", "1.1.1", "object-keys");
7576
defineStatic("Object", "getOwnPropertyDescriptors", "2.1.0");
7677
defineStatic("Object", "values", "1.1.1");
7778

packages/babel-plugin-polyfill-es-shims/test/fixtures/usage-global/conflict-static-instance-1/output.mjs

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import "object.entries/auto";
2+
import "object-keys/auto";
23
import "object.values/auto";
34
Object.entries();
45
Object.keys();
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
Some polyfills have been added but are not present in your dependencies.
22
Please run one of the following commands:
3-
npm install --save object.entries@^1.1.1 object.values@^1.1.1
4-
yarn add object.entries@^1.1.1 object.values@^1.1.1
3+
npm install --save object-keys@^1.1.1 object.entries@^1.1.1 object.values@^1.1.1
4+
yarn add object-keys@^1.1.1 object.entries@^1.1.1 object.values@^1.1.1

packages/babel-plugin-polyfill-es-shims/test/fixtures/usage-global/static-methods/output.mjs

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import "object-keys/auto";
12
import "object.assign/auto";
23
Object.keys(foo);
34
const getOwnPropertySymbols = Object.getOwnPropertySymbols;
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
Some polyfills have been added but are not present in your dependencies.
22
Please run one of the following commands:
3-
npm install --save object.assign@^4.1.0
4-
yarn add object.assign@^4.1.0
3+
npm install --save object-keys@^1.1.1 object.assign@^4.1.0
4+
yarn add object-keys@^1.1.1 object.assign@^4.1.0

packages/babel-plugin-polyfill-es-shims/test/fixtures/usage-pure/conflict-static-instance/output.mjs

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ var _obj, _obj2, _obj3, _str;
22

33
import _ObjectEntries from "object.entries";
44
import _ArrayPrototypeEntries from "array.prototype.entries";
5+
import _ObjectKeys from "object-keys";
56
import _ArrayPrototypeKeys from "array.prototype.keys";
67
import _ObjectValues from "object.values";
78
import _ArrayPrototypeValues from "array.prototype.values";
@@ -13,7 +14,8 @@ _ObjectEntries();
1314

1415
_ArrayPrototypeEntries([]);
1516

16-
Object.keys();
17+
_ObjectKeys();
18+
1719
(_obj2 = obj, Array.isArray(_obj2) ? _ArrayPrototypeKeys : Function.call.bind(_obj2.keys))(_obj2);
1820

1921
_ArrayPrototypeKeys([]);
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
Some polyfills have been added but are not present in your dependencies.
22
Please run one of the following commands:
3-
npm install --save array.prototype.entries@^1.0.0 array.prototype.keys@^1.0.0 array.prototype.values@^1.0.0 object.entries@^1.1.1 object.values@^1.1.1 string.prototype.split@^1.0.1
4-
yarn add array.prototype.entries@^1.0.0 array.prototype.keys@^1.0.0 array.prototype.values@^1.0.0 object.entries@^1.1.1 object.values@^1.1.1 string.prototype.split@^1.0.1
3+
npm install --save array.prototype.entries@^1.0.0 array.prototype.keys@^1.0.0 array.prototype.values@^1.0.0 object-keys@^1.1.1 object.entries@^1.1.1 object.values@^1.1.1 string.prototype.split@^1.0.1
4+
yarn add array.prototype.entries@^1.0.0 array.prototype.keys@^1.0.0 array.prototype.values@^1.0.0 object-keys@^1.1.1 object.entries@^1.1.1 object.values@^1.1.1 string.prototype.split@^1.0.1

packages/babel-plugin-polyfill-es-shims/test/fixtures/usage-pure/modules-loose/output.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
"use strict";
22

3+
var _ObjectKeys = require("object-keys");
4+
35
exports.__esModule = true;
46
var _exportNames = {
57
exp: true
@@ -16,7 +18,7 @@ var _fuz = require("fuz");
1618

1719
var _mod = require("mod");
1820

19-
Object.keys(_mod).forEach(function (key) {
21+
_ObjectKeys(_mod).forEach(function (key) {
2022
if (key === "default" || key === "__esModule") return;
2123
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
2224
exports[key] = _mod[key];
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
Some polyfills have been added but are not present in your dependencies.
22
Please run one of the following commands:
3-
npm install --save array-includes@^3.1.1 string.prototype.includes@^2.0.0
4-
yarn add array-includes@^3.1.1 string.prototype.includes@^2.0.0
3+
npm install --save array-includes@^3.1.1 object-keys@^1.1.1 string.prototype.includes@^2.0.0
4+
yarn add array-includes@^3.1.1 object-keys@^1.1.1 string.prototype.includes@^2.0.0

packages/babel-plugin-polyfill-es-shims/test/fixtures/usage-pure/modules/output.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
"use strict";
22

3+
var _ObjectKeys = require("object-keys");
4+
35
Object.defineProperty(exports, "__esModule", {
46
value: true
57
});
@@ -18,7 +20,7 @@ var _fuz = require("fuz");
1820

1921
var _mod = require("mod");
2022

21-
Object.keys(_mod).forEach(function (key) {
23+
_ObjectKeys(_mod).forEach(function (key) {
2224
if (key === "default" || key === "__esModule") return;
2325
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
2426
Object.defineProperty(exports, key, {
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
Some polyfills have been added but are not present in your dependencies.
22
Please run one of the following commands:
3-
npm install --save array-includes@^3.1.1 string.prototype.includes@^2.0.0
4-
yarn add array-includes@^3.1.1 string.prototype.includes@^2.0.0
3+
npm install --save array-includes@^3.1.1 object-keys@^1.1.1 string.prototype.includes@^2.0.0
4+
yarn add array-includes@^3.1.1 object-keys@^1.1.1 string.prototype.includes@^2.0.0

packages/babel-plugin-polyfill-es-shims/test/fixtures/usage-pure/static-methods/output.mjs

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import _ObjectEntries from "object.entries";
66
import _ObjectFromEntries from "object.fromentries";
77
import _ObjectGetOwnPropertyDescriptors from "object.getownpropertydescriptors";
88
import _ObjectIs from "object-is";
9+
import _ObjectKeys from "object-keys";
910
import _ObjectValues from "object.values";
1011
import _ReflectOwnKeys from "reflect.ownkeys";
1112
import _StringFromCodePoint from "string.fromcodepoint";
@@ -70,7 +71,7 @@ Object.isExtensible;
7071
Object.isFrozen;
7172
Object.isSealed;
7273
_ObjectIs;
73-
Object.keys;
74+
_ObjectKeys;
7475
Object.preventExtensions;
7576
Object.seal;
7677
Object.setPrototypeOf;
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
Some polyfills have been added but are not present in your dependencies.
22
Please run one of the following commands:
3-
npm install --save array.from@^1.1.0 array.of@^1.0.0 is-nan@^1.2.1 object-is@^1.1.2 object.assign@^4.1.0 object.entries@^1.1.1 object.fromentries@^2.0.2 object.getownpropertydescriptors@^2.1.0 object.values@^1.1.1 reflect.ownkeys@^1.0.1 string.fromcodepoint@^1.0.0
4-
yarn add array.from@^1.1.0 array.of@^1.0.0 is-nan@^1.2.1 object-is@^1.1.2 object.assign@^4.1.0 object.entries@^1.1.1 object.fromentries@^2.0.2 object.getownpropertydescriptors@^2.1.0 object.values@^1.1.1 reflect.ownkeys@^1.0.1 string.fromcodepoint@^1.0.0
3+
npm install --save array.from@^1.1.0 array.of@^1.0.0 is-nan@^1.2.1 object-is@^1.1.2 object-keys@^1.1.1 object.assign@^4.1.0 object.entries@^1.1.1 object.fromentries@^2.0.2 object.getownpropertydescriptors@^2.1.0 object.values@^1.1.1 reflect.ownkeys@^1.0.1 string.fromcodepoint@^1.0.0
4+
yarn add array.from@^1.1.0 array.of@^1.0.0 is-nan@^1.2.1 object-is@^1.1.2 object-keys@^1.1.1 object.assign@^4.1.0 object.entries@^1.1.1 object.fromentries@^2.0.2 object.getownpropertydescriptors@^2.1.0 object.values@^1.1.1 reflect.ownkeys@^1.0.1 string.fromcodepoint@^1.0.0

scripts/build-es-shims-data/es-shims-features.js

+1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ module.exports = {
3636
"Object.is": "Object static methods / Object.is",
3737
"Object.entries": "Object static methods / Object.entries",
3838
"Object.fromEntries": "Object.fromEntries",
39+
"Object.keys": "Object static methods / Object.keys",
3940
"Object.getOwnPropertyDescriptors":
4041
"Object static methods / Object.getOwnPropertyDescriptors",
4142
"Object.values": "Object static methods / Object.values",

scripts/download-compat-table.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22
set -e
33

4-
COMPAT_TABLE_COMMIT=40b385cb22a0d9194e4261c94210618bba9132f9
4+
COMPAT_TABLE_COMMIT=abf3deb213266336df6e49d936e5cbf2e4e4f84a
55
GIT_HEAD=build/compat-table/.git/HEAD
66

77
if [ -d "build/compat-table" ]; then

yarn.lock

+5-5
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ __metadata:
233233
languageName: node
234234
linkType: hard
235235

236-
"@babel/helper-define-polyfill-provider@^0.0.3, @babel/helper-define-polyfill-provider@workspace:packages/babel-helper-define-polyfill-provider":
236+
"@babel/helper-define-polyfill-provider@^0.0.4, @babel/helper-define-polyfill-provider@workspace:packages/babel-helper-define-polyfill-provider":
237237
version: 0.0.0-use.local
238238
resolution: "@babel/helper-define-polyfill-provider@workspace:packages/babel-helper-define-polyfill-provider"
239239
dependencies:
@@ -3871,7 +3871,7 @@ __metadata:
38713871
dependencies:
38723872
"@babel/compat-data": ^7.11.0
38733873
"@babel/core": ^7.11.5
3874-
"@babel/helper-define-polyfill-provider": ^0.0.3
3874+
"@babel/helper-define-polyfill-provider": ^0.0.4
38753875
"@babel/helper-plugin-test-runner": ^7.10.4
38763876
"@babel/plugin-transform-for-of": ^7.10.4
38773877
"@babel/plugin-transform-modules-commonjs": ^7.10.4
@@ -3886,7 +3886,7 @@ __metadata:
38863886
resolution: "babel-plugin-polyfill-corejs3@workspace:packages/babel-plugin-polyfill-corejs3"
38873887
dependencies:
38883888
"@babel/core": ^7.11.5
3889-
"@babel/helper-define-polyfill-provider": ^0.0.3
3889+
"@babel/helper-define-polyfill-provider": ^0.0.4
38903890
"@babel/helper-plugin-test-runner": ^7.10.4
38913891
"@babel/plugin-syntax-dynamic-import": ^7.8.3
38923892
"@babel/plugin-transform-for-of": ^7.10.4
@@ -3902,7 +3902,7 @@ __metadata:
39023902
resolution: "babel-plugin-polyfill-es-shims@workspace:packages/babel-plugin-polyfill-es-shims"
39033903
dependencies:
39043904
"@babel/core": ^7.11.5
3905-
"@babel/helper-define-polyfill-provider": ^0.0.3
3905+
"@babel/helper-define-polyfill-provider": ^0.0.4
39063906
"@babel/helper-plugin-test-runner": ^7.10.4
39073907
peerDependencies:
39083908
"@babel/core": ^7.0.0-0
@@ -3914,7 +3914,7 @@ __metadata:
39143914
resolution: "babel-plugin-polyfill-regenerator@workspace:packages/babel-plugin-polyfill-regenerator"
39153915
dependencies:
39163916
"@babel/core": ^7.11.5
3917-
"@babel/helper-define-polyfill-provider": ^0.0.3
3917+
"@babel/helper-define-polyfill-provider": ^0.0.4
39183918
"@babel/helper-plugin-test-runner": ^7.10.4
39193919
peerDependencies:
39203920
"@babel/core": ^7.0.0-0

0 commit comments

Comments
 (0)