1.1 --- a/boot-truffle/src/main/java/net/java/html/boot/truffle/TrufflePresenter.java Thu Jul 21 10:20:52 2016 +0200
1.2 +++ b/boot-truffle/src/main/java/net/java/html/boot/truffle/TrufflePresenter.java Thu Jul 21 10:23:46 2016 +0200
1.3 @@ -95,11 +95,9 @@
1.4 sb.append("(function() {\n");
1.5 sb.append(" return function(");
1.6 String sep = "";
1.7 - if (names != null) {
1.8 - for (String n : names) {
1.9 - sb.append(sep).append(n);
1.10 - sep = ",";
1.11 - }
1.12 + for (String n : names) {
1.13 + sb.append(sep).append(n);
1.14 + sep = ",";
1.15 }
1.16 sb.append(") {\n");
1.17 sb.append(code);
1.18 @@ -119,7 +117,10 @@
1.19
1.20 @Override
1.21 public void loadScript(Reader code) throws Exception {
1.22 - Source src = Source.fromReader(code, "unknown.js");
1.23 + Source src = Source.newBuilder(code).
1.24 + name("unknown.js").
1.25 + mimeType("text/javascript").
1.26 + build();
1.27 getEval().eval(src.getCode());
1.28 }
1.29
1.30 @@ -179,6 +180,7 @@
1.31
1.32 class Wrap implements Runnable {
1.33
1.34 + @Override
1.35 public void run() {
1.36 try (Closeable c = Fn.activate(TrufflePresenter.this)) {
1.37 command.run();
1.38 @@ -200,7 +202,9 @@
1.39 try {
1.40 PolyglotEngine engine = PolyglotEngine.newBuilder().build();
1.41 TruffleObject fn = (TruffleObject) engine.eval(
1.42 - Source.fromText("eval.bind(this)", "eval.js").withMimeType("text/javascript")
1.43 + Source.newBuilder("eval.bind(this)").
1.44 + mimeType("text/javascript").
1.45 + name("eval.js").build()
1.46 ).get();
1.47 eval = JavaInterop.asJavaFunction(Eval.class, fn);
1.48 } catch (IOException ex) {
1.49 @@ -228,20 +232,17 @@
1.50 private class FnImpl extends Fn {
1.51
1.52 private final CallTarget fn;
1.53 - private final boolean[] keepAlive;
1.54
1.55 public FnImpl(Presenter presenter, TruffleObject fn, int arity) {
1.56 super(presenter);
1.57 this.fn = Truffle.getRuntime().createCallTarget(new FnRootNode(fn, arity));
1.58 - this.keepAlive = null;
1.59 }
1.60
1.61 @Override
1.62 public Object invoke(Object thiz, Object... args) throws Exception {
1.63 List<Object> all = new ArrayList<>(args.length + 1);
1.64 all.add(thiz == null ? fn : toJavaScript(thiz));
1.65 - for (int i = 0; i < args.length; i++) {
1.66 - Object conv = args[i];
1.67 + for (Object conv : args) {
1.68 conv = toJavaScript(conv);
1.69 all.add(conv);
1.70 }