From 60f6067cf9f8eeff10d5d9642e468bd3e9ad03b7 Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Wed, 1 Aug 2018 15:56:27 -0400 Subject: Implement os.exit --- js/os.ts | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'js/os.ts') 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( -- cgit v1.2.3