UNPKG

mutative

Version:

A JavaScript library for efficient immutable updates

3 lines (2 loc) 19.7 kB
"use strict";function e(){return(e=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 t(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 r(e,r){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,r){if(e){if("string"==typeof e)return t(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)?t(e,void 0):void 0}}(e))||r&&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.")}Object.defineProperty(exports,"__esModule",{value:!0});var n=Symbol.for("__MUTATIVE_PROXY_DRAFT__"),a=Symbol("__MUTATIVE_RAW_RETURN_SYMBOL__"),o=Symbol.iterator,i={mutable:"mutable",immutable:"immutable"},s={};function u(e){var t;return null!=(t=e.copy)?t:e.original}function l(e){return!!c(e)}function c(e){return"object"!=typeof e?null:null==e?void 0:e[n]}function f(e){var t,r=c(e);return r?null!=(t=r.copy)?t:r.original:e}function p(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,i))===i.immutable||"function"==typeof r));var r}function v(e){return Array.isArray(e)?1:e instanceof Map?2:e instanceof Set?3:0}function h(e,t){return 2===v(e)?e.get(t):e[t]}function y(e,t,r){2===v(e)?e.set(t,r):e[t]=r}function d(e,t){var r=c(e);return(r?u(r):e)[t]}function g(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function b(e){if(e)for(;e.finalities.revoke.length>0;)e.finalities.revoke.pop()()}function m(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 w(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,i))&&r!==i.mutable){if(r===i.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 M(e){e.copy||(e.copy=w(e.original,e.options))}function k(e){if(!p(e))return f(e);if(Array.isArray(e))return e.map(k);if(e instanceof Map)return new Map(Array.from(e.entries()).map((function(e){return[e[0],k(e[1])]})));if(e instanceof Set)return new Set(Array.from(e).map(k));var t=Object.create(Object.getPrototypeOf(e));for(var r in e)t[r]=k(e[r]);return t}function O(e){return l(e)?k(e):e}function j(e){var t;e.assignedMap=null!=(t=e.assignedMap)?t:new Map,e.operated||(e.operated=!0,e.parent&&j(e.parent))}function E(){throw new Error("Cannot modify frozen object")}function A(e){return e&&"object"==typeof e&&!Object.isFrozen(e)}function x(e,t){return e instanceof Map?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function P(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 S(e,t){var n=v(e);if(0===n)Reflect.ownKeys(e).forEach((function(r){t(r,e[r],e)}));else if(1===n)for(var a,o=0,i=r(e);!(a=i()).done;)t(o,a.value,e),o+=1;else e.forEach((function(r,n){return t(n,r,e)}))}function z(e){3===e.type&&e.copy&&(e.copy.clear(),e.setMap.forEach((function(t){e.copy.add(f(t))})))}function D(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(h(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 R(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(g(h(s,t),r)){var u=a.original;a.copy&&(u=a.copy),z(e),D(e,n,o,i),y(s,t,u)}})),e.options.enableAutoFreeze&&a.finalities!==e.finalities&&(e.options.enableAutoFreeze=!1)),p(r,e.options)&&e.finalities.draft.push((function(){g(h(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(!l(t)&&p(t)&&!r.has(t)&&!Object.isFrozen(t)){var n=t instanceof Set,a=n?new Map:void 0;if(r.add(t),S(t,(function(o,i){if(l(i)){var s,u=c(i);M(u);var f=null!=(s=u.assignedMap)&&s.size||u.operated?u.copy:u.original;y(n?a:t,o,f)}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)}))}}}(h(r,t),e.finalities.handledSet)}(e,t)}))}function _(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=h(o,s),l=O(h(i,s)),c=e?x(o,s)?"replace":"add":"remove";if(!g(u,l)||"replace"!==c){var f=m(t.concat(s),a);r.push("remove"===c?{op:c,path:f}:{op:c,path:f,value:l}),n.push("add"===c?{op:"remove",path:f}:"remove"===c?{op:"add",path:f,value:u}:{op:"replace",path:f,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 c=[n,r];r=c[0],n=c[1]}for(var f=0;f<o.length;f+=1)if(i.get(f.toString())&&u[f]!==o[f]){var p=m(t.concat([f]),a);r.push({op:"replace",path:p,value:O(u[f])}),n.push({op:"replace",path:p,value:O(o[f])})}for(var v=o.length;v<u.length;v+=1){var h=m(t.concat([v]),a);r.push({op:"add",path:h,value:O(u[v])})}if(o.length<u.length){var y=s.enablePatches.arrayLengthAssignment;if(void 0===y||y){var d=m(t.concat(["length"]),a);n.push({op:"replace",path:d,value:o.length})}else for(var g=u.length;o.length<g;g-=1){var b=m(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=m(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=m(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 I,C,F=!1,T=function(e,t,r){if(void 0===r&&(r=!1),"object"==typeof e&&null!==e&&(!p(e,t)||r)&&!F)throw new Error("Strict mode: Mutable data cannot be accessed directly, please use 'unsafe(callback)' wrap.")},K=((I={get size(){return u(c(this)).size},has:function(e){return u(c(this)).has(e)},set:function(e,t){var r=c(this),n=u(r);return n.has(e)&&g(n.get(e),t)||(M(r),j(r),r.assignedMap.set(e,!0),r.copy.set(e,t),R(r,e,t,_)),this},delete:function(e){if(!this.has(e))return!1;var t=c(this);return M(t),j(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){M(e),j(e),e.assignedMap=new Map;for(var t,n=r(e.original);!(t=n()).done;)e.assignedMap.set(t.value[0],!1);e.copy.clear()}},forEach:function(e,t){var r=this;u(c(this)).forEach((function(n,a){e.call(t,r.get(a),a,r)}))},get:function(e){var t=c(this),r=u(t).get(e),n=(null==t.options.mark?void 0:t.options.mark(r,i))===i.mutable;if(t.options.strict&&T(r,t.options,n),n)return r;if(t.finalized||!p(r,t.options))return r;if(r!==t.original.get(e))return r;var a=s.createDraft({original:r,parentDraft:t,key:e,finalities:t.finalities,options:t.options});return M(t),t.copy.set(e,a),a},keys:function(){return u(c(this)).keys()},values:function(){var e,t=this,r=this.keys();return(e={})[o]=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={})[o]=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}})[o]=function(){return this.entries()},I),U=Reflect.ownKeys(K),N=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),u=c(o),l=(null==e.options.mark?void 0:e.options.mark(o,i))===i.mutable;if(e.options.strict&&T(a,e.options,l),l||u||!p(a,e.options)||e.finalized||!e.original.has(a))u&&(o=u.proxy);else{var f=s.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]}}},V=((C={get size(){return c(this).setMap.size},has:function(e){var t=c(this);if(t.setMap.has(e))return!0;M(t);var r=c(e);return!(!r||!t.setMap.has(r.original))},add:function(e){var t=c(this);return this.has(e)||(M(t),j(t),t.assignedMap.set(e,!0),t.setMap.set(e,e),R(t,e,e,_)),this},delete:function(e){if(!this.has(e))return!1;var t=c(this);M(t),j(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);M(e),j(e);for(var t,n=r(e.original);!(t=n()).done;)e.assignedMap.set(t.value,!1);e.setMap.clear()}},values:function(){var e,t=this,r=c(this);M(r);var n=r.setMap.keys();return(e={})[Symbol.iterator]=function(){return t.values()},e.next=N(r,n,{isValuesIterator:!0}),e},entries:function(){var e,t=this,r=c(this);M(r);var n=r.setMap.keys();return(e={})[Symbol.iterator]=function(){return t.entries()},e.next=N(r,n,{isValuesIterator:!1}),e},keys:function(){return this.values()}})[o]=function(){return this.values()},C.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()},C),L=Reflect.ownKeys(V),W={get:function(e,t,r){if(t===n)return e;var a;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((a=e.options.mark(o,i))===i.mutable)return e.options.strict&&T(o,e.options,!0),o}var s=u(e);if(s instanceof Map&&U.includes(t)){if("size"===t)return Object.getOwnPropertyDescriptor(K,"size").get.call(e.proxy);var l=K[t];if(l)return l.bind(e.proxy)}if(s instanceof Set&&L.includes(t)){if("size"===t)return Object.getOwnPropertyDescriptor(V,"size").get.call(e.proxy);var f=V[t];if(f)return f.bind(e.proxy)}if(!x(s,t)){var v,h=P(s,t);return h?"value"in h?h.value:null==(v=h.get)?void 0:v.call(e.proxy):void 0}var y=s[t];if(e.options.strict&&T(y,e.options),e.finalized||!p(y,e.options))return y;if(y===d(e.original,t)){if(M(e),e.copy[t]=Y({original:e.original[t],parentDraft:e,key:1===e.type?Number(t):t,finalities:e.finalities,options:e.options}),"function"==typeof a){var g=c(e.copy[t]);return M(g),j(g),g.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=P(u(e),t);if(null!=n&&n.set)return n.set.call(e.proxy,r),!0;var a,o=d(u(e),t),i=c(o);return i&&g(i.original,r)?(e.copy[t]=r,e.assignedMap=null!=(a=e.assignedMap)?a:new Map,e.assignedMap.set(t,!1),!0):(g(r,o)&&(void 0!==r||x(e.original,t))||(M(e),j(e),x(e.original,t)&&g(r,e.original[t])?e.assignedMap.delete(t):e.assignedMap.set(t,!0),e.copy[t]=r,R(e,t,r,_)),!0)},has:function(e,t){return t in u(e)},ownKeys:function(e){return Reflect.ownKeys(u(e))},getOwnPropertyDescriptor:function(e,t){var r=u(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?W.set.call(this,e,t,void 0,e.proxy):(void 0!==d(e.original,t)||t in e.original?(M(e),j(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 Y(e){var t=e.original,r=e.parentDraft,n=e.key,a=e.finalities,o=e.options,i=v(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,W),l=u.proxy;if(a.revoke.push(u.revoke),s.proxy=l,r){var p=r;p.finalities.draft.push((function(e,t){var r,a=c(l),o=3===p.type?p.setMap:p.copy,i=h(o,n),s=c(i);if(s){var u=s.original;s.operated&&(u=f(i)),z(s),D(s,_,e,t),y(o,n,u)}null==(r=a.callbacks)||r.forEach((function(r){r(e,t)}))}))}else{var d=c(l);d.finalities.draft.push((function(e,t){z(d),D(d,_,e,t)}))}return l}function B(e){var t=e.rootDraft;S(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 y(a,r,i)}else"object"==typeof n&&null!==n&&(e.value=n,e.isRoot=!1,B(e))}))}function X(e){if(!l(e))throw new Error("current() is only used for Draft, parameter: "+e);return function e(t){var r=c(t);if(!p(t,null==r?void 0:r.options))return t;var n,a=v(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()):w(t,null==r?void 0:r.options)}finally{r&&(r.finalized=!1)}return S(n,(function(t,a){r&&g(h(r.original,t),a)||y(n,t,e(a))})),3===a?new Set(n):n}(e)}s.createDraft=Y;var $=function(t){return function n(o,s,u){var f,h,y;if("function"==typeof o&&"function"!=typeof s)return function(e){for(var t=this,r=arguments.length,a=new Array(r>1?r-1:0),i=1;i<r;i++)a[i-1]=arguments[i];return n(e,(function(e){return o.call.apply(o,[t,e].concat(a))}),s)};var d=o,m=s,w=u;"function"!=typeof s&&(w=s),w=e({},t,w);var M=l(d)?X(d):d,k=Array.isArray(w.mark)?function(e,t){for(var n,a=r(w.mark);!(n=a()).done;){var o=(0,n.value)(e,t);if(o)return o}}:w.mark,O=null!=(f=w.enablePatches)&&f,j=null!=(h=w.strict)&&h,x={enableAutoFreeze:null!=(y=w.enableAutoFreeze)&&y,mark:k,strict:j,enablePatches:O};if(!p(M,x)&&"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 P,S=function(e,t){var n,a,o={draft:[],revoke:[],handledSet:new WeakSet};t.enablePatches&&(n=[],a=[]);var s=(null==t.mark?void 0:t.mark(e,i))!==i.mutable&&p(e,t)?Y({original:e,parentDraft:null,finalities:o,options:t}):e;return[s,function(e){void 0===e&&(e=[]);var o=function(e,t,n,a,o){var i,s=c(e),u=null!=(i=null==s?void 0:s.original)?i:e,f=!!t.length;if(null!=s&&s.operated)for(;s.finalities.draft.length>0;)s.finalities.draft.pop()(n,a);var p=f?t[0]:s?s.operated?s.copy:s.original:e;return s&&b(s),o&&function e(t,n,a,o,i){if(!Object.isFrozen(t)&&!l(t))switch(v(t)){case 2:for(var s,u=r(t);!(s=u()).done;){var c=s.value,f=c[0],p=c[1];A(f)&&e(f),A(p)&&e(p)}t.set=t.clear=t.delete=E;break;case 3:for(var h,y=r(t);!(h=y()).done;){var d=h.value;A(d)&&e(d)}t.add=t.clear=t.delete=E;break;case 1:Object.freeze(t);for(var g,b=r(t);!(g=b()).done;){var m=g.value;A(m)&&e(m)}break;default:Object.freeze(t),Object.keys(t).forEach((function(r){var n=t[r];A(n)&&e(n)}))}}(p),[p,n&&f?[{op:"replace",path:[],value:t[0]}]:n,a&&f?[{op:"replace",path:[],value:u}]:a]}(s,e,n,a,t.enableAutoFreeze),i=o[0];return t.enablePatches?[i,o[1],o[2]]:i}]}(M,x),z=S[0],D=S[1];if("function"!=typeof s){if(!p(M,x))throw new Error("Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.");return[z,D]}try{P=m(z)}catch(e){throw b(c(z)),e}var R=function(e){var t=c(z);if(!l(e)){if(void 0!==e&&!g(e,z)&&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[a];if(r){var n=r[0];return x.strict&&"object"==typeof e&&null!==e&&B({rootDraft:t,value:e,useRawReturn:!0}),D([n])}if(void 0!==e)return"object"==typeof e&&null!==e&&B({rootDraft:t,value:e}),D([e])}if(e===z||void 0===e)return D([]);var o=c(e);if(x===o.options){if(o.operated)throw new Error("Cannot return a modified child draft.");return D([X(e)])}return D([e])};return P instanceof Promise?P.then(R,(function(e){throw b(c(z)),e})):R(P)}},q=$(),G=Object.prototype.constructor.toString();exports.apply=function(t,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){t=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=v(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=h(3===v(a)?Array.from(a):a,s)))throw new Error("Cannot apply patch at '"+n.join("/")+"'.")}var u=v(a),l=k(t.value),c=n[n.length-1];switch(r){case"replace":switch(u){case 2:return a.set(c,l);case 3:throw new Error("Cannot apply replace patch to set.");default:return a[c]=l}case"add":switch(u){case 1:return"-"===c?a.push(l):a.splice(c,0,l);case 2:return a.set(c,l);case 3:return a.add(l);default:return a[c]=l}case"remove":switch(u){case 1:return a.splice(c,1);case 2:return a.delete(c);case 3:return a.delete(t.value);default:return delete a[c]}default:throw new Error("Unsupported patch operation: "+r+".")}}))};if(l(t)){if(void 0!==n)throw new Error("Cannot apply patches with options to a draft.");return u(t),t}return q(t,u,e({enablePatches:!1},n))},exports.castDraft=function(e){return e},exports.castImmutable=function(e){return e},exports.create=q,exports.current=X,exports.isDraft=l,exports.isDraftable=p,exports.makeCreator=$,exports.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)===G}(e))return i.immutable},exports.original=function(e){var t=c(e);if(!t)throw new Error("original() is only used for a draft, parameter: "+e);return t.original},exports.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={})[a]=[e],t},exports.unsafe=function(e){var t;F=!0;try{t=e()}finally{F=!1}return t}; //# sourceMappingURL=mutative.cjs.production.min.js.map