use of jdk.nashorn.api.scripting.NashornScriptEngine in project java8-tutorial by winterbe.
the class Nashorn8 method main.
public static void main(String[] args) throws ScriptException, NoSuchMethodException {
NashornScriptEngine engine = (NashornScriptEngine) new ScriptEngineManager().getEngineByName("nashorn");
engine.eval("load('res/nashorn8.js')");
// [object global]
engine.invokeFunction("evaluate1");
// [object Object]
engine.invokeFunction("evaluate2");
// Foobar
engine.invokeFunction("evaluate3", "Foobar");
// [object global] <- ???????
engine.invokeFunction("evaluate3", new Person("John", "Doe"));
}
use of jdk.nashorn.api.scripting.NashornScriptEngine in project java8-tutorial by winterbe.
the class Nashorn11 method test7.
private static void test7() throws ScriptException {
NashornScriptEngine engine = createEngine();
engine.eval("var foo = 23;");
ScriptContext defaultContext = engine.getContext();
Bindings defaultBindings = defaultContext.getBindings(ScriptContext.ENGINE_SCOPE);
SimpleScriptContext context1 = new SimpleScriptContext();
context1.setBindings(defaultBindings, ScriptContext.ENGINE_SCOPE);
SimpleScriptContext context2 = new SimpleScriptContext();
context2.getBindings(ScriptContext.ENGINE_SCOPE).put("foo", defaultBindings.get("foo"));
engine.eval("foo = 44;", context1);
engine.eval("print(foo);", context1);
engine.eval("print(foo);", context2);
}
use of jdk.nashorn.api.scripting.NashornScriptEngine in project java8-tutorial by winterbe.
the class Nashorn11 method test8.
private static void test8() throws ScriptException {
NashornScriptEngine engine = createEngine();
engine.eval("var obj = { foo: 23 };");
ScriptContext defaultContext = engine.getContext();
Bindings defaultBindings = defaultContext.getBindings(ScriptContext.ENGINE_SCOPE);
SimpleScriptContext context1 = new SimpleScriptContext();
context1.setBindings(defaultBindings, ScriptContext.ENGINE_SCOPE);
SimpleScriptContext context2 = new SimpleScriptContext();
context2.getBindings(ScriptContext.ENGINE_SCOPE).put("obj", defaultBindings.get("obj"));
engine.eval("obj.foo = 44;", context1);
engine.eval("print(obj.foo);", context1);
engine.eval("print(obj.foo);", context2);
}
use of jdk.nashorn.api.scripting.NashornScriptEngine in project java8-tutorial by winterbe.
the class Nashorn11 method test4.
private static void test4() throws ScriptException {
NashornScriptEngine engine = createEngine();
engine.eval("function foo() { print('bar') };");
ScriptContext defaultContext = engine.getContext();
Bindings defaultBindings = defaultContext.getBindings(ScriptContext.ENGINE_SCOPE);
SimpleScriptContext context = new SimpleScriptContext();
context.setBindings(defaultBindings, ScriptContext.ENGINE_SCOPE);
engine.eval("foo();", context);
System.out.println(context.getAttribute("foo"));
}
use of jdk.nashorn.api.scripting.NashornScriptEngine in project java8-tutorial by winterbe.
the class Nashorn11 method test5.
private static void test5() throws ScriptException {
NashornScriptEngine engine = createEngine();
engine.eval("var obj = { foo: 'foo' };");
engine.eval("function printFoo() { print(obj.foo) };");
ScriptContext defaultContext = engine.getContext();
Bindings defaultBindings = defaultContext.getBindings(ScriptContext.ENGINE_SCOPE);
SimpleScriptContext context1 = new SimpleScriptContext();
context1.setBindings(defaultBindings, ScriptContext.ENGINE_SCOPE);
SimpleScriptContext context2 = new SimpleScriptContext();
context2.setBindings(defaultBindings, ScriptContext.ENGINE_SCOPE);
engine.eval("obj.foo = 'bar';", context1);
engine.eval("printFoo();", context1);
engine.eval("printFoo();", context2);
}
Aggregations