Search code examples
javascriptfirefoxevales6-class

Using eval method to get class from string in Firefox


What I tried (which works in chrome)

var class_str = "class Test {};";
var a = eval(class_str);
console.log(new a());

Raises following error in Firefox 46:

TypeError: a is not a constructor

a is undefined and using new A() returns ReferenceError: A is not defined.

What is different on Firefox?


Solution

  • Putting the whole class string in parentheses works.

    Fixed code:

    var class_str = "(class Test {})";
    var a = eval(class_str);
    console.log(new a());