summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cli/rt/41_prompt.js12
-rw-r--r--core/bindings.rs3
2 files changed, 9 insertions, 6 deletions
diff --git a/cli/rt/41_prompt.js b/cli/rt/41_prompt.js
index 0adc6081a..ec294668b 100644
--- a/cli/rt/41_prompt.js
+++ b/cli/rt/41_prompt.js
@@ -1,18 +1,18 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
((window) => {
- const { stdin, stdout } = window.__bootstrap.files;
+ const { stdin } = window.__bootstrap.files;
const { isatty } = window.__bootstrap.tty;
const LF = "\n".charCodeAt(0);
const CR = "\r".charCodeAt(0);
- const encoder = new TextEncoder();
const decoder = new TextDecoder();
+ const core = window.Deno.core;
function alert(message = "Alert") {
if (!isatty(stdin.rid)) {
return;
}
- stdout.writeSync(encoder.encode(`${message} [Enter] `));
+ core.print(`${message} [Enter] `, false);
readLineFromStdinSync();
}
@@ -22,7 +22,7 @@
return false;
}
- stdout.writeSync(encoder.encode(`${message} [y/N] `));
+ core.print(`${message} [y/N] `, false);
const answer = readLineFromStdinSync();
@@ -36,10 +36,10 @@
return null;
}
- stdout.writeSync(encoder.encode(`${message} `));
+ core.print(`${message} `, false);
if (defaultValue) {
- stdout.writeSync(encoder.encode(`[${defaultValue}] `));
+ core.print(`[${defaultValue}] `, false);
}
return readLineFromStdinSync() || defaultValue;
diff --git a/core/bindings.rs b/core/bindings.rs
index 4b2c39881..47dadf422 100644
--- a/core/bindings.rs
+++ b/core/bindings.rs
@@ -11,6 +11,7 @@ use futures::future::FutureExt;
use rusty_v8 as v8;
use std::cell::Cell;
use std::convert::TryFrom;
+use std::io::{stdout, Write};
use std::option::Option;
use url::Url;
use v8::MapFnTo;
@@ -352,8 +353,10 @@ fn print(
};
if is_err {
eprint!("{}", str_.to_rust_string_lossy(tc_scope));
+ stdout().flush().unwrap();
} else {
print!("{}", str_.to_rust_string_lossy(tc_scope));
+ stdout().flush().unwrap();
}
}