import { __require as requireType } from "../../es-errors/type.js";
import { __require as requireIsObject } from "../../es-object-atoms/isObject.js";
import { __require as requireIsPropertyKey } from "../helpers/isPropertyKey.js";
import { __require as requireOrdinaryDefineOwnProperty } from "./OrdinaryDefineOwnProperty.js";
var CreateDataProperty;
var hasRequiredCreateDataProperty;
function requireCreateDataProperty() {
  if (hasRequiredCreateDataProperty) return CreateDataProperty;
  hasRequiredCreateDataProperty = 1;
  var $TypeError = requireType();
  var isObject = requireIsObject();
  var isPropertyKey = requireIsPropertyKey();
  var OrdinaryDefineOwnProperty = requireOrdinaryDefineOwnProperty();
  CreateDataProperty = function CreateDataProperty2(O, P, V) {
    if (!isObject(O)) {
      throw new $TypeError("Assertion failed: Type(O) is not Object");
    }
    if (!isPropertyKey(P)) {
      throw new $TypeError("Assertion failed: P is not a Property Key");
    }
    var newDesc = {
      "[[Configurable]]": true,
      "[[Enumerable]]": true,
      "[[Value]]": V,
      "[[Writable]]": true
    };
    return OrdinaryDefineOwnProperty(O, P, newDesc);
  };
  return CreateDataProperty;
}
export {
  requireCreateDataProperty as __require
};
