"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const isArguments = require("./isArguments.cjs");
const implementation = require("./implementation.cjs");
var slice = Array.prototype.slice;
var isArgs = isArguments.isArguments;
var origKeys = Object.keys;
var keysShim = origKeys ? function keys(o) {
  return origKeys(o);
} : implementation.__require();
var originalKeys = Object.keys;
keysShim.shim = function shimObjectKeys() {
  if (Object.keys) {
    var keysWorksWithArguments = function() {
      var args = Object.keys(arguments);
      return args && args.length === arguments.length;
    }(1, 2);
    if (!keysWorksWithArguments) {
      Object.keys = function keys2(object) {
        if (isArgs(object)) {
          return originalKeys(slice.call(object));
        }
        return originalKeys(object);
      };
    }
  } else {
    Object.keys = keysShim;
  }
  return Object.keys || keysShim;
};
var objectKeys = keysShim;
exports.objectKeys = objectKeys;
//# sourceMappingURL=index.cjs.map
