| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 | import _typeof from "./typeof.js";import _bindInstanceProperty from "@babel/runtime-corejs3/core-js/instance/bind";import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js/object/get-own-property-descriptor";import _Object$defineProperty from "@babel/runtime-corejs3/core-js/object/define-property";import _Map from "@babel/runtime-corejs3/core-js/map";import _Array$isArray from "@babel/runtime-corejs3/core-js/array/is-array";import checkInRHS from "./checkInRHS.js";function createAddInitializerMethod(initializers, decoratorFinishedRef) {  return function (initializer) {    assertNotFinished(decoratorFinishedRef, "addInitializer"), assertCallable(initializer, "An initializer"), initializers.push(initializer);  };}function assertInstanceIfPrivate(has, target) {  if (!has(target)) throw new TypeError("Attempted to access private element on non-instance");}function memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, value, hasPrivateBrand) {  var kindStr;  switch (kind) {    case 1:      kindStr = "accessor";      break;    case 2:      kindStr = "method";      break;    case 3:      kindStr = "getter";      break;    case 4:      kindStr = "setter";      break;    default:      kindStr = "field";  }  var get,    set,    ctx = {      kind: kindStr,      name: isPrivate ? "#" + name : name,      "static": isStatic,      "private": isPrivate    },    decoratorFinishedRef = {      v: !1    };  if (0 !== kind && (ctx.addInitializer = createAddInitializerMethod(initializers, decoratorFinishedRef)), isPrivate || 0 !== kind && 2 !== kind) {    if (2 === kind) get = function get(target) {      return assertInstanceIfPrivate(hasPrivateBrand, target), desc.value;    };else {      var t = 0 === kind || 1 === kind;      (t || 3 === kind) && (get = isPrivate ? function (target) {        return assertInstanceIfPrivate(hasPrivateBrand, target), desc.get.call(target);      } : function (target) {        return desc.get.call(target);      }), (t || 4 === kind) && (set = isPrivate ? function (target, value) {        assertInstanceIfPrivate(hasPrivateBrand, target), desc.set.call(target, value);      } : function (target, value) {        desc.set.call(target, value);      });    }  } else get = function get(target) {    return target[name];  }, 0 === kind && (set = function set(target, v) {    target[name] = v;  });  var has = isPrivate ? _bindInstanceProperty(hasPrivateBrand).call(hasPrivateBrand) : function (target) {    return name in target;  };  ctx.access = get && set ? {    get: get,    set: set,    has: has  } : get ? {    get: get,    has: has  } : {    set: set,    has: has  };  try {    return dec(value, ctx);  } finally {    decoratorFinishedRef.v = !0;  }}function assertNotFinished(decoratorFinishedRef, fnName) {  if (decoratorFinishedRef.v) throw new Error("attempted to call " + fnName + " after decoration was finished");}function assertCallable(fn, hint) {  if ("function" != typeof fn) throw new TypeError(hint + " must be a function");}function assertValidReturnValue(kind, value) {  var type = _typeof(value);  if (1 === kind) {    if ("object" !== type || null === value) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");    void 0 !== value.get && assertCallable(value.get, "accessor.get"), void 0 !== value.set && assertCallable(value.set, "accessor.set"), void 0 !== value.init && assertCallable(value.init, "accessor.init");  } else if ("function" !== type) {    var hint;    throw hint = 0 === kind ? "field" : 10 === kind ? "class" : "method", new TypeError(hint + " decorators must return a function or void 0");  }}function curryThis1(fn) {  return function () {    return fn(this);  };}function curryThis2(fn) {  return function (value) {    fn(this, value);  };}function applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, hasPrivateBrand) {  var desc,    init,    value,    newValue,    get,    set,    decs = decInfo[0];  if (isPrivate ? desc = 0 === kind || 1 === kind ? {    get: curryThis1(decInfo[3]),    set: curryThis2(decInfo[4])  } : 3 === kind ? {    get: decInfo[3]  } : 4 === kind ? {    set: decInfo[3]  } : {    value: decInfo[3]  } : 0 !== kind && (desc = _Object$getOwnPropertyDescriptor(base, name)), 1 === kind ? value = {    get: desc.get,    set: desc.set  } : 2 === kind ? value = desc.value : 3 === kind ? value = desc.get : 4 === kind && (value = desc.set), "function" == typeof decs) void 0 !== (newValue = memberDec(decs, name, desc, initializers, kind, isStatic, isPrivate, value, hasPrivateBrand)) && (assertValidReturnValue(kind, newValue), 0 === kind ? init = newValue : 1 === kind ? (init = newValue.init, get = newValue.get || value.get, set = newValue.set || value.set, value = {    get: get,    set: set  }) : value = newValue);else for (var i = decs.length - 1; i >= 0; i--) {    var newInit;    if (void 0 !== (newValue = memberDec(decs[i], name, desc, initializers, kind, isStatic, isPrivate, value, hasPrivateBrand))) assertValidReturnValue(kind, newValue), 0 === kind ? newInit = newValue : 1 === kind ? (newInit = newValue.init, get = newValue.get || value.get, set = newValue.set || value.set, value = {      get: get,      set: set    }) : value = newValue, void 0 !== newInit && (void 0 === init ? init = newInit : "function" == typeof init ? init = [init, newInit] : init.push(newInit));  }  if (0 === kind || 1 === kind) {    if (void 0 === init) init = function init(instance, _init) {      return _init;    };else if ("function" != typeof init) {      var ownInitializers = init;      init = function init(instance, _init2) {        for (var value = _init2, i = 0; i < ownInitializers.length; i++) value = ownInitializers[i].call(instance, value);        return value;      };    } else {      var originalInitializer = init;      init = function init(instance, _init3) {        return originalInitializer.call(instance, _init3);      };    }    ret.push(init);  }  0 !== kind && (1 === kind ? (desc.get = value.get, desc.set = value.set) : 2 === kind ? desc.value = value : 3 === kind ? desc.get = value : 4 === kind && (desc.set = value), isPrivate ? 1 === kind ? (ret.push(function (instance, args) {    return value.get.call(instance, args);  }), ret.push(function (instance, args) {    return value.set.call(instance, args);  })) : 2 === kind ? ret.push(value) : ret.push(function (instance, args) {    return value.call(instance, args);  }) : _Object$defineProperty(base, name, desc));}function applyMemberDecs(Class, decInfos, instanceBrand) {  for (var protoInitializers, staticInitializers, staticBrand, ret = [], existingProtoNonFields = new _Map(), existingStaticNonFields = new _Map(), i = 0; i < decInfos.length; i++) {    var decInfo = decInfos[i];    if (_Array$isArray(decInfo)) {      var base,        initializers,        kind = decInfo[1],        name = decInfo[2],        isPrivate = decInfo.length > 3,        isStatic = kind >= 5,        hasPrivateBrand = instanceBrand;      if (isStatic ? (base = Class, 0 !== (kind -= 5) && (initializers = staticInitializers = staticInitializers || []), isPrivate && !staticBrand && (staticBrand = function staticBrand(_) {        return checkInRHS(_) === Class;      }), hasPrivateBrand = staticBrand) : (base = Class.prototype, 0 !== kind && (initializers = protoInitializers = protoInitializers || [])), 0 !== kind && !isPrivate) {        var existingNonFields = isStatic ? existingStaticNonFields : existingProtoNonFields,          existingKind = existingNonFields.get(name) || 0;        if (!0 === existingKind || 3 === existingKind && 4 !== kind || 4 === existingKind && 3 !== kind) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + name);        !existingKind && kind > 2 ? existingNonFields.set(name, kind) : existingNonFields.set(name, !0);      }      applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, hasPrivateBrand);    }  }  return pushInitializers(ret, protoInitializers), pushInitializers(ret, staticInitializers), ret;}function pushInitializers(ret, initializers) {  initializers && ret.push(function (instance) {    for (var i = 0; i < initializers.length; i++) initializers[i].call(instance);    return instance;  });}function applyClassDecs(targetClass, classDecs) {  if (classDecs.length > 0) {    for (var initializers = [], newClass = targetClass, name = targetClass.name, i = classDecs.length - 1; i >= 0; i--) {      var decoratorFinishedRef = {        v: !1      };      try {        var nextNewClass = classDecs[i](newClass, {          kind: "class",          name: name,          addInitializer: createAddInitializerMethod(initializers, decoratorFinishedRef)        });      } finally {        decoratorFinishedRef.v = !0;      }      void 0 !== nextNewClass && (assertValidReturnValue(10, nextNewClass), newClass = nextNewClass);    }    return [newClass, function () {      for (var i = 0; i < initializers.length; i++) initializers[i].call(newClass);    }];  }}export default function applyDecs2301(targetClass, memberDecs, classDecs, instanceBrand) {  return {    e: applyMemberDecs(targetClass, memberDecs, instanceBrand),    get c() {      return applyClassDecs(targetClass, classDecs);    }  };}
 |