Comparing version 0.7.5 to 0.7.6
@@ -1,1 +0,1 @@ | ||
!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((t=t||self).SES={})}(this,(function(t){"use strict";function r(t,r){if(!t)throw new TypeError(r)}const{getPrototypeOf:o}=Object;const{getOwnPropertyDescriptor:e,getPrototypeOf:n}=Object;function a(t){return n(t).constructor}const i=["Array","ArrayBuffer","ArrayBufferPrototype","ArrayIteratorPrototype","ArrayPrototype","AsyncFunction","AsyncFunctionPrototype","AsyncGenerator","AsyncGeneratorFunction","AsyncGeneratorPrototype","AsyncIteratorPrototype","Atomics","BigInt","BigIntPrototype","BigInt64Array","BigInt64ArrayPrototype","BigUint64Array","BigUint64ArrayPrototype","Boolean","BooleanPrototype","DataView","DataViewPrototype","Date","DatePrototype","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","Error","ErrorPrototype","eval","EvalError","EvalErrorPrototype","Float32Array","Float32ArrayPrototype","Float64Array","Float64ArrayPrototype","Function","FunctionPrototype","Generator","GeneratorFunction","GeneratorPrototype","Int8Array","Int8ArrayPrototype","Int16Array","Int16ArrayPrototype","Int32Array","Int32ArrayPrototype","isFinite","isNaN","IteratorPrototype","JSON","Map","MapIteratorPrototype","MapPrototype","Math","Number","NumberPrototype","Object","ObjectPrototype","parseFloat","parseInt","Promise","PromisePrototype","Proxy","RangeError","RangeErrorPrototype","ReferenceError","ReferenceErrorPrototype","Reflect","RegExp","RegExpPrototype","RegExpStringIteratorPrototype","Set","SetIteratorPrototype","SetPrototype","SharedArrayBuffer","SharedArrayBufferPrototype","String","StringIteratorPrototype","StringPrototype","Symbol","SymbolPrototype","SyntaxError","SyntaxErrorPrototype","ThrowTypeError","TypedArray","TypedArrayPrototype","TypeError","TypeErrorPrototype","Uint8Array","Uint8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","Uint16Array","Uint16ArrayPrototype","Uint32Array","Uint32ArrayPrototype","URIError","URIErrorPrototype","WeakMap","WeakMapPrototype","WeakSet","WeakSetPrototype","escape","unescape","FunctionPrototypeConstructor","Compartment","CompartmentPrototype","harden"],{getOwnPropertyDescriptor:c}=Object;function s(t,o){const e=c(t,o);return r(!("get"in e||"set"in e),`unexpected accessor on global property: ${o}`),e.value}const{apply:p}=Reflect,y=(t=>(r,...o)=>p(t,r,o))(Object.prototype.hasOwnProperty);function u(){const t={__proto__:null},c=function(){const t=Function.prototype.constructor,r=typeof Symbol&&Symbol.iterator||"@@iterator",o=typeof Symbol&&Symbol.matchAll||"@@matchAll",i=e(arguments,"callee").get,c=(new String)[r](),s=n(c),p=(new RegExp)[o](),y=n(p),u=(new Array)[r](),l=n(u),f=n(Float32Array),g=(new Map)[r](),P=n(g),b=(new Set)[r](),m=n(b),d=n(l);function*h(){}const A=a(h),E=A.prototype;async function*S(){}const w=a(S),I=w.prototype,F=I.prototype,_=n(F);async function T(){}const v=a(T),O={FunctionPrototypeConstructor:t,ArrayIteratorPrototype:l,AsyncFunction:v,AsyncGenerator:I,AsyncGeneratorFunction:w,AsyncGeneratorPrototype:F,AsyncIteratorPrototype:_,Generator:E,GeneratorFunction:A,IteratorPrototype:d,MapIteratorPrototype:P,RegExpStringIteratorPrototype:y,SetIteratorPrototype:m,StringIteratorPrototype:s,ThrowTypeError:i,TypedArray:f};return O}();!function(t){const{FunctionPrototypeConstructor:e,ArrayIteratorPrototype:n,AsyncFunction:a,AsyncGenerator:i,AsyncGeneratorFunction:c,AsyncGeneratorPrototype:s,AsyncIteratorPrototype:p,Generator:y,GeneratorFunction:u,IteratorPrototype:l,MapIteratorPrototype:f,RegExpStringIteratorPrototype:g,SetIteratorPrototype:P,StringIteratorPrototype:b,ThrowTypeError:m,TypedArray:d}=t;r(o(m)===Function.prototype,"ThrowTypeError.__proto__ should be Function.prototype"),r(o(b)===l,"StringIteratorPrototype.__proto__ should be IteratorPrototype"),r(o(g)===l,"RegExpStringIteratorPrototype.__proto__ should be IteratorPrototype"),r(o(d)===Function.prototype,"TypedArray.__proto__ should be Function.prototype"),r(o(f)===l,"MapIteratorPrototype.__proto__ should be IteratorPrototype"),r(o(P)===l,"SetIteratorPrototype.__proto__ should be IteratorPrototype"),r(o(l)===Object.prototype,"IteratorPrototype.__proto__ should be Object.prototype"),r(o(p)===Object.prototype,"AsyncIteratorPrototype.__proto__ should be Object.prototype"),r(o(n)===l,"AsyncIteratorPrototype.__proto__ should be IteratorPrototype"),r(o(u)===e,"GeneratorFunction.__proto__ should be Function"),r("GeneratorFunction"===u.name,'GeneratorFunction.name should be "GeneratorFunction"'),r(o(y)===Function.prototype,"Generator.__proto__ should be Function.prototype"),r(o(c)===e,"AsyncGeneratorFunction.__proto__ should be Function"),r("AsyncGeneratorFunction"===c.name,'AsyncGeneratorFunction.name should be "AsyncGeneratorFunction"'),r(o(i)===Function.prototype,"AsyncGenerator.__proto__ should be Function.prototype"),r(o(s)===p,"AsyncGeneratorPrototype.__proto__ should be AsyncIteratorPrototype"),r(o(a)===e,"AsyncFunction.__proto__ should be Function"),r("AsyncFunction"===a.name,'AsyncFunction.name should be "AsyncFunction"')}(c);for(const r of i){if(y(c,r)){t[r]=c[r];continue}if(y(globalThis,r)){t[r]=s(globalThis,r);continue}if(r.endsWith("Prototype")){const o=r.slice(0,-"Prototype".length);if(y(c,o)){const e=c[o];t[r]=e.prototype;continue}if(y(globalThis,o)){const e=s(globalThis,o);t[r]=e.prototype;continue}}}return function(t){Object.keys(t).forEach(r=>{if(void 0===t[r])throw new TypeError(`Malformed intrinsic: ${r}`)})}(t),t}const l={"**proto**":"FunctionPrototype",length:"number",name:"string"},f=l,g={get:f,set:"undefined"};function P(t){return{"**proto**":"Error",prototype:t,length:"number",name:"string"}}function b(t){return{"**proto**":"ErrorPrototype",constructor:t,message:"string",name:"string",toString:f}}function m(t){return{"**proto**":"TypedArray",length:"number",name:"string",BYTES_PER_ELEMENT:"number",prototype:t}}function d(t){return{"**proto**":"TypedArrayPrototype",BYTES_PER_ELEMENT:"number",constructor:t}}var h={"**proto**":null,ThrowTypeError:f,Infinity:"number",NaN:"number",undefined:"undefined",eval:f,isFinite:f,isNaN:f,parseFloat:f,parseInt:f,decodeURI:f,decodeURIComponent:f,encodeURI:f,encodeURIComponent:f,Object:{"**proto**":"FunctionPrototype",assign:f,create:f,defineProperties:f,defineProperty:f,entries:f,freeze:f,fromEntries:f,getOwnPropertyDescriptor:f,getOwnPropertyDescriptors:f,getOwnPropertyNames:f,getOwnPropertySymbols:f,getPrototypeOf:f,is:f,isExtensible:f,isFrozen:f,isSealed:f,keys:f,preventExtensions:f,prototype:"ObjectPrototype",seal:f,setPrototypeOf:f,values:f},ObjectPrototype:{"**proto**":null,constructor:"Object",hasOwnProperty:f,isPrototypeOf:f,propertyIsEnumerable:f,toLocaleString:f,toString:f,valueOf:f,__defineGetter__:f,__defineSetter__:f,__lookupGetter__:f,__lookupSetter__:f},Function:{"**proto**":"FunctionPrototype",length:"number",prototype:"FunctionPrototype"},FunctionPrototype:{length:"number",name:"string",apply:f,bind:f,call:f,constructor:"FunctionPrototypeConstructor",toString:f,"@@hasInstance":f},Boolean:{"**proto**":"FunctionPrototype",prototype:"BooleanPrototype"},BooleanPrototype:{constructor:"Boolean",toString:f,valueOf:f},Symbol:{"**proto**":"FunctionPrototype",asyncIterator:"symbol",for:f,hasInstance:"symbol",isConcatSpreadable:"symbol",iterator:"symbol",keyFor:f,match:"symbol",matchAll:"symbol",prototype:"SymbolPrototype",replace:"symbol",search:"symbol",species:"symbol",split:"symbol",toPrimitive:"symbol",toStringTag:"symbol",unscopables:"symbol"},SymbolPrototype:{constructor:"Symbol",description:g,toString:f,valueOf:f,"@@toPrimitive":f,"@@toStringTag":"string"},Error:{"**proto**":"FunctionPrototype",prototype:"ErrorPrototype",captureStackTrace:f,stackTraceLimit:"number"},ErrorPrototype:{constructor:"Error",message:"string",name:"string",toString:f},EvalError:P("EvalErrorPrototype"),RangeError:P("RangeErrorPrototype"),ReferenceError:P("ReferenceErrorPrototype"),SyntaxError:P("SyntaxErrorPrototype"),TypeError:P("TypeErrorPrototype"),URIError:P("URIErrorPrototype"),EvalErrorPrototype:b("EvalError"),RangeErrorPrototype:b("RangeError"),ReferenceErrorPrototype:b("ReferenceError"),SyntaxErrorPrototype:b("SyntaxError"),TypeErrorPrototype:b("TypeError"),URIErrorPrototype:b("URIError"),Number:{"**proto**":"FunctionPrototype",EPSILON:"number",isFinite:f,isInteger:f,isNaN:f,isSafeInteger:f,MAX_SAFE_INTEGER:"number",MAX_VALUE:"number",MIN_SAFE_INTEGER:"number",MIN_VALUE:"number",NaN:"number",NEGATIVE_INFINITY:"number",parseFloat:f,parseInt:f,POSITIVE_INFINITY:"number",prototype:"NumberPrototype"},NumberPrototype:{constructor:"Number",toExponential:f,toFixed:f,toLocaleString:f,toPrecision:f,toString:f,valueOf:f},BigInt:{"**proto**":"FunctionPrototype",asIntN:f,asUintN:f,prototype:"BigIntPrototype"},BigIntPrototype:{constructor:"BigInt",toLocaleString:f,toString:f,valueOf:f,"@@toStringTag":"string"},Math:{E:"number",LN10:"number",LN2:"number",LOG10E:"number",LOG2E:"number",PI:"number",SQRT1_2:"number",SQRT2:"number","@@toStringTag":"string",abs:f,acos:f,acosh:f,asin:f,asinh:f,atan:f,atanh:f,atan2:f,cbrt:f,ceil:f,clz32:f,cos:f,cosh:f,exp:f,expm1:f,floor:f,fround:f,hypot:f,imul:f,log:f,log1p:f,log10:f,log2:f,max:f,min:f,pow:f,random:f,round:f,sign:f,sin:f,sinh:f,sqrt:f,tan:f,tanh:f,trunc:f},Date:{"**proto**":"FunctionPrototype",now:f,parse:f,prototype:"DatePrototype",UTC:f},DatePrototype:{constructor:"Date",getDate:f,getDay:f,getFullYear:f,getHours:f,getMilliseconds:f,getMinutes:f,getMonth:f,getSeconds:f,getTime:f,getTimezoneOffset:f,getUTCDate:f,getUTCDay:f,getUTCFullYear:f,getUTCHours:f,getUTCMilliseconds:f,getUTCMinutes:f,getUTCMonth:f,getUTCSeconds:f,setDate:f,setFullYear:f,setHours:f,setMilliseconds:f,setMinutes:f,setMonth:f,setSeconds:f,setTime:f,setUTCDate:f,setUTCFullYear:f,setUTCHours:f,setUTCMilliseconds:f,setUTCMinutes:f,setUTCMonth:f,setUTCSeconds:f,toDateString:f,toISOString:f,toJSON:f,toLocaleDateString:f,toLocaleString:f,toLocaleTimeString:f,toString:f,toTimeString:f,toUTCString:f,valueOf:f,"@@toPrimitive":f,getYear:f,setYear:f,toGMTString:f},String:{"**proto**":"FunctionPrototype",fromCharCode:f,fromCodePoint:f,prototype:"StringPrototype",raw:f},StringPrototype:{length:"number",charAt:f,charCodeAt:f,codePointAt:f,concat:f,constructor:"String",endsWith:f,includes:f,indexOf:f,lastIndexOf:f,localeCompare:f,match:f,matchAll:f,normalize:f,padEnd:f,padStart:f,repeat:f,replace:f,search:f,slice:f,split:f,startsWith:f,substring:f,toLocaleLowerCase:f,toLocaleUpperCase:f,toLowerCase:f,toString:f,toUpperCase:f,trim:f,trimEnd:f,trimStart:f,valueOf:f,"@@iterator":f,substr:f,anchor:f,big:f,blink:f,bold:f,fixed:f,fontcolor:f,fontsize:f,italics:f,link:f,small:f,strike:f,sub:f,sup:f,trimLeft:f,trimRight:f},StringIteratorPrototype:{"**proto**":"IteratorPrototype",next:f,"@@toStringTag":"string"},RegExp:{"**proto**":"FunctionPrototype",prototype:"RegExpPrototype","@@species":g},RegExpPrototype:{constructor:"RegExp",exec:f,dotAll:g,flags:g,global:g,ignoreCase:g,"@@match":f,"@@matchAll":f,multiline:g,"@@replace":f,"@@search":f,source:g,"@@split":f,sticky:g,test:f,toString:f,unicode:g,compile:!1},RegExpStringIteratorPrototype:{"**proto**":"IteratorPrototype",next:f,"@@toStringTag":"string"},Array:{"**proto**":"FunctionPrototype",from:f,isArray:f,of:f,prototype:"ArrayPrototype","@@species":g},ArrayPrototype:{length:"number",concat:f,constructor:"Array",copyWithin:f,entries:f,every:f,fill:f,filter:f,find:f,findIndex:f,flat:f,flatMap:f,forEach:f,includes:f,indexOf:f,join:f,keys:f,lastIndexOf:f,map:f,pop:f,push:f,reduce:f,reduceRight:f,reverse:f,shift:f,slice:f,some:f,sort:f,splice:f,toLocaleString:f,toString:f,unshift:f,values:f,"@@iterator":f,"@@unscopables":{"**proto**":null,copyWithin:"boolean",entries:"boolean",fill:"boolean",find:"boolean",findIndex:"boolean",flat:"boolean",flatMap:"boolean",includes:"boolean",keys:"boolean",values:"boolean"}},ArrayIteratorPrototype:{"**proto**":"IteratorPrototype",next:f,"@@toStringTag":"string"},TypedArray:{"**proto**":"FunctionPrototype",from:f,of:f,prototype:"TypedArrayPrototype","@@species":g},TypedArrayPrototype:{buffer:g,byteLength:g,byteOffset:g,constructor:"TypedArray",copyWithin:f,entries:f,every:f,fill:f,filter:f,find:f,findIndex:f,forEach:f,includes:f,indexOf:f,join:f,keys:f,lastIndexOf:f,length:g,map:f,reduce:f,reduceRight:f,reverse:f,set:f,slice:f,some:f,sort:f,subarray:f,toLocaleString:f,toString:f,values:f,"@@iterator":f,"@@toStringTag":g},BigInt64Array:m("BigInt64ArrayPrototype"),BigUint64Array:m("BigUint64ArrayPrototype"),Float32Array:m("Float32ArrayPrototype"),Float64Array:m("Float64ArrayPrototype"),Int16Array:m("Int16ArrayPrototype"),Int32Array:m("Int32ArrayPrototype"),Int8Array:m("Int8ArrayPrototype"),Uint16Array:m("Uint16ArrayPrototype"),Uint32Array:m("Uint32ArrayPrototype"),Uint8Array:m("Uint8ArrayPrototype"),Uint8ClampedArray:m("Uint8ClampedArrayPrototype"),BigInt64ArrayPrototype:d("BigInt64Array"),BigUint64ArrayPrototype:d("BigUint64Array"),Float32ArrayPrototype:d("Float32Array"),Float64ArrayPrototype:d("Float64Array"),Int16ArrayPrototype:d("Int16Array"),Int32ArrayPrototype:d("Int32Array"),Int8ArrayPrototype:d("Int8Array"),Uint16ArrayPrototype:d("Uint16Array"),Uint32ArrayPrototype:d("Uint32Array"),Uint8ArrayPrototype:d("Uint8Array"),Uint8ClampedArrayPrototype:d("Uint8ClampedArray"),Map:{"**proto**":"FunctionPrototype","@@species":g,prototype:"MapPrototype"},MapPrototype:{clear:f,constructor:"Map",delete:f,entries:f,forEach:f,get:f,has:f,keys:f,set:f,size:g,values:f,"@@iterator":f,"@@toStringTag":"string"},MapIteratorPrototype:{"**proto**":"IteratorPrototype",next:f,"@@toStringTag":"string"},Set:{"**proto**":"FunctionPrototype",prototype:"SetPrototype","@@species":g},SetPrototype:{add:f,clear:f,constructor:"Set",delete:f,entries:f,forEach:f,has:f,keys:f,size:g,values:f,"@@iterator":f,"@@toStringTag":"string"},SetIteratorPrototype:{"**proto**":"IteratorPrototype",next:f,"@@toStringTag":"string"},WeakMap:{"**proto**":"FunctionPrototype",prototype:"WeakMapPrototype"},WeakMapPrototype:{constructor:"WeakMap",delete:f,get:f,has:f,set:f,"@@toStringTag":"string"},WeakSet:{"**proto**":"FunctionPrototype",prototype:"WeakSetPrototype"},WeakSetPrototype:{add:f,constructor:"WeakSet",delete:f,has:f,"@@toStringTag":"string"},ArrayBuffer:{"**proto**":"FunctionPrototype",isView:f,prototype:"ArrayBufferPrototype","@@species":g},ArrayBufferPrototype:{byteLength:g,constructor:"ArrayBuffer",slice:f,"@@toStringTag":"string"},SharedArrayBuffer:!1,DataView:{"**proto**":"FunctionPrototype",prototype:"DataViewPrototype"},DataViewPrototype:{buffer:g,byteLength:g,byteOffset:g,constructor:"DataView",getBigInt64:f,getBigUint64:f,getFloat32:f,getFloat64:f,getInt8:f,getInt16:f,getInt32:f,getUint8:f,getUint16:f,getUint32:f,setBigInt64:f,setBigUint64:f,setFloat32:f,setFloat64:f,setInt8:f,setInt16:f,setInt32:f,setUint8:f,setUint16:f,setUint32:f,"@@toStringTag":"string"},Atomics:!1,JSON:{parse:f,stringify:f,"@@toStringTag":"string"},IteratorPrototype:{"@@iterator":f},AsyncIteratorPrototype:{"@@asyncIterator":f},GeneratorFunction:{"**proto**":"FunctionPrototypeConstructor",name:"string",length:"number",prototype:"Generator"},Generator:{"**proto**":"FunctionPrototype",constructor:"GeneratorFunction",prototype:"GeneratorPrototype"},AsyncGeneratorFunction:{"**proto**":"FunctionPrototypeConstructor",name:"string",length:"number",prototype:"AsyncGenerator"},AsyncGenerator:{"**proto**":"FunctionPrototype",constructor:"AsyncGeneratorFunction",prototype:"AsyncGeneratorPrototype","@@toStringTag":"string"},GeneratorPrototype:{"**proto**":"IteratorPrototype",constructor:"Generator",next:f,return:f,throw:f,"@@toStringTag":"string"},AsyncGeneratorPrototype:{"**proto**":"AsyncIteratorPrototype",constructor:"AsyncGenerator",next:f,return:f,throw:f,"@@toStringTag":"string"},Promise:{"**proto**":"FunctionPrototype",all:f,allSettled:f,prototype:"PromisePrototype",race:f,reject:f,resolve:f,"@@species":g},PromisePrototype:{catch:f,constructor:"Promise",finally:f,then:f,"@@toStringTag":"string"},AsyncFunction:{"**proto**":"FunctionPrototypeConstructor",name:"string",length:"number",prototype:"AsyncFunctionPrototype"},AsyncFunctionPrototype:{"**proto**":"FunctionPrototype",constructor:"AsyncFunction","@@toStringTag":"string"},Reflect:{apply:f,construct:f,defineProperty:f,deleteProperty:f,get:f,getOwnPropertyDescriptor:f,getPrototypeOf:f,has:f,isExtensible:f,ownKeys:f,preventExtensions:f,set:f,setPrototypeOf:f},Proxy:{"**proto**":"FunctionPrototype",revocable:f},escape:f,unescape:f,FunctionPrototypeConstructor:{"**proto**":"FunctionPrototype",length:"number",prototype:"FunctionPrototype"},Compartment:{"**proto**":"FunctionPrototype",prototype:"CompartmentPrototype"},CompartmentPrototype:{constructor:"Compartment",evaluate:f,global:g},harden:f};const{getPrototypeOf:A,getOwnPropertyDescriptor:E}=Object,{apply:S,ownKeys:w}=Reflect,I=(t=>(r,...o)=>S(t,r,o))(Object.prototype.hasOwnProperty);function F(t,r){if("string"==typeof r)return r;if("symbol"==typeof r)return`@@${r.toString().slice(14,-1)}`;throw new TypeError(`Unexpected property name type ${t} ${r}`)}function _(t){const r=["undefined","boolean","number","string","symbol"];function o(o,e,n,i){if("object"==typeof i)return a(o,e,i),!0;if(!1===i)return!1;if("string"==typeof i)if("prototype"===n||"constructor"===n){if(I(t,i))return e===t[i]}else if(r.includes(i))return typeof e===i;throw new TypeError(`Unexpected whitelist permit ${o}`)}function e(t,r,e,n){const a=E(r,e);return I(a,"value")?o(t,a.value,e,n):o(`${t}<get>`,a.get,e,n.get)&&o(`${t}<set>`,a.set,e,n.set)}function n(t,r){return I(t,r)?t[r]:"FunctionPrototype"===t["**proto**"]&&I(l,r)?l[r]:void 0}function a(r,o,a){!function(r,o,e){const n=A(o);if(null!==n||null!==e){if(void 0!==e&&"string"!=typeof e)throw new TypeError(`Malformed whitelist permit ${r}.__proto__`);if(n!==t[e||"ObjectPrototype"])throw new Error(`Unexpected intrinsic ${r}.__proto__`)}}(r,o,a["**proto**"]);for(const t of w(o)){if("__proto__"===t)continue;const i=F(r,t),c=`${r}.${i}`,s=n(a,i);s&&e(c,o,t,s)||delete o[t]}}a("intrinsics",t,h)}const{defineProperties:T,getOwnPropertyDescriptors:v}=Object;const{getOwnPropertyDescriptor:O}=Object;const{defineProperties:U,getOwnPropertyDescriptors:x,getOwnPropertyDescriptor:R}=Object;const C=!0;var M={ObjectPrototype:"*",ArrayPrototype:"*",FunctionPrototype:{constructor:C,bind:C,name:C,toString:C},ErrorPrototype:{constructor:C,message:C,name:C,toString:C},TypeErrorPrototype:{constructor:C,name:C},PromisePrototype:{constructor:C},TypedArrayPrototype:"*",Generator:{constructor:C,name:C,toString:C},IteratorPrototype:"*"};const{defineProperties:k,getOwnPropertyNames:G,getOwnPropertyDescriptor:j,getOwnPropertyDescriptors:N}=Object,{ownKeys:$}=Reflect;function D(t){return null!==t&&"object"==typeof t}const{assign:B,freeze:L,defineProperties:W,getOwnPropertyDescriptor:V,getOwnPropertyNames:z,getPrototypeOf:Y,setPrototypeOf:J,prototype:H}=Object,{apply:K,get:Q,set:X}=Reflect,{isArray:q,prototype:Z}=Array,{revocable:tt}=Proxy,{prototype:rt}=RegExp,{prototype:ot}=String,{prototype:et}=WeakMap,nt=t=>(r,...o)=>K(t,r,o),at=nt(H.hasOwnProperty),it=(nt(Z.filter),nt(Z.join)),ct=(nt(Z.push),nt(Z.pop)),st=nt(Z.includes),pt=nt(rt.test),yt=(nt(ot.match),nt(ot.search)),ut=nt(ot.slice),lt=nt(ot.split),ft=(nt(et.get),nt(et.set),nt(et.has),t=>Q(Y(t),"constructor")),gt=L({__proto__:null});function Pt(t,r){const o=`please report internal shim error: ${t}`;throw console.error(o),r&&(console.error(`${r}`),console.error(`${r.stack}`)),TypeError(o)}function bt(t,r){t||Pt(r)}const mt=["await","break","case","catch","class","const","continue","debugger","default","delete","do","else","export","extends","finally","for","function","if","import","in","instanceof","new","return","super","switch","this","throw","try","typeof","var","void","while","with","yield","let","static","enum","implements","package","protected","interface","private","public","await","null","true","false","this","arguments"],dt=new RegExp("^[a-zA-Z_$][\\w$]*$");function ht(t){return"eval"!==t&&!st(mt,t)&&pt(dt,t)}function At(t,r){const o=V(t,r);return(!1===o.configurable&&!1===o.writable&&at(o,"value"))}const Et=new Proxy(gt,{get(t,r){Pt(`unexpected scope handler trap called: ${String(r)}`)}});function St(t,r){const o=yt(t,r);return o<0?-1:lt(ut(t,0,o),"\n").length}const wt=new RegExp("(?:\x3c!--|--\x3e)");const It=new RegExp("\\bimport\\s*(?:\\(|/[/*])");const Ft=new RegExp("\\beval\\s*(?:\\(|/[/*])");const _t={rewrite:t=>(function(t){const r=St(t,wt);if(r<0)return t;throw new SyntaxError(`possible html comment syntax rejected around line ${r}`)}(t.src),function(t){const r=St(t,It);if(r<0)return t;throw new SyntaxError(`possible import expression rejected around line ${r}`)}(t.src),function(t){const r=St(t,Ft);if(r<0)return t;throw new SyntaxError(`possible direct eval expression rejected around line ${r}`)}(t.src),t)};function Tt(t,r=[]){const o=function(t){return 0===t.length?"":`const {${it(t,",")}} = this;`}(r);return t.intrinsics.Function(`\n with (this) {\n ${o}\n return function() {\n 'use strict';\n return eval(arguments[0]);\n };\n }\n `)}function vt(t,r,o,e={},{localTransforms:n=[],globalTransforms:a=[],sloppyGlobalsMode:i=!1}={}){let c={src:r,endowments:e};c=function(t,r){for(const o of r)"function"==typeof o.rewrite&&(t=o.rewrite(t));return t}(c,[...n,...a,_t]);const s=function(t,r,o={},{sloppyGlobalsMode:e=!1}={}){return{__proto__:Et,useUnsafeEvaluator:!1,get(e,n){if("symbol"!=typeof n)return"eval"===n&&!0===this.useUnsafeEvaluator?(this.useUnsafeEvaluator=!1,t.intrinsics.eval):n in o?Q(o,n,r):Q(r,n)},set(t,e,n){if(e in o){return"value"in V(o,e)?X(o,e,n):X(o,e,n,r)}return X(r,e,n)},has:(t,n)=>!!(e||"eval"===n||n in o||n in r||n in globalThis),getPrototypeOf:()=>null}}(t,o,c.endowments,{sloppyGlobalsMode:i}),p=tt(gt,s),y=Tt(t,function(t,r={}){const o=z(t),e=z(r),n=e.filter(t=>ht(t)&&At(r,t));return[...o.filter(r=>!e.includes(r)&&ht(r)&&At(t,r)),...n]}(o,c.endowments)),u=K(y,p.proxy,[]);let l;s.useUnsafeEvaluator=!0;try{return K(u,o,[c.src])}catch(t){throw l=t,t}finally{!0===s.useUnsafeEvaluator&&(Pt("handler did not revoke useUnsafeEvaluator",l),p.revoke())}}const Ot=(t,r,o={})=>{const e=e=>"string"!=typeof e?e:vt(t,e,r,{},o);return W(e,{toString:{value:()=>"function eval() { [native code] }",writable:!1,enumerable:!1,configurable:!0}}),bt(ft(e)!==Function,"eval constructor is Function"),bt(ft(e)!==t.intrinsics.Function,"eval contructions is %Function%"),e};function Ut(t,r,o={}){const e=function(e){const n=`${ct(arguments)||""}`,a=`${it(arguments,",")}`;new t.intrinsics.Function(a,n);const i=`(function anonymous(${a}\n) {\n${n}\n})`;return vt(t,i,r,{},o)};return W(e,{prototype:{value:t.intrinsics.Function.prototype,writable:!1,enumerable:!1,configurable:!1},toString:{value:()=>"function Function() { [native code] }",writable:!1,enumerable:!1,configurable:!0}}),bt(Y(Function)===Function.prototype),bt(Y(e)===Function.prototype),bt(ft(e)!==Function),bt(ft(e)!==t.intrinsics.Function),e}const xt=["eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","Array","ArrayBuffer","Boolean","DataView","Date","Error","EvalError","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Number","Object","Promise","Proxy","RangeError","ReferenceError","RegExp","Set","String","Symbol","SyntaxError","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakMap","WeakSet","JSON","Math","Reflect","escape","unescape","globalThis","Compartment","harden"];const{getOwnPropertyDescriptor:Rt}=Object,Ct=["eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","Array","ArrayBuffer","Boolean","DataView","Date","Error","EvalError","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Number","Object","Promise","Proxy","RangeError","ReferenceError","RegExp","Set","String","Symbol","SyntaxError","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakMap","WeakSet","JSON","Math","Reflect","escape","unescape","globalThis","Compartment","harden"];let Mt;function kt(){if(Mt)return Mt;const t=function(){const t={__proto__:null};for(const r of Ct){const o=Rt(globalThis,r);if(o){if("get"in o||"set"in o)throw new TypeError(`Unexpected accessor on global property: ${r}`);t[r]=o.value}}return t}();return Mt={__proto__:null,intrinsics:t},L(Mt)}const Gt=new WeakMap;class jt{constructor(t,r,o={}){const{transforms:e=[]}=o,n=[...e],a=function(t,{globalTransforms:r}){const o={},e={Infinity:{value:1/0,enumerable:!1},NaN:{value:NaN,enumerable:!1},undefined:{value:void 0,enumerable:!1}};for(const n of xt){if(!at(t.intrinsics,n))continue;let a;switch(n){case"eval":a=Ot(t,o,{globalTransforms:r});break;case"Function":a=Ut(t,o,{globalTransforms:r});break;case"globalThis":a=o;break;default:a=t.intrinsics[n]}e[n]={value:a,configurable:!0,writable:!0,enumerable:!1}}return W(o,e),bt(o.eval!==t.intrinsics.eval,"eval on global object"),bt(o.Function!==t.intrinsics.Function,"Function on global object"),o}(kt(),{globalTransforms:n});B(a,t),Gt.set(this,{globalTransforms:n,globalObject:a})}get global(){return Gt.get(this).globalObject}evaluate(t,r={}){if("string"!=typeof t)throw new TypeError("first argument of evaluate() must be a string");const{endowments:o={},transforms:e=[],sloppyGlobalsMode:n=!1}=r,a=[...e],{globalTransforms:i,globalObject:c}=Gt.get(this);return vt(kt(),t,c,o,{globalTransforms:i,localTransforms:a,sloppyGlobalsMode:n})}toString(){return"[object Compartment]"}static toString(){return"function Compartment() { [shim code] }"}}let Nt;function $t(t,r){if(!t)throw new TypeError(r)}t.lockdown=function(t={}){const{noTameDate:r=!1,noTameError:o=!1,noTameMath:e=!1,noTameRegExp:n=!1,registerOnly:a=!1,...i}=t,c=Object.keys(i);$t(0===c.length,`lockdown(): non supported option ${c.join(", ")}`);const s={noTameDate:r,noTameError:o,noTameMath:e,noTameRegExp:n,registerOnly:a};if(Nt)return Object.keys(s).forEach(t=>{$t(s[t]===Nt[t],`lockdown(): cannot re-invoke with different option ${t}`)}),!1;Nt=s,function(){try{(0,Function.prototype.constructor)("return 1")}catch(t){return}const{defineProperties:t,getPrototypeOf:r,setPrototypeOf:o}=Object;function e(e,n){let a;try{a=(0,eval)(n)}catch(t){if(t instanceof SyntaxError)return;throw t}const i=r(a),c=function(){throw new TypeError("Not available")};t(c,{name:{value:e,writable:!1,enumerable:!1,configurable:!0},toString:{value:()=>`function ${e}() { [native code] }`,writable:!1,enumerable:!1,configurable:!0}}),t(i,{constructor:{value:c}}),t(c,{prototype:{value:i}}),c!==Function.prototype.constructor&&o(c,Function.prototype.constructor)}e("Function","(function(){})"),e("GeneratorFunction","(function*(){})"),e("AsyncFunction","(async function(){})"),e("AsyncGeneratorFunction","(async function*(){})")}(),r||function(){const t={now:()=>NaN};Date.now=t.now;const r={toLocaleString:()=>NaN};Date.prototype.toLocaleString=r.toLocaleString;const o=Date,e=function(){return void 0===new.target?"Invalid Date":arguments.length>0?Reflect.construct(o,arguments,new.target):Reflect.construct(o,[NaN],new.target)},n=v(o);T(e,n);const a=v(o.prototype);a.constructor.value=e,T(e.prototype,a),globalThis.Date=e;const i={toLocaleString(){throw new TypeError("Object.prototype.toLocaleString is disabled")}};Object.prototype.toLocaleString=i.toLocaleString}(),o||function(){if(delete Error.captureStackTrace,O(Error,"captureStackTrace"))throw Error("Cannot remove Error.captureStackTrace");if(delete Error.stackTraceLimit,O(Error,"stackTraceLimit"))throw Error("Cannot remove Error.stackTraceLimit")}(),e||function(){const t={random(){throw TypeError("Math.random() is disabled")}};Math.random=t.random}(),n||function(){delete RegExp.prototype.compile;const t=RegExp,r=function(...r){return new.target?Reflect.construct(t,r,new.target):t(...r)},o=R(t,Symbol.species);U(r,Symbol.species,o);const e=x(t.prototype);e.constructor.value=r,U(r.prototype,e),globalThis.RegExp=r}();const p=function(t,r={}){const{freeze:o,getOwnPropertyDescriptors:e,getPrototypeOf:n}=Object,{ownKeys:a}=Reflect;let{fringeSet:i}=r;if(i){if("function"!=typeof i.add||"function"!=typeof i.has)throw new TypeError("options.fringeSet must have add() and has() methods");if(t)for(const r of t)i.add(r)}else i=new WeakSet(t);const c=r&&r.naivePrepareObject,{harden:s}={harden(t){const r=new Set,s=new Map,p=new WeakMap;function y(t,o){if(Object(t)!==t)return;const e=typeof t;if("object"!==e&&"function"!==e)throw new TypeError(`Unexpected typeof: ${e}`);i.has(t)||r.has(t)||(r.add(t),p.set(t,o))}function u(t){c&&c(t),o(t);const r=n(t),i=e(t),u=p.get(t)||"unknown";null===r||s.has(r)||(s.set(r,u),p.set(r,`${u}.__proto__`)),a(i).forEach(t=>{const r=`${u}.${String(t)}`,o=i[t];"value"in o?y(o.value,`${r}`):(y(o.get,`${r}(get)`),y(o.set,`${r}(set)`))})}return y(t),r.forEach(u),s.forEach((t,o)=>{if(!r.has(o)&&!i.has(o)){let r;try{r=`prototype ${o} of ${t} is not already in the fringeSet`}catch(e){r="a prototype of something is not already in the fringeset (and .toString failed)";try{console.log(r),console.log("the prototype:",o),console.log("of something:",t)}catch(t){}}throw new TypeError(r)}}),r.forEach(i.add,i),t}};return s}();Object.defineProperties(globalThis,{harden:{value:p,configurable:!0,writable:!0,enumerable:!1},Compartment:{value:jt,configurable:!0,writable:!0,enumerable:!1}});const y=u();_(y),function(){try{(0,Object.prototype.__lookupGetter__)("x")}catch(t){return}const{defineProperty:t,defineProperties:r,getOwnPropertyDescriptor:o,getPrototypeOf:e,prototype:n}=Object;function a(t){if(null==t)throw new TypeError("can't convert undefined or null to object");return Object(t)}function i(t){return"symbol"==typeof t?t:`${t}`}function c(t,r){if("function"!=typeof t)throw TypeError(`invalid ${r} usage`);return t}r(n,{__defineGetter__:{value:function(r,o){const e=a(this);t(e,r,{get:c(o,"getter"),enumerable:!0,configurable:!0})}},__defineSetter__:{value:function(r,o){const e=a(this);t(e,r,{set:c(o,"setter"),enumerable:!0,configurable:!0})}},__lookupGetter__:{value:function(t){let r,n=a(this);for(t=i(t);n&&!(r=o(n,t));)n=e(n);return r&&r.get}},__lookupSetter__:{value:function(t){let r,n=a(this);for(t=i(t);n&&!(r=o(n,t));)n=e(n);return r&&r.set}}})}();const l=function(t){const r={};function o(t,o,e,n){if("value"in n&&n.configurable){const{value:a}=n;r[t]=a,k(o,{[e]:{get:function(){return a},set:function(r){if(o===this)throw new TypeError(`Cannot assign to read only property '${e}' of '${t}'`);hasOwnProperty.call(this,e)?this[e]=r:k(this,{[e]:{value:r,writable:!0,enumerable:n.enumerable,configurable:n.configurable}})},enumerable:n.enumerable,configurable:n.configurable}})}}function e(t,r,e){const n=j(r,e);n&&o(t,r,e,n)}function n(t,r){const e=N(r);e&&$(e).forEach(n=>o(t,r,n,e[n]))}return function t(r,o,a){for(const i of G(a)){const c=j(o,i);if(!c||c.get||c.set)continue;const s=`${r}.${i}`,p=a[i];if(!0===p)e(s,o,i);else if("*"===p)n(s,c.value);else{if(!D(p))throw new TypeError(`Unexpected override enablement plan ${s}`);t(s,c.value,p)}}}("root",t,M),r}(y);return p(y,a),p(l,a),!0},Object.defineProperty(t,"__esModule",{value:!0})})); | ||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t=t||self).SES={})}(this,(function(t){"use strict";function e(t,e){if(!t)throw new TypeError(e)}const{getPrototypeOf:r}=Object;const{getOwnPropertyDescriptor:o,getPrototypeOf:n}=Object;function a(t){return n(t).constructor}const i=["Array","ArrayBuffer","ArrayBufferPrototype","ArrayIteratorPrototype","ArrayPrototype","AsyncFunction","AsyncFunctionPrototype","AsyncGenerator","AsyncGeneratorFunction","AsyncGeneratorPrototype","AsyncIteratorPrototype","Atomics","BigInt","BigIntPrototype","BigInt64Array","BigInt64ArrayPrototype","BigUint64Array","BigUint64ArrayPrototype","Boolean","BooleanPrototype","DataView","DataViewPrototype","Date","DatePrototype","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","Error","ErrorPrototype","eval","EvalError","EvalErrorPrototype","Float32Array","Float32ArrayPrototype","Float64Array","Float64ArrayPrototype","Function","FunctionPrototype","Generator","GeneratorFunction","GeneratorPrototype","Int8Array","Int8ArrayPrototype","Int16Array","Int16ArrayPrototype","Int32Array","Int32ArrayPrototype","isFinite","isNaN","IteratorPrototype","JSON","Map","MapIteratorPrototype","MapPrototype","Math","Number","NumberPrototype","Object","ObjectPrototype","parseFloat","parseInt","Promise","PromisePrototype","Proxy","RangeError","RangeErrorPrototype","ReferenceError","ReferenceErrorPrototype","Reflect","RegExp","RegExpPrototype","RegExpStringIteratorPrototype","Set","SetIteratorPrototype","SetPrototype","SharedArrayBuffer","SharedArrayBufferPrototype","String","StringIteratorPrototype","StringPrototype","Symbol","SymbolPrototype","SyntaxError","SyntaxErrorPrototype","ThrowTypeError","TypedArray","TypedArrayPrototype","TypeError","TypeErrorPrototype","Uint8Array","Uint8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","Uint16Array","Uint16ArrayPrototype","Uint32Array","Uint32ArrayPrototype","URIError","URIErrorPrototype","WeakMap","WeakMapPrototype","WeakSet","WeakSetPrototype","escape","unescape","FunctionPrototypeConstructor","Compartment","CompartmentPrototype","harden"],{getOwnPropertyDescriptor:c}=Object;function s(t,r){const o=c(t,r);return e(!("get"in o||"set"in o),`unexpected accessor on global property: ${r}`),o.value}const{apply:p}=Reflect,y=(t=>(e,...r)=>p(t,e,r))(Object.prototype.hasOwnProperty);function l(){const t={__proto__:null},c=function(){const t=Function.prototype.constructor,e=typeof Symbol&&Symbol.iterator||"@@iterator",r=typeof Symbol&&Symbol.matchAll||"@@matchAll",i=o(arguments,"callee").get,c=(new String)[e](),s=n(c),p=(new RegExp)[r](),y=n(p),l=(new Array)[e](),u=n(l),f=n(Float32Array),g=(new Map)[e](),P=n(g),b=(new Set)[e](),m=n(b),d=n(u);function*h(){}const A=a(h),E=A.prototype;async function*S(){}const w=a(S),I=w.prototype,T=I.prototype,F=n(T);async function _(){}const v=a(_),O={FunctionPrototypeConstructor:t,ArrayIteratorPrototype:u,AsyncFunction:v,AsyncGenerator:I,AsyncGeneratorFunction:w,AsyncGeneratorPrototype:T,AsyncIteratorPrototype:F,Generator:E,GeneratorFunction:A,IteratorPrototype:d,MapIteratorPrototype:P,RegExpStringIteratorPrototype:y,SetIteratorPrototype:m,StringIteratorPrototype:s,ThrowTypeError:i,TypedArray:f};return O}();!function(t){const{FunctionPrototypeConstructor:o,ArrayIteratorPrototype:n,AsyncFunction:a,AsyncGenerator:i,AsyncGeneratorFunction:c,AsyncGeneratorPrototype:s,AsyncIteratorPrototype:p,Generator:y,GeneratorFunction:l,IteratorPrototype:u,MapIteratorPrototype:f,RegExpStringIteratorPrototype:g,SetIteratorPrototype:P,StringIteratorPrototype:b,ThrowTypeError:m,TypedArray:d}=t;e(r(m)===Function.prototype,"ThrowTypeError.__proto__ should be Function.prototype"),e(r(b)===u,"StringIteratorPrototype.__proto__ should be IteratorPrototype"),e(r(g)===u,"RegExpStringIteratorPrototype.__proto__ should be IteratorPrototype"),e(r(d)===Function.prototype,"TypedArray.__proto__ should be Function.prototype"),e(r(f)===u,"MapIteratorPrototype.__proto__ should be IteratorPrototype"),e(r(P)===u,"SetIteratorPrototype.__proto__ should be IteratorPrototype"),e(r(u)===Object.prototype,"IteratorPrototype.__proto__ should be Object.prototype"),e(r(p)===Object.prototype,"AsyncIteratorPrototype.__proto__ should be Object.prototype"),e(r(n)===u,"AsyncIteratorPrototype.__proto__ should be IteratorPrototype"),e(r(l)===o,"GeneratorFunction.__proto__ should be Function"),e("GeneratorFunction"===l.name,'GeneratorFunction.name should be "GeneratorFunction"'),e(r(y)===Function.prototype,"Generator.__proto__ should be Function.prototype"),e(r(c)===o,"AsyncGeneratorFunction.__proto__ should be Function"),e("AsyncGeneratorFunction"===c.name,'AsyncGeneratorFunction.name should be "AsyncGeneratorFunction"'),e(r(i)===Function.prototype,"AsyncGenerator.__proto__ should be Function.prototype"),e(r(s)===p,"AsyncGeneratorPrototype.__proto__ should be AsyncIteratorPrototype"),e(r(a)===o,"AsyncFunction.__proto__ should be Function"),e("AsyncFunction"===a.name,'AsyncFunction.name should be "AsyncFunction"')}(c);for(const e of i){if(y(c,e)){t[e]=c[e];continue}if(y(globalThis,e)){t[e]=s(globalThis,e);continue}if(e.endsWith("Prototype")){const r=e.slice(0,-"Prototype".length);if(y(c,r)){const o=c[r];t[e]=o.prototype;continue}if(y(globalThis,r)){const o=s(globalThis,r);t[e]=o.prototype;continue}}}return function(t){Object.keys(t).forEach(e=>{if(void 0===t[e])throw new TypeError(`Malformed intrinsic: ${e}`)})}(t),t}const u={"**proto**":"FunctionPrototype",length:"number",name:"string"},f=u,g={get:f,set:"undefined"};function P(t){return{"**proto**":"Error",prototype:t,length:"number",name:"string"}}function b(t){return{"**proto**":"ErrorPrototype",constructor:t,message:"string",name:"string",toString:!1}}function m(t){return{"**proto**":"TypedArray",length:"number",name:"string",BYTES_PER_ELEMENT:"number",prototype:t}}function d(t){return{"**proto**":"TypedArrayPrototype",BYTES_PER_ELEMENT:"number",constructor:t}}var h={"**proto**":null,ThrowTypeError:f,Infinity:"number",NaN:"number",undefined:"undefined",eval:f,isFinite:f,isNaN:f,parseFloat:f,parseInt:f,decodeURI:f,decodeURIComponent:f,encodeURI:f,encodeURIComponent:f,Object:{"**proto**":"FunctionPrototype",assign:f,create:f,defineProperties:f,defineProperty:f,entries:f,freeze:f,fromEntries:f,getOwnPropertyDescriptor:f,getOwnPropertyDescriptors:f,getOwnPropertyNames:f,getOwnPropertySymbols:f,getPrototypeOf:f,is:f,isExtensible:f,isFrozen:f,isSealed:f,keys:f,preventExtensions:f,prototype:"ObjectPrototype",seal:f,setPrototypeOf:f,values:f},ObjectPrototype:{"**proto**":null,constructor:"Object",hasOwnProperty:f,isPrototypeOf:f,propertyIsEnumerable:f,toLocaleString:f,toString:f,valueOf:f,__defineGetter__:f,__defineSetter__:f,__lookupGetter__:f,__lookupSetter__:f},Function:{"**proto**":"FunctionPrototype",length:"number",prototype:"FunctionPrototype"},FunctionPrototype:{length:"number",name:"string",apply:f,bind:f,call:f,constructor:"FunctionPrototypeConstructor",toString:f,"@@hasInstance":f},Boolean:{"**proto**":"FunctionPrototype",prototype:"BooleanPrototype"},BooleanPrototype:{constructor:"Boolean",toString:f,valueOf:f},Symbol:{"**proto**":"FunctionPrototype",asyncIterator:"symbol",for:f,hasInstance:"symbol",isConcatSpreadable:"symbol",iterator:"symbol",keyFor:f,match:"symbol",matchAll:"symbol",prototype:"SymbolPrototype",replace:"symbol",search:"symbol",species:"symbol",split:"symbol",toPrimitive:"symbol",toStringTag:"symbol",unscopables:"symbol"},SymbolPrototype:{constructor:"Symbol",description:g,toString:f,valueOf:f,"@@toPrimitive":f,"@@toStringTag":"string"},Error:{"**proto**":"FunctionPrototype",prototype:"ErrorPrototype",captureStackTrace:f,stackTraceLimit:{get:f,set:f}},ErrorPrototype:{constructor:"Error",message:"string",name:"string",toString:f},EvalError:P("EvalErrorPrototype"),RangeError:P("RangeErrorPrototype"),ReferenceError:P("ReferenceErrorPrototype"),SyntaxError:P("SyntaxErrorPrototype"),TypeError:P("TypeErrorPrototype"),URIError:P("URIErrorPrototype"),EvalErrorPrototype:b("EvalError"),RangeErrorPrototype:b("RangeError"),ReferenceErrorPrototype:b("ReferenceError"),SyntaxErrorPrototype:b("SyntaxError"),TypeErrorPrototype:b("TypeError"),URIErrorPrototype:b("URIError"),Number:{"**proto**":"FunctionPrototype",EPSILON:"number",isFinite:f,isInteger:f,isNaN:f,isSafeInteger:f,MAX_SAFE_INTEGER:"number",MAX_VALUE:"number",MIN_SAFE_INTEGER:"number",MIN_VALUE:"number",NaN:"number",NEGATIVE_INFINITY:"number",parseFloat:f,parseInt:f,POSITIVE_INFINITY:"number",prototype:"NumberPrototype"},NumberPrototype:{constructor:"Number",toExponential:f,toFixed:f,toLocaleString:f,toPrecision:f,toString:f,valueOf:f},BigInt:{"**proto**":"FunctionPrototype",asIntN:f,asUintN:f,prototype:"BigIntPrototype"},BigIntPrototype:{constructor:"BigInt",toLocaleString:f,toString:f,valueOf:f,"@@toStringTag":"string"},Math:{E:"number",LN10:"number",LN2:"number",LOG10E:"number",LOG2E:"number",PI:"number",SQRT1_2:"number",SQRT2:"number","@@toStringTag":"string",abs:f,acos:f,acosh:f,asin:f,asinh:f,atan:f,atanh:f,atan2:f,cbrt:f,ceil:f,clz32:f,cos:f,cosh:f,exp:f,expm1:f,floor:f,fround:f,hypot:f,imul:f,log:f,log1p:f,log10:f,log2:f,max:f,min:f,pow:f,random:f,round:f,sign:f,sin:f,sinh:f,sqrt:f,tan:f,tanh:f,trunc:f},Date:{"**proto**":"FunctionPrototype",now:f,parse:f,prototype:"DatePrototype",UTC:f},DatePrototype:{constructor:"Date",getDate:f,getDay:f,getFullYear:f,getHours:f,getMilliseconds:f,getMinutes:f,getMonth:f,getSeconds:f,getTime:f,getTimezoneOffset:f,getUTCDate:f,getUTCDay:f,getUTCFullYear:f,getUTCHours:f,getUTCMilliseconds:f,getUTCMinutes:f,getUTCMonth:f,getUTCSeconds:f,setDate:f,setFullYear:f,setHours:f,setMilliseconds:f,setMinutes:f,setMonth:f,setSeconds:f,setTime:f,setUTCDate:f,setUTCFullYear:f,setUTCHours:f,setUTCMilliseconds:f,setUTCMinutes:f,setUTCMonth:f,setUTCSeconds:f,toDateString:f,toISOString:f,toJSON:f,toLocaleDateString:f,toLocaleString:f,toLocaleTimeString:f,toString:f,toTimeString:f,toUTCString:f,valueOf:f,"@@toPrimitive":f,getYear:f,setYear:f,toGMTString:f},String:{"**proto**":"FunctionPrototype",fromCharCode:f,fromCodePoint:f,prototype:"StringPrototype",raw:f},StringPrototype:{length:"number",charAt:f,charCodeAt:f,codePointAt:f,concat:f,constructor:"String",endsWith:f,includes:f,indexOf:f,lastIndexOf:f,localeCompare:f,match:f,matchAll:f,normalize:f,padEnd:f,padStart:f,repeat:f,replace:f,search:f,slice:f,split:f,startsWith:f,substring:f,toLocaleLowerCase:f,toLocaleUpperCase:f,toLowerCase:f,toString:f,toUpperCase:f,trim:f,trimEnd:f,trimStart:f,valueOf:f,"@@iterator":f,substr:f,anchor:f,big:f,blink:f,bold:f,fixed:f,fontcolor:f,fontsize:f,italics:f,link:f,small:f,strike:f,sub:f,sup:f,trimLeft:f,trimRight:f},StringIteratorPrototype:{"**proto**":"IteratorPrototype",next:f,"@@toStringTag":"string"},RegExp:{"**proto**":"FunctionPrototype",prototype:"RegExpPrototype","@@species":g},RegExpPrototype:{constructor:"RegExp",exec:f,dotAll:g,flags:g,global:g,ignoreCase:g,"@@match":f,"@@matchAll":f,multiline:g,"@@replace":f,"@@search":f,source:g,"@@split":f,sticky:g,test:f,toString:f,unicode:g,compile:!1},RegExpStringIteratorPrototype:{"**proto**":"IteratorPrototype",next:f,"@@toStringTag":"string"},Array:{"**proto**":"FunctionPrototype",from:f,isArray:f,of:f,prototype:"ArrayPrototype","@@species":g},ArrayPrototype:{length:"number",concat:f,constructor:"Array",copyWithin:f,entries:f,every:f,fill:f,filter:f,find:f,findIndex:f,flat:f,flatMap:f,forEach:f,includes:f,indexOf:f,join:f,keys:f,lastIndexOf:f,map:f,pop:f,push:f,reduce:f,reduceRight:f,reverse:f,shift:f,slice:f,some:f,sort:f,splice:f,toLocaleString:f,toString:f,unshift:f,values:f,"@@iterator":f,"@@unscopables":{"**proto**":null,copyWithin:"boolean",entries:"boolean",fill:"boolean",find:"boolean",findIndex:"boolean",flat:"boolean",flatMap:"boolean",includes:"boolean",keys:"boolean",values:"boolean"}},ArrayIteratorPrototype:{"**proto**":"IteratorPrototype",next:f,"@@toStringTag":"string"},TypedArray:{"**proto**":"FunctionPrototype",from:f,of:f,prototype:"TypedArrayPrototype","@@species":g},TypedArrayPrototype:{buffer:g,byteLength:g,byteOffset:g,constructor:"TypedArray",copyWithin:f,entries:f,every:f,fill:f,filter:f,find:f,findIndex:f,forEach:f,includes:f,indexOf:f,join:f,keys:f,lastIndexOf:f,length:g,map:f,reduce:f,reduceRight:f,reverse:f,set:f,slice:f,some:f,sort:f,subarray:f,toLocaleString:f,toString:f,values:f,"@@iterator":f,"@@toStringTag":g},BigInt64Array:m("BigInt64ArrayPrototype"),BigUint64Array:m("BigUint64ArrayPrototype"),Float32Array:m("Float32ArrayPrototype"),Float64Array:m("Float64ArrayPrototype"),Int16Array:m("Int16ArrayPrototype"),Int32Array:m("Int32ArrayPrototype"),Int8Array:m("Int8ArrayPrototype"),Uint16Array:m("Uint16ArrayPrototype"),Uint32Array:m("Uint32ArrayPrototype"),Uint8Array:m("Uint8ArrayPrototype"),Uint8ClampedArray:m("Uint8ClampedArrayPrototype"),BigInt64ArrayPrototype:d("BigInt64Array"),BigUint64ArrayPrototype:d("BigUint64Array"),Float32ArrayPrototype:d("Float32Array"),Float64ArrayPrototype:d("Float64Array"),Int16ArrayPrototype:d("Int16Array"),Int32ArrayPrototype:d("Int32Array"),Int8ArrayPrototype:d("Int8Array"),Uint16ArrayPrototype:d("Uint16Array"),Uint32ArrayPrototype:d("Uint32Array"),Uint8ArrayPrototype:d("Uint8Array"),Uint8ClampedArrayPrototype:d("Uint8ClampedArray"),Map:{"**proto**":"FunctionPrototype","@@species":g,prototype:"MapPrototype"},MapPrototype:{clear:f,constructor:"Map",delete:f,entries:f,forEach:f,get:f,has:f,keys:f,set:f,size:g,values:f,"@@iterator":f,"@@toStringTag":"string"},MapIteratorPrototype:{"**proto**":"IteratorPrototype",next:f,"@@toStringTag":"string"},Set:{"**proto**":"FunctionPrototype",prototype:"SetPrototype","@@species":g},SetPrototype:{add:f,clear:f,constructor:"Set",delete:f,entries:f,forEach:f,has:f,keys:f,size:g,values:f,"@@iterator":f,"@@toStringTag":"string"},SetIteratorPrototype:{"**proto**":"IteratorPrototype",next:f,"@@toStringTag":"string"},WeakMap:{"**proto**":"FunctionPrototype",prototype:"WeakMapPrototype"},WeakMapPrototype:{constructor:"WeakMap",delete:f,get:f,has:f,set:f,"@@toStringTag":"string"},WeakSet:{"**proto**":"FunctionPrototype",prototype:"WeakSetPrototype"},WeakSetPrototype:{add:f,constructor:"WeakSet",delete:f,has:f,"@@toStringTag":"string"},ArrayBuffer:{"**proto**":"FunctionPrototype",isView:f,prototype:"ArrayBufferPrototype","@@species":g},ArrayBufferPrototype:{byteLength:g,constructor:"ArrayBuffer",slice:f,"@@toStringTag":"string"},SharedArrayBuffer:!1,DataView:{"**proto**":"FunctionPrototype",prototype:"DataViewPrototype"},DataViewPrototype:{buffer:g,byteLength:g,byteOffset:g,constructor:"DataView",getBigInt64:f,getBigUint64:f,getFloat32:f,getFloat64:f,getInt8:f,getInt16:f,getInt32:f,getUint8:f,getUint16:f,getUint32:f,setBigInt64:f,setBigUint64:f,setFloat32:f,setFloat64:f,setInt8:f,setInt16:f,setInt32:f,setUint8:f,setUint16:f,setUint32:f,"@@toStringTag":"string"},Atomics:!1,JSON:{parse:f,stringify:f,"@@toStringTag":"string"},IteratorPrototype:{"@@iterator":f},AsyncIteratorPrototype:{"@@asyncIterator":f},GeneratorFunction:{"**proto**":"FunctionPrototypeConstructor",name:"string",length:"number",prototype:"Generator"},Generator:{"**proto**":"FunctionPrototype",constructor:"GeneratorFunction",prototype:"GeneratorPrototype"},AsyncGeneratorFunction:{"**proto**":"FunctionPrototypeConstructor",name:"string",length:"number",prototype:"AsyncGenerator"},AsyncGenerator:{"**proto**":"FunctionPrototype",constructor:"AsyncGeneratorFunction",prototype:"AsyncGeneratorPrototype","@@toStringTag":"string"},GeneratorPrototype:{"**proto**":"IteratorPrototype",constructor:"Generator",next:f,return:f,throw:f,"@@toStringTag":"string"},AsyncGeneratorPrototype:{"**proto**":"AsyncIteratorPrototype",constructor:"AsyncGenerator",next:f,return:f,throw:f,"@@toStringTag":"string"},Promise:{"**proto**":"FunctionPrototype",all:f,allSettled:f,prototype:"PromisePrototype",race:f,reject:f,resolve:f,"@@species":g},PromisePrototype:{catch:f,constructor:"Promise",finally:f,then:f,"@@toStringTag":"string"},AsyncFunction:{"**proto**":"FunctionPrototypeConstructor",name:"string",length:"number",prototype:"AsyncFunctionPrototype"},AsyncFunctionPrototype:{"**proto**":"FunctionPrototype",constructor:"AsyncFunction","@@toStringTag":"string"},Reflect:{apply:f,construct:f,defineProperty:f,deleteProperty:f,get:f,getOwnPropertyDescriptor:f,getPrototypeOf:f,has:f,isExtensible:f,ownKeys:f,preventExtensions:f,set:f,setPrototypeOf:f},Proxy:{"**proto**":"FunctionPrototype",revocable:f},escape:f,unescape:f,FunctionPrototypeConstructor:{"**proto**":"FunctionPrototype",length:"number",prototype:"FunctionPrototype"},Compartment:{"**proto**":"FunctionPrototype",prototype:"CompartmentPrototype"},CompartmentPrototype:{constructor:"Compartment",evaluate:f,global:g},harden:f};const{getPrototypeOf:A,getOwnPropertyDescriptor:E}=Object,{apply:S,ownKeys:w}=Reflect,I=(t=>(e,...r)=>S(t,e,r))(Object.prototype.hasOwnProperty);function T(t,e){if("string"==typeof e)return e;if("symbol"==typeof e)return`@@${e.toString().slice(14,-1)}`;throw new TypeError(`Unexpected property name type ${t} ${e}`)}function F(t){const e=["undefined","boolean","number","string","symbol"];function r(r,o,n,i){if("object"==typeof i)return a(r,o,i),!0;if(!1===i)return!1;if("string"==typeof i)if("prototype"===n||"constructor"===n){if(I(t,i))return o===t[i]}else if(e.includes(i))return typeof o===i;throw new TypeError(`Unexpected whitelist permit ${r}`)}function o(t,e,o,n){const a=E(e,o);return I(a,"value")?r(t,a.value,o,n):r(`${t}<get>`,a.get,o,n.get)&&r(`${t}<set>`,a.set,o,n.set)}function n(t,e){return I(t,e)?t[e]:"FunctionPrototype"===t["**proto**"]&&I(u,e)?u[e]:void 0}function a(e,r,a){!function(e,r,o){const n=A(r);if(null!==n||null!==o){if(void 0!==o&&"string"!=typeof o)throw new TypeError(`Malformed whitelist permit ${e}.__proto__`);if(n!==t[o||"ObjectPrototype"])throw new Error(`Unexpected intrinsic ${e}.__proto__`)}}(e,r,a["**proto**"]);for(const t of w(r)){if("__proto__"===t)continue;const i=T(e,t),c=`${e}.${i}`,s=n(a,i);s&&o(c,r,t,s)||delete r[t]}}a("intrinsics",t,h)}const{defineProperties:_,getPrototypeOf:v,setPrototypeOf:O}=Object;const{defineProperties:U}=Object;const{defineProperties:x,setPrototypeOf:R}=Object,C=[EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError];const{defineProperties:k}=Object;const{defineProperties:M,getOwnPropertyDescriptor:j}=Object;const G=!0;var N={ObjectPrototype:"*",ArrayPrototype:"*",FunctionPrototype:{constructor:G,bind:G,name:G,toString:G},ErrorPrototype:{constructor:G,message:G,name:G,toString:G},TypeErrorPrototype:{constructor:G,name:G},PromisePrototype:{constructor:G},TypedArrayPrototype:"*",Generator:{constructor:G,name:G,toString:G},IteratorPrototype:"*"};const{defineProperties:$,getOwnPropertyNames:D,getOwnPropertyDescriptor:B,getOwnPropertyDescriptors:L}=Object,{ownKeys:W}=Reflect;function V(t){return null!==t&&"object"==typeof t}const{assign:z,freeze:Y,defineProperties:J,getOwnPropertyDescriptor:H,getOwnPropertyNames:K,getPrototypeOf:Q,setPrototypeOf:X,prototype:q}=Object,{apply:Z,get:tt,set:et}=Reflect,{isArray:rt,prototype:ot}=Array,{revocable:nt}=Proxy,{prototype:at}=RegExp,{prototype:it}=String,{prototype:ct}=WeakMap,st=t=>(e,...r)=>Z(t,e,r),pt=st(q.hasOwnProperty),yt=(st(ot.filter),st(ot.join)),lt=(st(ot.push),st(ot.pop)),ut=st(ot.includes),ft=st(at.test),gt=(st(it.match),st(it.search)),Pt=st(it.slice),bt=st(it.split),mt=(st(ct.get),st(ct.set),st(ct.has),t=>tt(Q(t),"constructor")),dt=Y({__proto__:null});function ht(t,e){const r=`please report internal shim error: ${t}`;throw console.error(r),e&&(console.error(`${e}`),console.error(`${e.stack}`)),TypeError(r)}function At(t,e){t||ht(e)}const Et=["await","break","case","catch","class","const","continue","debugger","default","delete","do","else","export","extends","finally","for","function","if","import","in","instanceof","new","return","super","switch","this","throw","try","typeof","var","void","while","with","yield","let","static","enum","implements","package","protected","interface","private","public","await","null","true","false","this","arguments"],St=new RegExp("^[a-zA-Z_$][\\w$]*$");function wt(t){return"eval"!==t&&!ut(Et,t)&&ft(St,t)}function It(t,e){const r=H(t,e);return(!1===r.configurable&&!1===r.writable&&pt(r,"value"))}const Tt=new Proxy(dt,{get(t,e){ht(`unexpected scope handler trap called: ${String(e)}`)}});function Ft(t,e){const r=gt(t,e);return r<0?-1:bt(Pt(t,0,r),"\n").length}const _t=new RegExp("(?:\x3c!--|--\x3e)");const vt=new RegExp("\\bimport\\s*(?:\\(|/[/*])");const Ot=new RegExp("\\beval\\s*(?:\\(|/[/*])");const Ut={rewrite:t=>(function(t){const e=Ft(t,_t);if(e<0)return t;throw new SyntaxError(`possible html comment syntax rejected around line ${e}`)}(t.src),function(t){const e=Ft(t,vt);if(e<0)return t;throw new SyntaxError(`possible import expression rejected around line ${e}`)}(t.src),function(t){const e=Ft(t,Ot);if(e<0)return t;throw new SyntaxError(`possible direct eval expression rejected around line ${e}`)}(t.src),t)};function xt(t,e=[]){const r=function(t){return 0===t.length?"":`const {${yt(t,",")}} = this;`}(e);return t.intrinsics.Function(`\n with (this) {\n ${r}\n return function() {\n 'use strict';\n return eval(arguments[0]);\n };\n }\n `)}function Rt(t,e,r,o={},{localTransforms:n=[],globalTransforms:a=[],sloppyGlobalsMode:i=!1}={}){let c={src:e,endowments:o};c=function(t,e){for(const r of e)"function"==typeof r.rewrite&&(t=r.rewrite(t));return t}(c,[...n,...a,Ut]);const s=function(t,e,r={},{sloppyGlobalsMode:o=!1}={}){return{__proto__:Tt,useUnsafeEvaluator:!1,get(o,n){if("symbol"!=typeof n)return"eval"===n&&!0===this.useUnsafeEvaluator?(this.useUnsafeEvaluator=!1,t.intrinsics.eval):n in r?tt(r,n,e):tt(e,n)},set(t,o,n){if(o in r){return"value"in H(r,o)?et(r,o,n):et(r,o,n,e)}return et(e,o,n)},has:(t,n)=>!!(o||"eval"===n||n in r||n in e||n in globalThis),getPrototypeOf:()=>null}}(t,r,c.endowments,{sloppyGlobalsMode:i}),p=nt(dt,s),y=xt(t,function(t,e={}){const r=K(t),o=K(e),n=o.filter(t=>wt(t)&&It(e,t));return[...r.filter(e=>!o.includes(e)&&wt(e)&&It(t,e)),...n]}(r,c.endowments)),l=Z(y,p.proxy,[]);let u;s.useUnsafeEvaluator=!0;try{return Z(l,r,[c.src])}catch(t){throw u=t,t}finally{!0===s.useUnsafeEvaluator&&(ht("handler did not revoke useUnsafeEvaluator",u),p.revoke())}}const Ct=(t,e,r={})=>{const o=o=>"string"!=typeof o?o:Rt(t,o,e,{},r);return J(o,{toString:{value:()=>"function eval() { [native code] }",writable:!1,enumerable:!1,configurable:!0}}),At(mt(o)!==Function,"eval constructor is Function"),At(mt(o)!==t.intrinsics.Function,"eval contructions is %Function%"),o};function kt(t,e,r={}){const o=function(o){const n=`${lt(arguments)||""}`,a=`${yt(arguments,",")}`;new t.intrinsics.Function(a,n);const i=`(function anonymous(${a}\n) {\n${n}\n})`;return Rt(t,i,e,{},r)};return J(o,{prototype:{value:t.intrinsics.Function.prototype,writable:!1,enumerable:!1,configurable:!1},toString:{value:()=>"function Function() { [native code] }",writable:!1,enumerable:!1,configurable:!0}}),At(Q(Function)===Function.prototype),At(Q(o)===Function.prototype),At(mt(o)!==Function),At(mt(o)!==t.intrinsics.Function),o}const Mt=["eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","Array","ArrayBuffer","Boolean","DataView","Date","Error","EvalError","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Number","Object","Promise","Proxy","RangeError","ReferenceError","RegExp","Set","String","Symbol","SyntaxError","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakMap","WeakSet","JSON","Math","Reflect","escape","unescape","globalThis","Compartment","harden"];const{getOwnPropertyDescriptor:jt}=Object,Gt=["eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","Array","ArrayBuffer","Boolean","DataView","Date","Error","EvalError","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Number","Object","Promise","Proxy","RangeError","ReferenceError","RegExp","Set","String","Symbol","SyntaxError","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakMap","WeakSet","JSON","Math","Reflect","escape","unescape","globalThis","Compartment","harden"];let Nt;function $t(){if(Nt)return Nt;const t=function(){const t={__proto__:null};for(const e of Gt){const r=jt(globalThis,e);if(r){if("get"in r||"set"in r)throw new TypeError(`Unexpected accessor on global property: ${e}`);t[e]=r.value}}return t}();return Nt={__proto__:null,intrinsics:t},Y(Nt)}const Dt=new WeakMap;class Bt{constructor(t,e,r={}){const{transforms:o=[]}=r,n=[...o],a=function(t,{globalTransforms:e}){const r={},o={Infinity:{value:1/0,enumerable:!1},NaN:{value:NaN,enumerable:!1},undefined:{value:void 0,enumerable:!1}};for(const n of Mt){if(!pt(t.intrinsics,n))continue;let a;switch(n){case"eval":a=Ct(t,r,{globalTransforms:e});break;case"Function":a=kt(t,r,{globalTransforms:e});break;case"globalThis":a=r;break;default:a=t.intrinsics[n]}o[n]={value:a,configurable:!0,writable:!0,enumerable:!1}}return J(r,o),At(r.eval!==t.intrinsics.eval,"eval on global object"),At(r.Function!==t.intrinsics.Function,"Function on global object"),r}($t(),{globalTransforms:n});z(a,t),Dt.set(this,{globalTransforms:n,globalObject:a})}get global(){return Dt.get(this).globalObject}evaluate(t,e={}){if("string"!=typeof t)throw new TypeError("first argument of evaluate() must be a string");const{endowments:r={},transforms:o=[],sloppyGlobalsMode:n=!1}=e,a=[...o],{globalTransforms:i,globalObject:c}=Dt.get(this);return Rt($t(),t,c,r,{globalTransforms:i,localTransforms:a,sloppyGlobalsMode:n})}toString(){return"[object Compartment]"}static toString(){return"function Compartment() { [shim code] }"}}let Lt;function Wt(t,e){if(!t)throw new TypeError(e)}t.lockdown=function(t={}){const{noTameDate:e=!1,noTameError:r=!1,noTameMath:o=!1,noTameRegExp:n=!1,registerOnly:a=!1,...i}=t,c=Object.keys(i);Wt(0===c.length,`lockdown(): non supported option ${c.join(", ")}`);const s={noTameDate:e,noTameError:r,noTameMath:o,noTameRegExp:n,registerOnly:a};if(Lt)return Object.keys(s).forEach(t=>{Wt(s[t]===Lt[t],`lockdown(): cannot re-invoke with different option ${t}`)}),!1;Lt=s,function(){try{(0,Function.prototype.constructor)("return 1")}catch(t){return}function t(t,e){let r;try{r=(0,eval)(e)}catch(t){if(t instanceof SyntaxError)return;throw t}const o=v(r),n=function(){throw new TypeError("Not available")};_(n,{name:{value:t,writable:!1,enumerable:!1,configurable:!0},toString:{value:()=>`function ${t}() { [native code] }`,writable:!1,enumerable:!1,configurable:!0}}),_(o,{constructor:{value:n}}),_(n,{prototype:{value:o}}),n!==Function.prototype.constructor&&O(n,Function.prototype.constructor)}t("Function","(function(){})"),t("GeneratorFunction","(function*(){})"),t("AsyncFunction","(async function(){})"),t("AsyncGeneratorFunction","(async function*(){})")}(),function(t=!1){if(t)return;const e=Date,r=function(...t){return void 0===new.target?"Invalid Date":(0===t.length&&(t=[NaN]),Reflect.construct(e,t,new.target))},o={now:()=>NaN,toLocaleString(){throw new TypeError("Object.prototype.toLocaleString is disabled")}},n=e.prototype;U(r,{length:{value:7},prototype:{value:n,writable:!1,enumerable:!1,configurable:!1},now:{value:o.now,writable:!0,enumerable:!1,configurable:!0},parse:{value:Date.parse,writable:!0,enumerable:!1,configurable:!0},UTC:{value:Date.UTC,writable:!0,enumerable:!1,configurable:!0}}),U(n,{constructor:{value:r},toLocaleString:{value:o.toLocaleString}}),globalThis.Date=r,U(Object.prototype,{toLocaleString:{value:o.toLocaleString}})}(e),function(t=!1){const e=Error,r=function(...t){return void 0===new.target?e(...t):Reflect.construct(e,t,new.target)},o={captureStackTrace(r,o){t&&e.captureStackTrace?e.captureStackTrace(r,o):Reflect.set(r,"stack","")}},n=e.prototype;x(r,{length:{value:1},prototype:{value:n,writable:!1,enumerable:!1,configurable:!1},captureStackTrace:{value:o.captureStackTrace,writable:!0,enumerable:!1,configurable:!0},stackTraceLimit:{get:()=>t&&e.stackTraceLimit?e.stackTraceLimit:0,set(r){t&&e.stackTraceLimit&&(e.stackTraceLimit=r)},enumerable:!1,configurable:!0}}),x(n,{constructor:{value:r}});for(const t of C)R(t,r);globalThis.Error=r}(r),function(t=!1){if(t)return;k(Math,{random:{value:{random(){throw TypeError("Math.random() is disabled")}}.random}})}(o),function(t=!1){if(t)return;const e=RegExp,r=function(...t){return void 0===new.target?e(...t):Reflect.construct(e,t,new.target)},o=e.prototype;M(r,{length:{value:2},prototype:{value:o,writable:!1,enumerable:!1,configurable:!1},[Symbol.species]:j(e,Symbol.species)}),delete o.compile,M(o,{constructor:{value:r}}),globalThis.RegExp=r}(n);const p=function(t,e={}){const{freeze:r,getOwnPropertyDescriptors:o,getPrototypeOf:n}=Object,{ownKeys:a}=Reflect;let{fringeSet:i}=e;if(i){if("function"!=typeof i.add||"function"!=typeof i.has)throw new TypeError("options.fringeSet must have add() and has() methods");if(t)for(const e of t)i.add(e)}else i=new WeakSet(t);const c=e&&e.naivePrepareObject,{harden:s}={harden(t){const e=new Set,s=new Map,p=new WeakMap;function y(t,r){if(Object(t)!==t)return;const o=typeof t;if("object"!==o&&"function"!==o)throw new TypeError(`Unexpected typeof: ${o}`);i.has(t)||e.has(t)||(e.add(t),p.set(t,r))}function l(t){c&&c(t),r(t);const e=n(t),i=o(t),l=p.get(t)||"unknown";null===e||s.has(e)||(s.set(e,l),p.set(e,`${l}.__proto__`)),a(i).forEach(t=>{const e=`${l}.${String(t)}`,r=i[t];"value"in r?y(r.value,`${e}`):(y(r.get,`${e}(get)`),y(r.set,`${e}(set)`))})}return y(t),e.forEach(l),s.forEach((t,r)=>{if(!e.has(r)&&!i.has(r)){let e;try{e=`prototype ${r} of ${t} is not already in the fringeSet`}catch(o){e="a prototype of something is not already in the fringeset (and .toString failed)";try{console.log(e),console.log("the prototype:",r),console.log("of something:",t)}catch(t){}}throw new TypeError(e)}}),e.forEach(i.add,i),t}};return s}();Object.defineProperties(globalThis,{harden:{value:p,configurable:!0,writable:!0,enumerable:!1},Compartment:{value:Bt,configurable:!0,writable:!0,enumerable:!1}});const y=l();F(y),function(){try{(0,Object.prototype.__lookupGetter__)("x")}catch(t){return}const{defineProperty:t,defineProperties:e,getOwnPropertyDescriptor:r,getPrototypeOf:o,prototype:n}=Object;function a(t){if(null==t)throw new TypeError("can't convert undefined or null to object");return Object(t)}function i(t){return"symbol"==typeof t?t:`${t}`}function c(t,e){if("function"!=typeof t)throw TypeError(`invalid ${e} usage`);return t}e(n,{__defineGetter__:{value:function(e,r){const o=a(this);t(o,e,{get:c(r,"getter"),enumerable:!0,configurable:!0})}},__defineSetter__:{value:function(e,r){const o=a(this);t(o,e,{set:c(r,"setter"),enumerable:!0,configurable:!0})}},__lookupGetter__:{value:function(t){let e,n=a(this);for(t=i(t);n&&!(e=r(n,t));)n=o(n);return e&&e.get}},__lookupSetter__:{value:function(t){let e,n=a(this);for(t=i(t);n&&!(e=r(n,t));)n=o(n);return e&&e.set}}})}();const u=function(t){const e={};function r(t,r,o,n){if("value"in n&&n.configurable){const{value:a}=n;e[t]=a,$(r,{[o]:{get:function(){return a},set:function(e){if(r===this)throw new TypeError(`Cannot assign to read only property '${o}' of '${t}'`);hasOwnProperty.call(this,o)?this[o]=e:$(this,{[o]:{value:e,writable:!0,enumerable:n.enumerable,configurable:n.configurable}})},enumerable:n.enumerable,configurable:n.configurable}})}}function o(t,e,o){const n=B(e,o);n&&r(t,e,o,n)}function n(t,e){const o=L(e);o&&W(o).forEach(n=>r(t,e,n,o[n]))}return function t(e,r,a){for(const i of D(a)){const c=B(r,i);if(!c||c.get||c.set)continue;const s=`${e}.${i}`,p=a[i];if(!0===p)o(s,r,i);else if("*"===p)n(s,c.value);else{if(!V(p))throw new TypeError(`Unexpected override enablement plan ${s}`);t(s,c.value,p)}}}("root",t,N),e}(y);return p(y,a),p(u,a),!0},Object.defineProperty(t,"__esModule",{value:!0})})); |
{ | ||
"name": "ses", | ||
"version": "0.7.5", | ||
"version": "0.7.6", | ||
"description": "Secure ECMAScript", | ||
@@ -5,0 +5,0 @@ "author": "Agoric", |
/** | ||
* intrinsicNames | ||
* The following list contains all intrisics names as defined in the specs, except | ||
* that the leading an trailing '%' characters have been removed. We want to design | ||
* from the specs so we can better track changes to the specs. | ||
* The following list contains all intrisics names as defined in the specs, | ||
* except that the leading and trailing '%' characters have been removed. We | ||
* want to design from the specs so we can better track changes to the specs. | ||
*/ | ||
@@ -7,0 +7,0 @@ export const intrinsicNames = [ |
@@ -15,2 +15,8 @@ // Copyright (C) 2018 Agoric | ||
// TODO The following eslint-disable comment causes a "yarn lint" | ||
// in packages/ses to complain that its disbaling something that isn't | ||
// reported. However, removing it causes a "yarn lint" at the root | ||
// under CI to complain of an import/no-unresolved. CI is more important, | ||
// so we currently choose to appease it. | ||
// eslint-disable-next-line import/no-unresolved | ||
@@ -85,21 +91,9 @@ import makeHardener from '@agoric/make-hardener'; | ||
*/ | ||
tameFunctionConstructors(); | ||
if (!noTameDate) { | ||
tameGlobalDateObject(); | ||
} | ||
tameGlobalDateObject(noTameDate); | ||
tameGlobalErrorObject(noTameError); | ||
tameGlobalMathObject(noTameMath); | ||
tameGlobalRegExpObject(noTameRegExp); | ||
if (!noTameError) { | ||
tameGlobalErrorObject(); | ||
} | ||
if (!noTameMath) { | ||
tameGlobalMathObject(); | ||
} | ||
if (!noTameRegExp) { | ||
tameGlobalRegExpObject(); | ||
} | ||
/** | ||
@@ -106,0 +100,0 @@ * 2. SHIM to expose the proposed APIs. |
@@ -0,4 +1,6 @@ | ||
const { defineProperties, getPrototypeOf, setPrototypeOf } = Object; | ||
// This module replaces the original `Function` constructor, and the original | ||
// `%GeneratorFunction%`, `%AsyncFunction%` and `%AsyncGeneratorFunction%`, with | ||
// safe replacements that throw if invoked. | ||
// `%GeneratorFunction%`, `%AsyncFunction%` and `%AsyncGeneratorFunction%`, | ||
// with safe replacements that throw if invoked. | ||
// | ||
@@ -9,12 +11,13 @@ // These are all reachable via syntax, so it isn't sufficient to just | ||
// | ||
// After modules block is done, the originals must no longer be reachable, unless | ||
// a copy has been made, and funtions can only be created by syntax (using eval) | ||
// or by invoking a previously saved reference to the originals. | ||
// After modules block is done, the originals must no longer be reachable, | ||
// unless a copy has been made, and functions can only be created by syntax | ||
// (using eval) or by invoking a previously saved reference to the originals. | ||
// | ||
// Typically, this module will not be used directly, but via the [lockdown-shim] which handles all necessary repairs and taming in SES. | ||
// Typically, this module will not be used directly, but via the | ||
// [lockdown - shim] which handles all necessary repairs and taming in SES. | ||
// | ||
// Relation to ECMA specifications | ||
// | ||
// The taming of constructors really wants to be part of the standard, because new | ||
// constructors may be added in the future, reachable from syntax, and this | ||
// The taming of constructors really wants to be part of the standard, because | ||
// new constructors may be added in the future, reachable from syntax, and this | ||
// list must be updated to match. | ||
@@ -46,4 +49,2 @@ // | ||
const { defineProperties, getPrototypeOf, setPrototypeOf } = Object; | ||
/** | ||
@@ -105,4 +106,4 @@ * The process to repair constructors: | ||
// This line ensures that all functions meet "instanceof Function" in | ||
// a give realm. | ||
// Reconstructs the inheritance among the new tamed constructors | ||
// to mirror the original specified in normal JS. | ||
if (constructor !== Function.prototype.constructor) { | ||
@@ -114,4 +115,4 @@ setPrototypeOf(constructor, Function.prototype.constructor); | ||
// Here, the order of operation is important: Function needs to be repaired | ||
// first since the other repaired constructors need to inherit from the tamed | ||
// Function function constructor. | ||
// first since the other repaired constructors need to inherit from the | ||
// tamed Function function constructor. | ||
@@ -118,0 +119,0 @@ repairFunction('Function', '(function(){})'); |
@@ -1,64 +0,41 @@ | ||
const { defineProperties, getOwnPropertyDescriptors } = Object; | ||
const { defineProperties } = Object; | ||
export default function tameGlobalDateObject() { | ||
// Tame the %Date% and %DatePrototype% intrinsic. | ||
export default function tameGlobalDateObject(noTameDate = false) { | ||
if (noTameDate) { | ||
return; | ||
} | ||
// Use a concise method to obtain a named function without constructor. | ||
const DateStatic = { | ||
now() { | ||
return NaN; | ||
}, | ||
}; | ||
Date.now = DateStatic.now; | ||
const unsafeDate = Date; | ||
// Use a concise method to obtain a named function without constructor. | ||
const DatePrototype = { | ||
toLocaleString() { | ||
return NaN; | ||
}, | ||
}; | ||
// eslint-disable-next-line no-extend-native | ||
Date.prototype.toLocaleString = DatePrototype.toLocaleString; | ||
// Date(anything) gives a string with the current time | ||
// new Date(x) coerces x into a number and then returns a Date | ||
// new Date() returns the current time, as a Date object | ||
// new Date(undefined) returns a Date object which stringifies to 'Invalid Date' | ||
// Capture the original constructor. | ||
const unsafeDate = Date; // TODO freeze | ||
// Tame the Date constructor. | ||
const tamedDate = function Date() { | ||
// Common behavior | ||
// * new Date(x) coerces x into a number and then returns a Date | ||
// for that number of millis since the epoch | ||
// * new Date(NaN) returns a Date object which stringifies to | ||
// 'Invalid Date' | ||
// * new Date(undefined) returns a Date object which stringifies to | ||
// 'Invalid Date' | ||
// unsafeDate (normal standard) behavior | ||
// * Date(anything) gives a string with the current time | ||
// * new Date() returns the current time, as a Date object | ||
// tamedDate behavior | ||
// * Date(anything) returned 'Invalid Date' | ||
// * new Date() returns a Date object which stringifies to | ||
// 'Invalid Date' | ||
const tamedDate = function Date(...rest) { | ||
if (new.target === undefined) { | ||
// We were not called as a constructor | ||
// this would normally return a string with the current time | ||
return 'Invalid Date'; | ||
} | ||
// constructor behavior: if we get arguments, we can safely pass them through | ||
if (arguments.length > 0) { | ||
// eslint-disable-next-line prefer-rest-params | ||
return Reflect.construct(unsafeDate, arguments, new.target); | ||
// todo: test that our constructor can still be subclassed | ||
if (rest.length === 0) { | ||
rest = [NaN]; | ||
} | ||
// SES fix: no arguments: return a Date object, but invalid value. | ||
return Reflect.construct(unsafeDate, [NaN], new.target); | ||
// todo: test that our constructor can still be subclassed | ||
return Reflect.construct(unsafeDate, rest, new.target); | ||
}; | ||
// Copy static properties. | ||
const dateDescs = getOwnPropertyDescriptors(unsafeDate); | ||
defineProperties(tamedDate, dateDescs); | ||
// Copy prototype properties. | ||
const datePrototypeDescs = getOwnPropertyDescriptors(unsafeDate.prototype); | ||
datePrototypeDescs.constructor.value = tamedDate; | ||
defineProperties(tamedDate.prototype, datePrototypeDescs); | ||
// Done with Date constructor | ||
globalThis.Date = tamedDate; | ||
// Tame the %ObjectPrototype% intrinsic. | ||
// Use a concise method to obtain a named function without constructor. | ||
const ObjectPrototype = { | ||
// Use concise methods to obtain named functions without constructors. | ||
const tamedMethods = { | ||
now() { | ||
return NaN; | ||
}, | ||
toLocaleString() { | ||
@@ -69,4 +46,41 @@ throw new TypeError('Object.prototype.toLocaleString is disabled'); | ||
// eslint-disable-next-line no-extend-native | ||
Object.prototype.toLocaleString = ObjectPrototype.toLocaleString; | ||
const DatePrototype = unsafeDate.prototype; | ||
defineProperties(tamedDate, { | ||
length: { value: 7 }, | ||
prototype: { | ||
value: DatePrototype, | ||
writable: false, | ||
enumerable: false, | ||
configurable: false, | ||
}, | ||
now: { | ||
value: tamedMethods.now, | ||
writable: true, | ||
enumerable: false, | ||
configurable: true, | ||
}, | ||
parse: { | ||
value: Date.parse, | ||
writable: true, | ||
enumerable: false, | ||
configurable: true, | ||
}, | ||
UTC: { | ||
value: Date.UTC, | ||
writable: true, | ||
enumerable: false, | ||
configurable: true, | ||
}, | ||
}); | ||
defineProperties(DatePrototype, { | ||
constructor: { value: tamedDate }, | ||
toLocaleString: { value: tamedMethods.toLocaleString }, | ||
}); | ||
globalThis.Date = tamedDate; | ||
// Why is this repair here? | ||
defineProperties(Object.prototype, { | ||
toLocaleString: { value: tamedMethods.toLocaleString }, | ||
}); | ||
} |
@@ -1,16 +0,94 @@ | ||
const { getOwnPropertyDescriptor } = Object; | ||
const { defineProperties, setPrototypeOf } = Object; | ||
export default function tameGlobalErrorObject() { | ||
// Tame static properties. | ||
delete Error.captureStackTrace; | ||
// TODO where should this go? | ||
export const NativeErrors = [ | ||
EvalError, | ||
RangeError, | ||
ReferenceError, | ||
SyntaxError, | ||
TypeError, | ||
URIError, | ||
]; | ||
if (getOwnPropertyDescriptor(Error, 'captureStackTrace')) { | ||
throw Error('Cannot remove Error.captureStackTrace'); | ||
} | ||
export default function tameGlobalErrorObject(noTameError = false) { | ||
const unsafeError = Error; | ||
delete Error.stackTraceLimit; | ||
const tamedError = function Error(...rest) { | ||
if (new.target === undefined) { | ||
return unsafeError(...rest); | ||
} | ||
return Reflect.construct(unsafeError, rest, new.target); | ||
}; | ||
if (getOwnPropertyDescriptor(Error, 'stackTraceLimit')) { | ||
throw Error('Cannot remove Error.stackTraceLimit'); | ||
// Use concise methods to obtain named functions without constructors. | ||
const tamedMethods = { | ||
captureStackTrace(error, optFn = undefined) { | ||
if (noTameError && unsafeError.captureStackTrace) { | ||
// unsafeError.captureStackTrace is only on v8 | ||
unsafeError.captureStackTrace(error, optFn); | ||
return; | ||
} | ||
Reflect.set(error, 'stack', ''); | ||
}, | ||
}; | ||
const ErrorPrototype = unsafeError.prototype; | ||
defineProperties(tamedError, { | ||
length: { value: 1 }, | ||
prototype: { | ||
value: ErrorPrototype, | ||
writable: false, | ||
enumerable: false, | ||
configurable: false, | ||
}, | ||
captureStackTrace: { | ||
value: tamedMethods.captureStackTrace, | ||
writable: true, | ||
enumerable: false, | ||
configurable: true, | ||
}, | ||
stackTraceLimit: { | ||
get() { | ||
if (noTameError && unsafeError.stackTraceLimit) { | ||
// unsafeError.stackTraceLimit is only on v8 | ||
return unsafeError.stackTraceLimit; | ||
} | ||
return 0; | ||
}, | ||
set(newLimit) { | ||
if (noTameError && unsafeError.stackTraceLimit) { | ||
// unsafeError.stackTraceLimit is only on v8 | ||
unsafeError.stackTraceLimit = newLimit; | ||
// We place the useless return on the next line to ensure | ||
// that anything we place after the if in the future only | ||
// happens if the then-case does not. | ||
// eslint-disable-next-line no-useless-return | ||
return; | ||
} | ||
}, | ||
// WTF on v8 stackTraceLimit is enumerable | ||
enumerable: false, | ||
configurable: true, | ||
}, | ||
}); | ||
defineProperties(ErrorPrototype, { | ||
constructor: { value: tamedError }, | ||
/* TODO | ||
stack: { | ||
get() { | ||
return ''; | ||
}, | ||
set(_) { | ||
// ignore | ||
}, | ||
}, | ||
*/ | ||
}); | ||
for (const NativeError of NativeErrors) { | ||
setPrototypeOf(NativeError, tamedError); | ||
} | ||
globalThis.Error = tamedError; | ||
} |
@@ -1,6 +0,11 @@ | ||
export default function tameGlobalMathObject() { | ||
const { defineProperties } = Object; | ||
export default function tameGlobalMathObject(noTameMath = false) { | ||
if (noTameMath) { | ||
return; | ||
} | ||
// Tame the %Math% intrinsic. | ||
// Use a concise method to obtain a named function without constructor. | ||
const MathStatic = { | ||
// Use concise methods to obtain named functions without constructors. | ||
const tamedMethods = { | ||
random() { | ||
@@ -11,3 +16,5 @@ throw TypeError('Math.random() is disabled'); | ||
Math.random = MathStatic.random; | ||
defineProperties(Math, { | ||
random: { value: tamedMethods.random }, | ||
}); | ||
} |
@@ -1,35 +0,36 @@ | ||
const { | ||
defineProperties, | ||
getOwnPropertyDescriptors, | ||
getOwnPropertyDescriptor, | ||
} = Object; | ||
const { defineProperties, getOwnPropertyDescriptor } = Object; | ||
export default function tameGlobalRegExpObject() { | ||
// Tame the %RegExp% intrinsic. | ||
export default function tameGlobalRegExpObject(noTameRegExp = false) { | ||
if (noTameRegExp) { | ||
return; | ||
} | ||
delete RegExp.prototype.compile; | ||
const unsafeRegExp = RegExp; | ||
// Capture the original constructor. | ||
const unsafeRegExp = RegExp; // TODO freeze | ||
// RegExp has non-writable static properties we need to remove. | ||
// Tame RegExp constructor. | ||
// RegExp has non-writable static properties we need to omit. | ||
const tamedRegExp = function RegExp(...rest) { | ||
if (new.target) { | ||
return Reflect.construct(unsafeRegExp, rest, new.target); | ||
if (new.target === undefined) { | ||
return unsafeRegExp(...rest); | ||
} | ||
return unsafeRegExp(...rest); | ||
return Reflect.construct(unsafeRegExp, rest, new.target); | ||
}; | ||
// Whitelist static properties. | ||
const desc = getOwnPropertyDescriptor(unsafeRegExp, Symbol.species); | ||
defineProperties(tamedRegExp, Symbol.species, desc); | ||
const RegExpPrototype = unsafeRegExp.prototype; | ||
defineProperties(tamedRegExp, { | ||
length: { value: 2 }, | ||
prototype: { | ||
value: RegExpPrototype, | ||
writable: false, | ||
enumerable: false, | ||
configurable: false, | ||
}, | ||
[Symbol.species]: getOwnPropertyDescriptor(unsafeRegExp, Symbol.species), | ||
}); | ||
// Copy prototype properties. | ||
const prototypeDescs = getOwnPropertyDescriptors(unsafeRegExp.prototype); | ||
prototypeDescs.constructor.value = tamedRegExp; | ||
defineProperties(tamedRegExp.prototype, prototypeDescs); | ||
delete RegExpPrototype.compile; | ||
defineProperties(RegExpPrototype, { | ||
constructor: { value: tamedRegExp }, | ||
}); | ||
// Done with RegExp constructor. | ||
globalThis.RegExp = tamedRegExp; | ||
} |
@@ -33,3 +33,3 @@ // Copyright (C) 2011 Google Inc. | ||
// 1. The indicators "maybeAccessor" and "\*" are replace with more explicit | ||
// mapping. This memoved the implicit recursive structure. | ||
// mapping. This removed the implicit recursive structure. | ||
// | ||
@@ -41,10 +41,10 @@ // 2. Instead, the `prototype`, `__proto__`, and `constructor` must be | ||
// | ||
// 3. The whitelist defines all prototypoe properties `\*Prototype` as top | ||
// 3. The whitelist defines all prototype properties `\*Prototype` as top | ||
// level entries. This creates a much more maintainable two level map, which is | ||
// closer to how the languare is spefified. | ||
// | ||
// 4. The indicator `true` has been removed. Instead, the map value must the | ||
// 4. The indicator `true` has been removed. Instead, the map value must be the | ||
// name of a primitive for type-checking (for example, `Error.stackTraceLimit` | ||
// leads to 'number'), the name of an intrinsic (for example, | ||
// `ErrorPrototype.constructor` leads to 'Error'), or a internal constant (for | ||
// `ErrorPrototype.constructor` leads to 'Error'), or an internal constant (for | ||
// example, `eval` leads to `fn` which is an alias for `FunctionInstance`, a | ||
@@ -223,3 +223,6 @@ // record that whitelist all properties on allows on such instance). | ||
// console.log(`Removing ${subPath}`); | ||
// console.log( | ||
// `Removing ${subPath}`, | ||
// Object.getOwnPropertyDescriptor(obj, prop), | ||
// ); | ||
delete obj[prop]; | ||
@@ -226,0 +229,0 @@ } |
@@ -21,11 +21,6 @@ /** | ||
* <li>A string value equal to a primitive ("number", "string", etc), | ||
* in which case the property whitelisted if its value property | ||
* is of the given type. For example, {@code "Infinity"} leads to | ||
* in which case the property is whitelisted if its value property | ||
* is typeof the given type. For example, {@code "Infinity"} leads to | ||
* "number" and property values that fail {@code typeof "number"}. | ||
* are removed. | ||
* <li>A string value equal to a primitive ("number", "string", etc), | ||
* in which case the property whitelisted if its value property | ||
* is of the given type. For example, {@code "Infinity"} leads to | ||
* "number" and the property is remove if its property value | ||
* fails {@code typeof "number"}. | ||
* <li>A string value equal to an intinsic name ("ObjectPrototype", | ||
@@ -41,3 +36,3 @@ * "Array", etc), in which case the property whitelisted if its | ||
* leads to another record explaining what properties {@code | ||
* "Object"} may have and how each such property. | ||
* "Object"} may have and how each such property should be treated. | ||
* | ||
@@ -49,3 +44,3 @@ * <p>Notes: | ||
* <li>Constants "fn" and "getter" are used to keep the structure DRY. | ||
* <li>Symbol properties are listed using the @@name form. | ||
* <li>Symbol properties are listed using the "@@name" form. | ||
*/ | ||
@@ -75,3 +70,3 @@ | ||
// Possible but not encpintered in the specs | ||
// Possible but not encountered in the specs | ||
// const setter = { | ||
@@ -82,2 +77,7 @@ // get: 'undefined', | ||
const accessor = { | ||
get: fn, | ||
set: fn, | ||
}; | ||
// 19.5.6 NativeError Object Structure | ||
@@ -110,4 +110,4 @@ function NativeError(prototype) { | ||
name: 'string', | ||
// TODO: not mentioned. | ||
toString: fn, | ||
// Redundantly present only on v8. Safe to remove. | ||
toString: false, | ||
}; | ||
@@ -149,6 +149,6 @@ } | ||
// The intrinsics object has not prototype to avoid conflicts. | ||
// The intrinsics object has no prototype to avoid conflicts. | ||
'**proto**': null, | ||
// 9.2.4.1% ThrowTypeError% | ||
// 9.2.4.1 %ThrowTypeError% | ||
ThrowTypeError: fn, | ||
@@ -260,3 +260,3 @@ | ||
// B.2.2.1 Object.prototype.__proto__ | ||
// '**proto**': accessors, | ||
// '**proto**': accessor, // TODO(markm) | ||
// B.2.2.2 Object.prototype.__defineGetter__ | ||
@@ -374,6 +374,6 @@ __defineGetter__: fn, | ||
prototype: 'ErrorPrototype', | ||
// Non standard | ||
// Non standard, v8 only, used by tap | ||
captureStackTrace: fn, | ||
// Non standard | ||
stackTraceLimit: 'number', | ||
// Non standard, v8 only, used by tap | ||
stackTraceLimit: accessor, | ||
}, | ||
@@ -390,2 +390,4 @@ | ||
toString: fn, | ||
// proposed de-facto, assumed TODO | ||
// stack: accessor, | ||
}, | ||
@@ -972,2 +974,3 @@ | ||
// 22.1.3.34 Array.prototype [ @@unscopables ] | ||
// TODO what? | ||
'@@unscopables': { | ||
@@ -974,0 +977,0 @@ '**proto**': null, |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
578935
15648