MCPcopy Create free account
hub / github.com/OpenEndedGroup/Field2 / inject

Method inject

src/main/java/fieldnashorn/TernSupport.java:39–96  ·  view source on GitHub ↗
(ScriptEngine engine)

Source from the content-addressed store, hash-verified

37 }
38
39 public void inject(ScriptEngine engine) {
40
41 this.engine = engine;
42 List<String> s = Arrays.asList("acorn.js", "acorn_loose.js", "walk.js", "signal.js", "tern.js", "def" +
43 ".js", "comment.js", "infer.js" /*"condense.js"*/);
44// List<String> s = Arrays.asList("all-tern.js");
45
46 Collection<File> f = s.stream()
47// .map(x -> new File(fieldagent.Main.app + "/modules/fieldcore/resources/tern/" + x))
48 .map(x -> new File(fieldagent.Main.app + "/lib/web/tern/" + x))
49 .collect(Collectors.toList());
50
51 Log.log("bindings", () -> "global scope bindings :" + engine.getContext()
52 .getBindings(ScriptContext.GLOBAL_SCOPE)
53 .keySet());
54 Log.log("bindings", () -> "engine scope bindings :" + engine.getContext()
55 .getBindings(ScriptContext.ENGINE_SCOPE)
56 .keySet());
57
58 try {
59 engine.eval("__fieldglobal.self = {}");
60 engine.eval("__fieldglobal.self.tern = {}");
61 engine.eval("__fieldglobal.self.acorn= {}");
62 engine.eval("__fieldglobal.self.infer= {}");
63 engine.eval("__fieldglobal.tern = {}");
64 engine.eval("self = __fieldglobal.self");
65 engine.eval("tern = __fieldglobal.tern");
66 } catch (ScriptException e) {
67 e.printStackTrace();
68 }
69
70 new Thread(() -> {
71
72 for (File ff : f) {
73 try (FileReader fr = new FileReader(ff.getAbsolutePath())) {
74 engine.put("__FILE__", ff.getName());
75 engine.eval(fr);
76 } catch (ScriptException e) {
77 e.printStackTrace();
78 } catch (FileNotFoundException e) {
79 e.printStackTrace();
80 } catch (IOException e) {
81 e.printStackTrace();
82 }
83 }
84
85 try {
86// engine.put("__ecma5json", readFile(fieldagent.Main.app +
87// "/modules/fieldcore/resources/tern/ecmascript.json"));
88 engine.put("__ecma5json", readFile(fieldagent.Main.app + "/lib/web/tern/ecmascript" +
89 ".json"));
90 engine.eval("self.ternServer=new self.tern.Server({defs: [JSON.parse(__ecma5json)]})");
91 engine.eval("delete __ecma5json");
92 } catch (ScriptException e) {
93 e.printStackTrace();
94 }
95 }).start();
96 }

Callers 1

NashornMethod · 0.45

Calls 11

logMethod · 0.95
readFileMethod · 0.95
asListMethod · 0.80
collectMethod · 0.80
getContextMethod · 0.80
evalMethod · 0.80
mapMethod · 0.45
streamMethod · 0.45
startMethod · 0.45
putMethod · 0.45
getNameMethod · 0.45

Tested by

no test coverage detected