e:n})}catch{}var r=["toString","toLocaleString","valueOf","constructor","prototype"];function o(t){let{context:n,property:c,propertiesToExclude:a=[],skipPrototype:l=!1,hardenPrototypePropertiesToExclude:u=[]}=t;if(!c)return new Error("property is required");let s=(n||globalThis)[c],p={},f=i(n,c);s&&("object"==typeof s||"function"==typeof s)&&Reflect.ownKeys(s).forEach(t=>{if(!a.includes(t)&&!r.includes(t)){let r=i(s,t);if(r&&(r.writable||r.configurable)){let{value:o,get:n,set:i,enumerable:c=!1}=r,a={};void 0!==o?a.value=o:n?a.get=n:i&&(a.set=i);try{let r=e({context:s,property:t,...a,enumerable:c});p[t]=r}catch(e){if(!(e instanceof TypeError))throw e;try{p[t]=r.value||r.get||r.set}catch{}}}}});let d={originalObject:s,originalProperties:p};if(!l&&void 0!==s?.prototype){let e=o({context:s,property:"prototype",propertiesToExclude:u,skipPrototype:!0});e instanceof Error||(d.originalPrototype=e?.originalObject,d.originalPrototypeProperties=e?.originalProperties)}return e({context:n,property:c,value:s,enumerable:f?.enumerable}),d}function n(t,r){let o=(r||globalThis)[t],n=i(r||globalThis,t);return o&&n&&(n.writable||n.configurable)?(Object.freeze(o),e({context:globalThis,property:t,value:o})):o}function i(e,t){if(e&&t)try{return Reflect.getOwnPropertyDescriptor(e,t)}catch{return}}function c(e){if("string"!=typeof e)return e;try{return decodeURIComponent(e).toLowerCase().trim()}catch{return e.toLowerCase().trim()}}function a(e,t){return e instanceof Headers?e.forEach((r,o)=>{l(o,t)||e.delete(o)}):Object.keys(e).forEach(r=>{l(r,t)||delete e[r]}),e}function l(e,t){return!t.has(c(e)||"")}function u(e,t){let r=!0,o=function(e){let t,r;if(globalThis.Request&&e instanceof Request)t=e.url;else{if("function"!=typeof e?.toString)throw new Error("Unsupported type for url");t=e.toString()}try{return new URL(t).pathname}catch{return r=t.replace(/#.+/gi,"").split("?").shift(),r.startsWith("/")?r:`/${r}`}}(e),n=c(o);return n&&t.some(e=>n.includes(e))&&(r=!1),r}function s(t,r,o){let n=fetch,i=XMLHttpRequest,c=new Set(r);function s(){let e=new i,r=e.open,n=e.setRequestHeader;return e.open=function(){let n=Array.from(arguments),i=n[1];if(n.length<2||u(i,t))return r.apply(e,n);throw new Error(o||`Request not allowed for path ${i}`)},e.setRequestHeader=function(t,r){l(decodeURIComponent(t),c)&&n.call(e,t,r)},e}return e({property:"fetch",value:function(){let e=function(e,t){return globalThis.Request&&e[0]instanceof Request&&e[0]?.headers?a(e[0].headers,t):e[1]?.headers&&a(e[1].headers,t),e}(arguments,c);return u(arguments[0],t)?n.apply(globalThis,Array.from(e)):new Promise((e,t)=>{t(new Error(o||`Request not allowed for path ${arguments[0]}`))})},enumerable:!0}),e({property:"XMLHttpRequest",value:s,enumerable:!0}),Object.keys(i).forEach(e=>{s[e]=i[e]}),{fetch:n,XMLHttpRequest:i}}var p=["TextEncoder","TextDecoder","XMLHttpRequestEventTarget","EventTarget","URL","JSON","Reflect","Object","Array","Map","Set","WeakMap","WeakSet","Promise","Symbol","Error"],f=["addEventListener","removeEventListener","dispatchEvent","encodeURI","encodeURIComponent","decodeURI","decodeURIComponent"];const d=function(){let t=globalThis.open,r=document.open;function o(e,r,o){let n="string"!=typeof e,i=t.call(window,e,r,o);return n||e&&function(e){return e.startsWith("//")&&/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/g.test(`${location.protocol}:${e}`)&&(e=`${location.protocol}${e}`),!e.startsWith("http")||new URL(e).hostname===location.hostname}(e)?{}:i}return e({property:"open",value:o,context:globalThis,enumerable:!0}),e({property:"open",value:function(e,t,n){return e?o(e,t,n):r.call(document,e||"",t||"",n||"")},context:document,enumerable:!0}),{open:t,documentOpen:r}},y=function(){let t=document.createElement,r=Element.prototype.setAttribute,o=Element.prototype.setAttributeNS;return e({property:"createElement",context:document,value:function(n,i){let a=t.call(document,n,i);if("iframe"===c(n)){e({property:"srcdoc",context:a,get:()=>"",set:()=>{console.warn("`srcdoc` is not allowed in iframe elements.")}});let t=function(e,t){"srcdoc"!==e.toLowerCase()?r.call(a,e,t):console.warn("`srcdoc` attribute is not allowed to be set.")},n=function(e,t,r){"srcdoc"!==t.toLowerCase()?o.call(a,e,t,r):console.warn("`srcdoc` attribute is not allowed to be set.")};a.setAttribute=t,a.setAttributeNS=n}return a},enumerable:!0}),{createElement:t,setAttribute:r,setAttributeNS:o}},b=["client-binding"],m=["/_api/v1/access-tokens","/_api/v2/dynamicmodel","/_api/one-app-session-web/v3/businesses"],h=function(){let t=setTimeout,r=setInterval;return o("setTimeout",0,globalThis),o("setInterval",0,globalThis),{setTimeout:t,setInterval:r};function o(t,r,o){let n=o||globalThis,i=n[t];if(!i||"function"!=typeof i)throw new Error(`Function ${t} not found or is not a function`);e({property:t,value:function(){let e=Array.from(arguments);if("string"!=typeof e[r])return i.apply(n,e);console.warn(`Calling ${t} with a String Argument at index ${r} is not allowed`)},context:o,enumerable:!0})}},v=function(){if(navigator&&"serviceWorker"in navigator){let t=navigator.serviceWorker.register;return e({context:navigator.serviceWorker,property:"register",value:function(){console.log("Service worker registration is not allowed")},enumerable:!0}),{register:t}}return{}};performance.mark("overrideGlobals started");const{experiments:g}=window.viewerModel,w=g["specs.thunderbolt.securityExperiments"];try{d(),w&&y(),g["specs.thunderbolt.hardenFetchAndXHR"]&&w&&s(m,b),v(),(e=>{let t=[],r=[];r=r.concat(["TextEncoder","TextDecoder"]),e&&(r=r.concat(["XMLHttpRequestEventTarget","EventTarget"])),r=r.concat(["URL","JSON"]),e&&(t=t.concat(["addEventListener","removeEventListener"])),t=t.concat(["encodeURI","encodeURIComponent","decodeURI","decodeURIComponent"]),r=r.concat(["String","Number"]),e&&r.push("Object"),r=r.concat(["Reflect"]),t.forEach(e=>{n(e),["addEventListener","removeEventListener"].includes(e)&&n(e,document)}),r.forEach(e=>{o({property:e})})})(w),w&&h()}catch(e){window?.viewerModel?.mode.debug&&console.error(e);const t=new Error("TB006");window.fedops?.reportError(t,"security_overrideGlobals"),window.Sentry?window.Sentry.captureException(t):globalThis.defineStrictProperty("sentryBuffer",[t],window,!1)}performance.mark("overrideGlobals ended")})(); //# sourceMappingURL=https://static.parastorage.com/services/wix-thunderbolt/dist/overrideGlobals.inline.20d8d2ea.bundle.min.js.map Home | Invasian Magazine
top of page
Invasian-web-submission7-bg.jpg

INVASIAN NEXT ISSUE IS NOW OPEN FOR SUBMISSION

Maybe available at:

CHINA

400ml

Still Writin'

SINGAPORE

RCSLS

Boon Baked

ISSUE #6

Invasian Magazine 10 Year Anniversary Issue is restocked.

Limited amount of copies! Each comes with freebies ——  1UP Invasian fridge magnet, a blank A5 "Scratchy Sticker" and other random gift(s). This is one of our best issues, if you miss this 10 Year Anniversary Issue you may have to wait for another 10 years! 10 Years 1 Love!

10 different items is (or are) inserted randomly in the magazine.

You will get at least one of those or more. Take a photo of what you got and share to us by tagging @invasianmagazine on Instagram.

* Sold out

   DJ Wesley | Shanghai 2010 | Shanghai, CN | 2010   

   Photo by Friendly : )

WELCOME BACK

Subscribe

©2026 by Invasian Magazine. Powered by you and us. Certificate No. 56202214-000-04-24-4

bottom of page