- Notifications
You must be signed in to change notification settings - Fork37
Open
Labels
Description
First at all, sorry for my english, i will try to explain it as better as possible.
I have the following js code:
exportconstPainter=function(elements,data){lettitle=elements.title;letcontainer=elements.container;this.prePaint=()=>{};this.paint=()=>{};this.postPaint=()=>{};letfinalPaint=()=>{this.prePaint=()=>{};this.paint=()=>{};this.postPaint=()=>{};createPromise();};letcreatePromise=()=>{returnnewPromise((resolve,reject)=>{this.paint=()=>{resolve()}}).then(()=>{this.prePaint(elements,data);title.innerHTML=data.title;container.innerHTML=data.html;this.postPaint(elements,data);finalPaint();});}createPromise();};
When i obfuscate this code, it seems like this (it was minimized and formatted by the browser):
5:[function(a,b,c){"use strict";Object[_0x56ae("0x6")](c,_0x56ae("0x6e"),{value:!0});c[_0x56ae("0xb5")]=function(a,b){varc=this,d=a[_0x56ae("0xb6")],e=a[_0x56ae("0xb7")];this.prePaint=function(){}//// THIS LINE,this[_0x56ae("0xb8")]=function(){},this[_0x56ae("0xb9")]=function(){};varf=function(){c[_0x56ae("0xba")]=function(){},c.paint=function(){}///// THIS LINE TOO,c.postPaint=function(){}///// AND THIS LINE TOO,g()},g=function(){returnnewPromise(function(a){c.paint=function(){a()}})[_0x56ae("0x24")](function(){c[_0x56ae("0xba")](a,b),d.innerHTML=b[_0x56ae("0xb6")],e.innerHTML=b[_0x56ae("0x34")],c.postPaint(a,b),f()})};g()}},{}]
You can see, how the fisrt this.prePaint has not transformed to this[_0x56ae("0xba")] and when this is called, it said undefined function.
But if i insert breaklines between all this "problematic" lines, it work. Like this:
exportconstPainter=function(elements,data){lettitle=elements.title;letcontainer=elements.container;this.prePaint=()=>{};this.paint=()=>{};this.postPaint=()=>{};letfinalPaint=()=>{this.prePaint=()=>{};this.paint=()=>{};this.postPaint=()=>{};createPromise();};letcreatePromise=()=>{returnnewPromise((resolve,reject)=>{this.paint=()=>{resolve()}}).then(()=>{this.prePaint(elements,data);title.innerHTML=data.title;container.innerHTML=data.html;this.postPaint(elements,data);finalPaint();});}createPromise();};
I did fix this issue with this partial solution, but i don't know where more places of my code, will appear the same issue.
Thank you