assemblyscript/tests/browser-asc.js

84 lines
2.1 KiB
JavaScript
Raw Normal View History

const asc = require("../dist/asc.js");
if (typeof asc.definitionFiles.assembly !== "string") throw Error("missing bundled assembly.d.ts");
if (typeof asc.definitionFiles.portable !== "string") throw Error("missing bundled portable.d.ts");
2018-06-14 15:57:04 +02:00
const stdout = asc.createMemoryStream();
const stderr = asc.createMemoryStream();
2018-04-04 14:39:40 +02:00
const files = { "module.ts": `import "allocator/arena";` };
2018-06-14 15:57:04 +02:00
console.log("# asc --version");
asc.main([
"--version"
], {
stdout: stdout,
stderr: stderr
}, err => {
console.log(">>> STDOUT >>>");
process.stdout.write(stdout.toString());
stdout.reset();
console.log(">>> STDERR >>>");
process.stdout.write(stderr.toString());
stderr.reset();
});
console.log("\n# asc --help");
asc.main([
"--help"
], {
stdout: stdout,
stderr: stderr
}, err => {
console.log(">>> STDOUT >>>");
process.stdout.write(stdout.toString());
stdout.reset();
console.log(">>> STDERR >>>");
process.stdout.write(stderr.toString());
stderr.reset();
});
console.log("\n# asc module.ts --textFile");
asc.main([
2018-04-04 14:39:40 +02:00
"module.ts",
"--textFile"
], {
stdout: stdout,
stderr: stderr,
readFile: (name, baseDir) => {
console.log("readFile: " + name + ", baseDir=" + baseDir);
2018-04-04 14:39:40 +02:00
if (files.hasOwnProperty(name)) return files[name];
return null;
},
writeFile: (name, data, baseDir) => {
console.log("writeFile: " + name + ", baseDir=" + baseDir);
},
listFiles: (dirname, baseDir) => {
console.log("listFiles: " + dirname + ", baseDir=" + baseDir);
return [];
}
}, err => {
if (err) {
console.log(">>> THROWN >>>");
console.log(err);
}
});
2018-04-04 14:39:40 +02:00
console.log(">>> STDOUT >>>");
process.stdout.write(stdout.toString());
console.log(">>> STDERR >>>");
process.stdout.write(stderr.toString());
console.log("\n# asc.compileString");
const output = asc.compileString(`import "allocator/arena";`, { optimizeLevel: 2 });
2018-04-04 14:39:40 +02:00
console.log(">>> .stdout >>>");
process.stdout.write(output.stdout.toString());
console.log(">>> .stderr >>>");
process.stdout.write(output.stderr.toString());
console.log(">>> .text >>>");
process.stdout.write(output.text);
console.log(">>> .binary >>> " + output.binary.length + " bytes");