summaryrefslogtreecommitdiff
path: root/js/os.ts
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2018-08-01 15:56:27 -0400
committerRyan Dahl <ry@tinyclouds.org>2018-08-03 22:41:59 -0400
commit60f6067cf9f8eeff10d5d9642e468bd3e9ad03b7 (patch)
tree86b5a038c2f783854823435897f6913021cb69c7 /js/os.ts
parentd15d334c24c515758db3a5438c167913f1fc5ffb (diff)
Implement os.exit
Diffstat (limited to 'js/os.ts')
-rw-r--r--js/os.ts19
1 files changed, 11 insertions, 8 deletions
diff --git a/js/os.ts b/js/os.ts
index 3f71c0e64..3344d1a51 100644
--- a/js/os.ts
+++ b/js/os.ts
@@ -5,14 +5,17 @@ import { assert } from "./util";
import * as util from "./util";
import { flatbuffers } from "flatbuffers";
-export function exit(exitCode = 0): void {
- assert(false, "Not Implemented");
- /*
- pubInternal("os", {
- command: fbs.Command.EXIT,
- exitCode
- });
- */
+export function exit(exitCode = 0): never {
+ const builder = new flatbuffers.Builder();
+ fbs.Exit.startExit(builder);
+ fbs.Exit.addCode(builder, exitCode);
+ const msg = fbs.Exit.endExit(builder);
+ fbs.Base.startBase(builder);
+ fbs.Base.addMsg(builder, msg);
+ fbs.Base.addMsgType(builder, fbs.Any.Exit);
+ builder.finish(fbs.Base.endBase(builder));
+ deno.send(builder.asUint8Array());
+ throw Error("Unreachable");
}
export function codeFetch(