import jdk.nashorn.api.scripting.NashornScriptEngineFactory;

import javax.script.Compilable;
import javax.script.ScriptException;

public class Main {
    public static void main(String[] args) throws ScriptException {
        var brokenScript = String.join("\n",
                "function fn() {",
                "const object1 = { 'name': 'Pepa' };",
                "print(object1.name);",
                "const descriptor1 = Object.getOwnPropertyDescriptor(object1, 'name');",
                "print(descriptor1.configurable);",
                "print(eval('3+1'));",
                "}",
                "fn();"
        );
        var factory = new NashornScriptEngineFactory();
        var engine = (Compilable) factory.getScriptEngine("--no-deprecation-warning", "--language=es6", "--log=compiler:finest,fields,recompile:fine");
        var script = engine.compile(brokenScript);
        script.eval();
    }
} 