UNPKG

mutative

Version:

A JavaScript library for efficient immutable updates

3 lines (2 loc) 19.9 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).mutative={})}(this,(function(e){"use strict";function t(){return(t=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function n(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return r(e,void 0);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,void 0):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var a=0;return function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a=Symbol.for("__MUTATIVE_PROXY_DRAFT__"),o=Symbol("__MUTATIVE_RAW_RETURN_SYMBOL__"),i=Symbol.iterator,s={mutable:"mutable",immutable:"immutable"},u={};function l(e){var t;return null!=(t=e.copy)?t:e.original}function f(e){return!!c(e)}function c(e){return"object"!=typeof e?null:null==e?void 0:e[a]}function p(e){var t,r=c(e);return r?null!=(t=r.copy)?t:r.original:e}function v(e,t){return!(!e||"object"!=typeof e)&&(Object.getPrototypeOf(e)===Object.prototype||Array.isArray(e)||e instanceof Map||e instanceof Set||!(null==t||!t.mark)&&((r=t.mark(e,s))===s.immutable||"function"==typeof r));var r}function d(e){return Array.isArray(e)?1:e instanceof Map?2:e instanceof Set?3:0}function y(e,t){return 2===d(e)?e.get(t):e[t]}function h(e,t,r){2===d(e)?e.set(t,r):e[t]=r}function g(e,t){var r=c(e);return(r?l(r):e)[t]}function b(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function m(e){if(e)for(;e.finalities.revoke.length>0;)e.finalities.revoke.pop()()}function w(e,t){return t?e:[""].concat(e).map((function(e){var t=""+e;return-1===t.indexOf("/")&&-1===t.indexOf("~")?t:t.replace(/~/g,"~0").replace(/\//g,"~1")})).join("/")}function M(e,t){var r,n,a;if(Array.isArray(e))return Array.prototype.concat.call(e);if(e instanceof Set)return new Set(e.values());if(e instanceof Map)return new Map(e);if(null!=t&&t.mark&&void 0!==(r=t.mark(e,s))&&r!==s.mutable){if(r===s.immutable)return n=e,a=Object.getOwnPropertyDescriptors(n),Reflect.ownKeys(a).forEach((function(e){var t=a[e];t.writable||(t.writable=!0,t.configurable=!0),(t.get||t.set)&&(a[e]={configurable:!0,writable:!0,enumerable:t.enumerable,value:n[e]})})),Object.create(Object.getPrototypeOf(n),a);if("function"==typeof r)return r();throw new Error("Unsupported mark result: "+r)}if("object"==typeof e&&Object.getPrototypeOf(e)===Object.prototype){var o={};return Object.keys(e).forEach((function(t){o[t]=e[t]})),o}throw new Error("Please check mark() to ensure that it is a stable marker draftable function.")}function k(e){e.copy||(e.copy=M(e.original,e.options))}function O(e){if(!v(e))return p(e);if(Array.isArray(e))return e.map(O);if(e instanceof Map)return new Map(Array.from(e.entries()).map((function(e){return[e[0],O(e[1])]})));if(e instanceof Set)return new Set(Array.from(e).map(O));var t=Object.create(Object.getPrototypeOf(e));for(var r in e)t[r]=O(e[r]);return t}function j(e){return f(e)?O(e):e}function E(e){var t;e.assignedMap=null!=(t=e.assignedMap)?t:new Map,e.operated||(e.operated=!0,e.parent&&E(e.parent))}function A(){throw new Error("Cannot modify frozen object")}function P(e){return e&&"object"==typeof e&&!Object.isFrozen(e)}function S(e,t){return e instanceof Map?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function z(e,t){if(t in e)for(var r=Reflect.getPrototypeOf(e);r;){var n=Reflect.getOwnPropertyDescriptor(r,t);if(n)return n;r=Reflect.getPrototypeOf(r)}}function x(e,t){var r=d(e);if(0===r)Reflect.ownKeys(e).forEach((function(r){t(r,e[r],e)}));else if(1===r)for(var a,o=0,i=n(e);!(a=i()).done;)t(o,a.value,e),o+=1;else e.forEach((function(r,n){return t(n,r,e)}))}function D(e){3===e.type&&e.copy&&(e.copy.clear(),e.setMap.forEach((function(t){e.copy.add(p(t))})))}function R(e,t,r,n){if(e.operated&&e.assignedMap&&e.assignedMap.size>0&&!e.finalized){if(r&&n){var a=function e(t,r){if(void 0===r&&(r=[]),Object.hasOwnProperty.call(t,"key")){var n=c(y(t.parent.copy,t.key));if(null!==n&&(null==n?void 0:n.original)!==t.original)return null;r.push(3===t.parent.type?Array.from(t.parent.setMap.keys()).indexOf(t.key):t.key)}return t.parent?e(t.parent,r):r.reverse()}(e);a&&t(e,a,r,n)}e.finalized=!0}}function _(e,t,r,n){var a=c(r);a&&(a.callbacks||(a.callbacks=[]),a.callbacks.push((function(o,i){var s=3===e.type?e.setMap:e.copy;if(b(y(s,t),r)){var u=a.original;a.copy&&(u=a.copy),D(e),R(e,n,o,i),h(s,t,u)}})),e.options.enableAutoFreeze&&a.finalities!==e.finalities&&(e.options.enableAutoFreeze=!1)),v(r,e.options)&&e.finalities.draft.push((function(){b(y(3===e.type?e.setMap:e.copy,t),r)&&function(e,t){var r=3===e.type?e.setMap:e.copy;e.finalities.revoke.length>1&&e.assignedMap.get(t)&&r&&function e(t,r){if(!f(t)&&v(t)&&!r.has(t)&&!Object.isFrozen(t)){var n=t instanceof Set,a=n?new Map:void 0;if(r.add(t),x(t,(function(o,i){if(f(i)){var s,u=c(i);k(u);var l=null!=(s=u.assignedMap)&&s.size||u.operated?u.copy:u.original;h(n?a:t,o,l)}else e(i,r)})),a){var o=t,i=Array.from(o);o.clear(),i.forEach((function(e){o.add(a.has(e)?a.get(e):e)}))}}}(y(r,t),e.finalities.handledSet)}(e,t)}))}function I(e,t,r,n){var a=e.options.enablePatches.pathAsArray,o=void 0===a||a;switch(e.type){case 0:case 2:return function(e,t,r,n,a){var o=e.original,i=e.copy;e.assignedMap.forEach((function(e,s){var u=y(o,s),l=j(y(i,s)),f=e?S(o,s)?"replace":"add":"remove";if(!b(u,l)||"replace"!==f){var c=w(t.concat(s),a);r.push("remove"===f?{op:f,path:c}:{op:f,path:c,value:l}),n.push("add"===f?{op:"remove",path:c}:"remove"===f?{op:"add",path:c,value:u}:{op:"replace",path:c,value:u})}}))}(e,t,r,n,o);case 1:return function(e,t,r,n,a){var o=e.original,i=e.assignedMap,s=e.options,u=e.copy;if(u.length<o.length){var l=[u,o];o=l[0],u=l[1];var f=[n,r];r=f[0],n=f[1]}for(var c=0;c<o.length;c+=1)if(i.get(c.toString())&&u[c]!==o[c]){var p=w(t.concat([c]),a);r.push({op:"replace",path:p,value:j(u[c])}),n.push({op:"replace",path:p,value:j(o[c])})}for(var v=o.length;v<u.length;v+=1){var d=w(t.concat([v]),a);r.push({op:"add",path:d,value:j(u[v])})}if(o.length<u.length){var y=s.enablePatches.arrayLengthAssignment;if(void 0===y||y){var h=w(t.concat(["length"]),a);n.push({op:"replace",path:h,value:o.length})}else for(var g=u.length;o.length<g;g-=1){var b=w(t.concat([g-1]),a);n.push({op:"remove",path:b})}}}(e,t,r,n,o);case 3:return function(e,t,r,n,a){var o=e.original,i=e.copy,s=0;o.forEach((function(e){if(!i.has(e)){var o=w(t.concat([s]),a);r.push({op:"remove",path:o,value:e}),n.unshift({op:"add",path:o,value:e})}s+=1})),s=0,i.forEach((function(e){if(!o.has(e)){var i=w(t.concat([s]),a);r.push({op:"add",path:i,value:e}),n.unshift({op:"remove",path:i,value:e})}s+=1}))}(e,t,r,n,o)}}var C,F,T=!1,K=function(e,t,r){if(void 0===r&&(r=!1),"object"==typeof e&&null!==e&&(!v(e,t)||r)&&!T)throw new Error("Strict mode: Mutable data cannot be accessed directly, please use 'unsafe(callback)' wrap.")},U=((C={get size(){return l(c(this)).size},has:function(e){return l(c(this)).has(e)},set:function(e,t){var r=c(this),n=l(r);return n.has(e)&&b(n.get(e),t)||(k(r),E(r),r.assignedMap.set(e,!0),r.copy.set(e,t),_(r,e,t,I)),this},delete:function(e){if(!this.has(e))return!1;var t=c(this);return k(t),E(t),t.original.has(e)?t.assignedMap.set(e,!1):t.assignedMap.delete(e),t.copy.delete(e),!0},clear:function(){var e=c(this);if(this.size){k(e),E(e),e.assignedMap=new Map;for(var t,r=n(e.original);!(t=r()).done;)e.assignedMap.set(t.value[0],!1);e.copy.clear()}},forEach:function(e,t){var r=this;l(c(this)).forEach((function(n,a){e.call(t,r.get(a),a,r)}))},get:function(e){var t=c(this),r=l(t).get(e),n=(null==t.options.mark?void 0:t.options.mark(r,s))===s.mutable;if(t.options.strict&&K(r,t.options,n),n)return r;if(t.finalized||!v(r,t.options))return r;if(r!==t.original.get(e))return r;var a=u.createDraft({original:r,parentDraft:t,key:e,finalities:t.finalities,options:t.options});return k(t),t.copy.set(e,a),a},keys:function(){return l(c(this)).keys()},values:function(){var e,t=this,r=this.keys();return(e={})[i]=function(){return t.values()},e.next=function(){var e=r.next();return e.done?e:{done:!1,value:t.get(e.value)}},e},entries:function(){var e,t=this,r=this.keys();return(e={})[i]=function(){return t.entries()},e.next=function(){var e=r.next();if(e.done)return e;var n=t.get(e.value);return{done:!1,value:[e.value,n]}},e}})[i]=function(){return this.entries()},C),N=Reflect.ownKeys(U),V=function(e,t,r){var n=r.isValuesIterator;return function(){var r=t.next();if(r.done)return r;var a=r.value,o=e.setMap.get(a),i=c(o),l=(null==e.options.mark?void 0:e.options.mark(o,s))===s.mutable;if(e.options.strict&&K(a,e.options,l),l||i||!v(a,e.options)||e.finalized||!e.original.has(a))i&&(o=i.proxy);else{var f=u.createDraft({original:a,parentDraft:e,key:a,finalities:e.finalities,options:e.options});e.setMap.set(a,f),o=f}return{done:!1,value:n?o:[o,o]}}},L=((F={get size(){return c(this).setMap.size},has:function(e){var t=c(this);if(t.setMap.has(e))return!0;k(t);var r=c(e);return!(!r||!t.setMap.has(r.original))},add:function(e){var t=c(this);return this.has(e)||(k(t),E(t),t.assignedMap.set(e,!0),t.setMap.set(e,e),_(t,e,e,I)),this},delete:function(e){if(!this.has(e))return!1;var t=c(this);k(t),E(t);var r=c(e);return r&&t.setMap.has(r.original)?(t.assignedMap.set(r.original,!1),t.setMap.delete(r.original)):(!r&&t.setMap.has(e)?t.assignedMap.set(e,!1):t.assignedMap.delete(e),t.setMap.delete(e))},clear:function(){if(this.size){var e=c(this);k(e),E(e);for(var t,r=n(e.original);!(t=r()).done;)e.assignedMap.set(t.value,!1);e.setMap.clear()}},values:function(){var e,t=this,r=c(this);k(r);var n=r.setMap.keys();return(e={})[Symbol.iterator]=function(){return t.values()},e.next=V(r,n,{isValuesIterator:!0}),e},entries:function(){var e,t=this,r=c(this);k(r);var n=r.setMap.keys();return(e={})[Symbol.iterator]=function(){return t.entries()},e.next=V(r,n,{isValuesIterator:!1}),e},keys:function(){return this.values()}})[i]=function(){return this.values()},F.forEach=function(e,t){for(var r=this.values(),n=r.next();!n.done;)e.call(t,n.value,n.value,this),n=r.next()},F),W=Reflect.ownKeys(L),Y={get:function(e,t,r){if(t===a)return e;var n;if(e.options.mark){var o="size"===t&&(e.original instanceof Map||e.original instanceof Set)?Reflect.get(e.original,t):Reflect.get(e.original,t,r);if((n=e.options.mark(o,s))===s.mutable)return e.options.strict&&K(o,e.options,!0),o}var i=l(e);if(i instanceof Map&&N.includes(t)){if("size"===t)return Object.getOwnPropertyDescriptor(U,"size").get.call(e.proxy);var u=U[t];if(u)return u.bind(e.proxy)}if(i instanceof Set&&W.includes(t)){if("size"===t)return Object.getOwnPropertyDescriptor(L,"size").get.call(e.proxy);var f=L[t];if(f)return f.bind(e.proxy)}if(!S(i,t)){var p,d=z(i,t);return d?"value"in d?d.value:null==(p=d.get)?void 0:p.call(e.proxy):void 0}var y=i[t];if(e.options.strict&&K(y,e.options),e.finalized||!v(y,e.options))return y;if(y===g(e.original,t)){if(k(e),e.copy[t]=B({original:e.original[t],parentDraft:e,key:1===e.type?Number(t):t,finalities:e.finalities,options:e.options}),"function"==typeof n){var h=c(e.copy[t]);return k(h),E(h),h.copy}return e.copy[t]}return y},set:function(e,t,r){if(3===e.type||2===e.type)throw new Error("Map/Set draft does not support any property assignment.");if(1===e.type&&"length"!==t&&isNaN(Number(t)))throw new Error("Only supports setting array indices and the 'length' property.");var n=z(l(e),t);if(null!=n&&n.set)return n.set.call(e.proxy,r),!0;var a,o=g(l(e),t),i=c(o);return i&&b(i.original,r)?(e.copy[t]=r,e.assignedMap=null!=(a=e.assignedMap)?a:new Map,e.assignedMap.set(t,!1),!0):(b(r,o)&&(void 0!==r||S(e.original,t))||(k(e),E(e),S(e.original,t)&&b(r,e.original[t])?e.assignedMap.delete(t):e.assignedMap.set(t,!0),e.copy[t]=r,_(e,t,r,I)),!0)},has:function(e,t){return t in l(e)},ownKeys:function(e){return Reflect.ownKeys(l(e))},getOwnPropertyDescriptor:function(e,t){var r=l(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n?{writable:!0,configurable:1!==e.type||"length"!==t,enumerable:n.enumerable,value:r[t]}:n},getPrototypeOf:function(e){return Reflect.getPrototypeOf(e.original)},setPrototypeOf:function(){throw new Error("Cannot call 'setPrototypeOf()' on drafts")},defineProperty:function(){throw new Error("Cannot call 'defineProperty()' on drafts")},deleteProperty:function(e,t){return 1===e.type?Y.set.call(this,e,t,void 0,e.proxy):(void 0!==g(e.original,t)||t in e.original?(k(e),E(e),e.assignedMap.set(t,!1)):(e.assignedMap=null!=(r=e.assignedMap)?r:new Map,e.assignedMap.delete(t)),e.copy&&delete e.copy[t],!0);var r}};function B(e){var t=e.original,r=e.parentDraft,n=e.key,a=e.finalities,o=e.options,i=d(t),s={type:i,finalized:!1,parent:r,original:t,copy:null,proxy:null,finalities:a,options:o,setMap:3===i?new Map(t.entries()):void 0};(n||"key"in e)&&(s.key=n);var u=Proxy.revocable(1===i?Object.assign([],s):s,Y),l=u.proxy;if(a.revoke.push(u.revoke),s.proxy=l,r){var f=r;f.finalities.draft.push((function(e,t){var r,a=c(l),o=3===f.type?f.setMap:f.copy,i=y(o,n),s=c(i);if(s){var u=s.original;s.operated&&(u=p(i)),D(s),R(s,I,e,t),h(o,n,u)}null==(r=a.callbacks)||r.forEach((function(r){r(e,t)}))}))}else{var v=c(l);v.finalities.draft.push((function(e,t){D(v),R(v,I,e,t)}))}return l}function X(e){var t=e.rootDraft;x(e.value,(function(r,n,a){var o=c(n);if(o&&t&&o.finalities===t.finalities){e.isContainDraft=!0;var i=o.original;if(a instanceof Set){var s=Array.from(a);a.clear(),s.forEach((function(e){return a.add(r===e?i:e)}))}else h(a,r,i)}else"object"==typeof n&&null!==n&&(e.value=n,e.isRoot=!1,X(e))}))}function $(e){if(!f(e))throw new Error("current() is only used for Draft, parameter: "+e);return function e(t){var r=c(t);if(!v(t,null==r?void 0:r.options))return t;var n,a=d(t);if(r&&!r.operated)return r.original;r&&(r.finalized=!0);try{n=2===a?new Map(t):3===a?Array.from(r.setMap.values()):M(t,null==r?void 0:r.options)}finally{r&&(r.finalized=!1)}return x(n,(function(t,a){r&&b(y(r.original,t),a)||h(n,t,e(a))})),3===a?new Set(n):n}(e)}u.createDraft=B;var q=function(e){return function r(a,i,u){var l,p,y;if("function"==typeof a&&"function"!=typeof i)return function(e){for(var t=this,n=arguments.length,o=new Array(n>1?n-1:0),s=1;s<n;s++)o[s-1]=arguments[s];return r(e,(function(e){return a.call.apply(a,[t,e].concat(o))}),i)};var h=a,g=i,w=u;"function"!=typeof i&&(w=i),w=t({},e,w);var M=f(h)?$(h):h,k=Array.isArray(w.mark)?function(e,t){for(var r,a=n(w.mark);!(r=a()).done;){var o=(0,r.value)(e,t);if(o)return o}}:w.mark,O=null!=(l=w.enablePatches)&&l,j=null!=(p=w.strict)&&p,E={enableAutoFreeze:null!=(y=w.enableAutoFreeze)&&y,mark:k,strict:j,enablePatches:O};if(!v(M,E)&&"object"==typeof M&&null!==M)throw new Error("Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.");var S,z=function(e,t){var r,a,o={draft:[],revoke:[],handledSet:new WeakSet};t.enablePatches&&(r=[],a=[]);var i=(null==t.mark?void 0:t.mark(e,s))!==s.mutable&&v(e,t)?B({original:e,parentDraft:null,finalities:o,options:t}):e;return[i,function(e){void 0===e&&(e=[]);var o=function(e,t,r,a,o){var i,s=c(e),u=null!=(i=null==s?void 0:s.original)?i:e,l=!!t.length;if(null!=s&&s.operated)for(;s.finalities.draft.length>0;)s.finalities.draft.pop()(r,a);var p=l?t[0]:s?s.operated?s.copy:s.original:e;return s&&m(s),o&&function e(t,r,a,o,i){if(!Object.isFrozen(t)&&!f(t))switch(d(t)){case 2:for(var s,u=n(t);!(s=u()).done;){var l=s.value,c=l[0],p=l[1];P(c)&&e(c),P(p)&&e(p)}t.set=t.clear=t.delete=A;break;case 3:for(var v,y=n(t);!(v=y()).done;){var h=v.value;P(h)&&e(h)}t.add=t.clear=t.delete=A;break;case 1:Object.freeze(t);for(var g,b=n(t);!(g=b()).done;){var m=g.value;P(m)&&e(m)}break;default:Object.freeze(t),Object.keys(t).forEach((function(r){var n=t[r];P(n)&&e(n)}))}}(p),[p,r&&l?[{op:"replace",path:[],value:t[0]}]:r,a&&l?[{op:"replace",path:[],value:u}]:a]}(i,e,r,a,t.enableAutoFreeze),s=o[0];return t.enablePatches?[s,o[1],o[2]]:s}]}(M,E),x=z[0],D=z[1];if("function"!=typeof i){if(!v(M,E))throw new Error("Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.");return[x,D]}try{S=g(x)}catch(e){throw m(c(x)),e}var R=function(e){var t=c(x);if(!f(e)){if(void 0!==e&&!b(e,x)&&null!=t&&t.operated)throw new Error("Either the value is returned as a new non-draft value, or only the draft is modified without returning any value.");var r=null==e?void 0:e[o];if(r){var n=r[0];return E.strict&&"object"==typeof e&&null!==e&&X({rootDraft:t,value:e,useRawReturn:!0}),D([n])}if(void 0!==e)return"object"==typeof e&&null!==e&&X({rootDraft:t,value:e}),D([e])}if(e===x||void 0===e)return D([]);var a=c(e);if(E===a.options){if(a.operated)throw new Error("Cannot return a modified child draft.");return D([$(e)])}return D([e])};return S instanceof Promise?S.then(R,(function(e){throw m(c(x)),e})):R(S)}},G=q(),H=Object.prototype.constructor.toString();e.apply=function(e,r,n){var a;for(a=r.length-1;a>=0;a-=1){var o=r[a],i=o.op,s=o.path;if(!s.length&&"replace"===i||""===s&&"add"===i){e=o.value;break}}a>-1&&(r=r.slice(a+1));var u=function(e){r.forEach((function(t){for(var r=t.op,n=function(e){return Array.isArray(e)?e:e.split("/").map((function(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")})).slice(1)}(t.path),a=e,o=0;o<n.length-1;o+=1){var i=d(a),s=n[o];if("string"!=typeof s&&"number"!=typeof s&&(s=String(s)),(0===i||1===i)&&("__proto__"===s||"constructor"===s)||"function"==typeof a&&"prototype"===s)throw new Error("Patching reserved attributes like __proto__ and constructor is not allowed.");if("object"!=typeof(a=y(3===d(a)?Array.from(a):a,s)))throw new Error("Cannot apply patch at '"+n.join("/")+"'.")}var u=d(a),l=O(t.value),f=n[n.length-1];switch(r){case"replace":switch(u){case 2:return a.set(f,l);case 3:throw new Error("Cannot apply replace patch to set.");default:return a[f]=l}case"add":switch(u){case 1:return"-"===f?a.push(l):a.splice(f,0,l);case 2:return a.set(f,l);case 3:return a.add(l);default:return a[f]=l}case"remove":switch(u){case 1:return a.splice(f,1);case 2:return a.delete(f);case 3:return a.delete(t.value);default:return delete a[f]}default:throw new Error("Unsupported patch operation: "+r+".")}}))};if(f(e)){if(void 0!==n)throw new Error("Cannot apply patches with options to a draft.");return u(e),e}return G(e,u,t({enablePatches:!1},n))},e.castDraft=function(e){return e},e.castImmutable=function(e){return e},e.create=G,e.current=$,e.isDraft=f,e.isDraftable=v,e.makeCreator=q,e.markSimpleObject=function(e){if(function(e){var t=Object.getPrototypeOf(e);if(null===t)return!0;var r=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;return"function"==typeof r&&Function.toString.call(r)===H}(e))return s.immutable},e.original=function(e){var t=c(e);if(!t)throw new Error("original() is only used for a draft, parameter: "+e);return t.original},e.rawReturn=function(e){var t;if(0===arguments.length)throw new Error("rawReturn() must be called with a value.");if(arguments.length>1)throw new Error("rawReturn() must be called with one argument.");return(t={})[o]=[e],t},e.unsafe=function(e){var t;T=!0;try{t=e()}finally{T=!1}return t},Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=mutative.umd.production.min.js.map