c9-core/node_modules/treehugger/lib/demo.js

49 wiersze
1.4 KiB
JavaScript
Czysty Zwykły widok Historia

2015-02-10 19:41:24 +00:00
require({
baseUrl: "lib"
2016-02-08 07:31:35 +00:00
}, ["treehugger/tree", "treehugger/traverse", "treehugger/js/parse",
2015-06-26 06:44:46 +00:00
"acorn/dist/acorn", "acorn/dist/acorn_loose", "acorn/dist/walk"
2016-02-08 07:31:35 +00:00
], function(tree, traverse, parsejs, acorn, acorn_loose) {
var $ = document.querySelector.bind(document);
window.acorn_loose = acorn_loose;
2015-02-10 19:41:24 +00:00
2016-02-08 07:31:35 +00:00
if (localStorage.trehuggerJsVal)
$("#code").value = localStorage.trehuggerJsVal;
if (localStorage.trehuggerAnalysisVal)
$("#analysis").value = localStorage.trehuggerAnalysisVal;
window.onbeforeunload = function() {
localStorage.trehuggerJsVal = $("#code").value;
localStorage.trehuggerAnalysisVal = $("#analysis").value;
};
2015-02-10 19:41:24 +00:00
function log(message) {
2016-02-08 07:31:35 +00:00
$("#output").value = $("#output").value + message + "\n";
2015-02-10 19:41:24 +00:00
}
function exec() {
2016-02-08 07:31:35 +00:00
var js = $("#code").value;
var analysisJs = $("#analysis").value;
$("#output").value = "";
2015-02-10 19:41:24 +00:00
try {
2016-02-08 07:31:35 +00:00
var t = performance.now();
var ast = parsejs.parse(js);
t -= performance.now();
$("#ast").value = t + "\n" + ast.toPrettyString();
2015-02-10 19:41:24 +00:00
eval(analysisJs);
} catch(e) {
2016-02-08 07:31:35 +00:00
$("#output").value = "JS Error \n\t" + (e.stack || e.message);
console.log(e)
2015-02-10 19:41:24 +00:00
}
}
tree.Node.prototype.log = function() {
2016-02-08 07:31:35 +00:00
$("#output").value = this.toPrettyString();
2015-02-10 19:41:24 +00:00
}
2015-06-26 06:44:46 +00:00
2016-02-08 07:31:35 +00:00
$("#code").addEventListener("input", exec);
$("#runbutton").addEventListener("click", exec);
2015-06-26 06:44:46 +00:00
exec();
2015-02-10 19:41:24 +00:00
});