diff options
author | Kevin (Kun) "Kassimo" Qian <kevinkassimo@gmail.com> | 2018-09-25 01:27:02 -0400 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2018-09-25 01:27:02 -0400 |
commit | f156a86024fc98e63f42c1c7acccac0af10950ef (patch) | |
tree | c024ecd75f5574e412eba937b1a46d8a0232e234 /libdeno/binding.cc | |
parent | ad5065e23ec33af1422eeffdbb877ef8fd5f6da4 (diff) |
console.warn goes to stderr (#810)
Diffstat (limited to 'libdeno/binding.cc')
-rw-r--r-- | libdeno/binding.cc | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/libdeno/binding.cc b/libdeno/binding.cc index bc155b6db..b3c59c3ec 100644 --- a/libdeno/binding.cc +++ b/libdeno/binding.cc @@ -141,13 +141,19 @@ void ExitOnPromiseRejectCallback( } void Print(const v8::FunctionCallbackInfo<v8::Value>& args) { - CHECK_EQ(args.Length(), 1); + CHECK_GE(args.Length(), 1); + CHECK_LE(args.Length(), 2); auto* isolate = args.GetIsolate(); + Deno* d = static_cast<Deno*>(isolate->GetData(0)); + auto context = d->context.Get(d->isolate); v8::HandleScope handle_scope(isolate); v8::String::Utf8Value str(isolate, args[0]); + bool is_err = + args.Length() >= 2 ? args[1]->BooleanValue(context).ToChecked() : false; const char* cstr = ToCString(str); - printf("%s\n", cstr); - fflush(stdout); + auto stream = is_err ? stderr : stdout; + fprintf(stream, "%s\n", cstr); + fflush(stream); } static v8::Local<v8::Uint8Array> ImportBuf(v8::Isolate* isolate, deno_buf buf) { |