UNPKG

watermark-js-plus

Version:
90 lines (81 loc) 2.87 kB
import { __require as requireWeakMapBasicDetection } from './weak-map-basic-detection.js'; import { __require as requireGlobalThis } from './global-this.js'; import { __require as requireIsObject } from './is-object.js'; import { __require as requireCreateNonEnumerableProperty } from './create-non-enumerable-property.js'; import { __require as requireHasOwnProperty } from './has-own-property.js'; import { __require as requireSharedStore } from './shared-store.js'; import { __require as requireSharedKey } from './shared-key.js'; import { __require as requireHiddenKeys } from './hidden-keys.js'; var internalState; var hasRequiredInternalState; function requireInternalState () { if (hasRequiredInternalState) return internalState; hasRequiredInternalState = 1; var NATIVE_WEAK_MAP = requireWeakMapBasicDetection(); var globalThis = requireGlobalThis(); var isObject = requireIsObject(); var createNonEnumerableProperty = requireCreateNonEnumerableProperty(); var hasOwn = requireHasOwnProperty(); var shared = requireSharedStore(); var sharedKey = requireSharedKey(); var hiddenKeys = requireHiddenKeys(); var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; var TypeError = globalThis.TypeError; var WeakMap = globalThis.WeakMap; var set, get, has; var enforce = function (it) { return has(it) ? get(it) : set(it, {}); }; var getterFor = function (TYPE) { return function (it) { var state; if (!isObject(it) || (state = get(it)).type !== TYPE) { throw new TypeError('Incompatible receiver, ' + TYPE + ' required'); } return state; }; }; if (NATIVE_WEAK_MAP || shared.state) { var store = shared.state || (shared.state = new WeakMap()); /* eslint-disable no-self-assign -- prototype methods protection */ store.get = store.get; store.has = store.has; store.set = store.set; /* eslint-enable no-self-assign -- prototype methods protection */ set = function (it, metadata) { if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); metadata.facade = it; store.set(it, metadata); return metadata; }; get = function (it) { return store.get(it) || {}; }; has = function (it) { return store.has(it); }; } else { var STATE = sharedKey('state'); hiddenKeys[STATE] = true; set = function (it, metadata) { if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); metadata.facade = it; createNonEnumerableProperty(it, STATE, metadata); return metadata; }; get = function (it) { return hasOwn(it, STATE) ? it[STATE] : {}; }; has = function (it) { return hasOwn(it, STATE); }; } internalState = { set: set, get: get, has: has, enforce: enforce, getterFor: getterFor }; return internalState; } export { requireInternalState as __require };