index.js 583 B

123456789101112131415161718192021
  1. 'use strict';
  2. var GetIntrinsic = require('get-intrinsic');
  3. var safePushApply = require('safe-push-apply');
  4. var $ownKeys = GetIntrinsic('%Reflect.ownKeys%', true);
  5. var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%', true);
  6. var $gOPS = GetIntrinsic('%Object.getOwnPropertySymbols%', true);
  7. var keys = require('object-keys');
  8. /** @type {import('.')} */
  9. module.exports = $ownKeys || function ownKeys(source) {
  10. /** @type {(keyof typeof source)[]} */
  11. var sourceKeys = ($gOPN || keys)(source);
  12. if ($gOPS) {
  13. safePushApply(sourceKeys, $gOPS(source));
  14. }
  15. return sourceKeys;
  16. };