From 240ca25617bb57e4071193dbc040ab03a27f3a6c Mon Sep 17 00:00:00 2001 From: Sergey Golovin Date: Tue, 29 Jan 2019 22:41:12 +0300 Subject: Add repl functions "help" and "exit" (#1563) --- js/repl.ts | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'js/repl.ts') diff --git a/js/repl.ts b/js/repl.ts index 4fae31eab..6fb395e1b 100644 --- a/js/repl.ts +++ b/js/repl.ts @@ -10,6 +10,24 @@ import { globalEval } from "./global_eval"; const window = globalEval("this"); +const helpMsg = [ + "exit Exit the REPL", + "help Print this help message" +].join("\n"); + +const replCommands = { + exit: { + get() { + exit(0); + } + }, + help: { + get() { + return helpMsg; + } + } +}; + function startRepl(historyFile: string): number { const builder = flatbuffers.createBuilder(); const historyFile_ = builder.createString(historyFile); @@ -54,6 +72,7 @@ export async function readline(rid: number, prompt: string): Promise { // @internal export async function replLoop(): Promise { window.deno = deno; // FIXME use a new scope (rather than window). + Object.defineProperties(window, replCommands); const historyFile = "deno_history.txt"; const rid = startRepl(historyFile); @@ -69,11 +88,6 @@ export async function replLoop(): Promise { console.error(err); exit(1); } - if (!code) { - continue; - } else if (code.trim() === ".exit") { - break; - } evaluate(code); } -- cgit v1.2.3