fs = require 'fs'
path = require 'path'
+# Redirect node's console to use our own implementations, since node can not
+# handle output when running as GUI program.
+if process.platform is 'win32'
+ console.log = console.error = console.warn = process.log
+ process.stdout.write = process.stderr.write = process.log
+
# Enable idle gc.
process.atomBinding('idle_gc').start()
node::SetMethod(process, "atomBinding", Binding);
node::SetMethod(process, "crash", Crash);
node::SetMethod(process, "activateUvLoop", ActivateUVLoop);
+ node::SetMethod(process, "log", Log);
}
// static
return v8::Undefined();
}
+// static
+v8::Handle<v8::Value> AtomBindings::Log(const v8::Arguments& args) {
+ std::string message;
+ for (int i = 0; i < args.Length(); ++i)
+ message += *v8::String::Utf8Value(args[i]);
+
+ logging::LogMessage("CONSOLE", 0, 0).stream() << message;
+ return v8::Undefined();
+}
+
} // namespace atom
static v8::Handle<v8::Value> Binding(const v8::Arguments& args);
static v8::Handle<v8::Value> Crash(const v8::Arguments& args);
static v8::Handle<v8::Value> ActivateUVLoop(const v8::Arguments& args);
+ static v8::Handle<v8::Value> Log(const v8::Arguments& args);
DISALLOW_COPY_AND_ASSIGN(AtomBindings);
};