UNPKG

watermark-js-plus

Version:
60 lines (54 loc) 2.59 kB
import { __exports as objectDefineProperty } from '../../../_virtual/object-define-property.js'; import { __require as requireDescriptors } from './descriptors.js'; import { __require as requireIe8DomDefine } from './ie8-dom-define.js'; import { __require as requireV8PrototypeDefineBug } from './v8-prototype-define-bug.js'; import { __require as requireAnObject } from './an-object.js'; import { __require as requireToPropertyKey } from './to-property-key.js'; var hasRequiredObjectDefineProperty; function requireObjectDefineProperty () { if (hasRequiredObjectDefineProperty) return objectDefineProperty; hasRequiredObjectDefineProperty = 1; var DESCRIPTORS = requireDescriptors(); var IE8_DOM_DEFINE = requireIe8DomDefine(); var V8_PROTOTYPE_DEFINE_BUG = requireV8PrototypeDefineBug(); var anObject = requireAnObject(); var toPropertyKey = requireToPropertyKey(); var $TypeError = TypeError; // eslint-disable-next-line es/no-object-defineproperty -- safe var $defineProperty = Object.defineProperty; // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; var ENUMERABLE = 'enumerable'; var CONFIGURABLE = 'configurable'; var WRITABLE = 'writable'; // `Object.defineProperty` method // https://tc39.es/ecma262/#sec-object.defineproperty objectDefineProperty.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) { anObject(O); P = toPropertyKey(P); anObject(Attributes); if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { var current = $getOwnPropertyDescriptor(O, P); if (current && current[WRITABLE]) { O[P] = Attributes.value; Attributes = { configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE], enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], writable: false }; } } return $defineProperty(O, P, Attributes); } : $defineProperty : function defineProperty(O, P, Attributes) { anObject(O); P = toPropertyKey(P); anObject(Attributes); if (IE8_DOM_DEFINE) try { return $defineProperty(O, P, Attributes); } catch (error) { /* empty */ } if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported'); if ('value' in Attributes) O[P] = Attributes.value; return O; }; return objectDefineProperty; } export { requireObjectDefineProperty as __require };