Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

control flow flattening with class declaration producing runtime error #171

Closed
sanex3339 opened this issue Jan 13, 2018 · 1 comment
Closed

Comments

@sanex3339
Copy link
Member

Following code will produce runtime error after obfuscation:

(function(){
    class Test1 {
        foo () {
            var that = this;
            
            console.log(that.foo + '');
        }
    }
    
    class Test2 {
        bar () {
            var that = this;
            
            console.log(that.bar + '');
        }
    }

    console.log(new Test1().foo());
    console.log(new Test2().bar());
})();

Control flow flattening will wrap all statements into switch-case statement, but ClassDeclaration node scope is CaseStatement, so in other CaseStatement this class will undefined

@sanex3339
Copy link
Member Author

out in javascript-obfuscator@0.14.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant