Index: /trunk/FACT++/scripts/doc/console.js
===================================================================
--- /trunk/FACT++/scripts/doc/console.js	(revision 16070)
+++ /trunk/FACT++/scripts/doc/console.js	(revision 16071)
@@ -31,2 +31,23 @@
  */
 console.out = function() { /* [native code] */ }
+
+/**
+ *
+ * Displays a warning message on the local console (only).
+ *
+ * (This is mainly meant for debugging purpose to highlight warning
+ *  messages.)
+ *
+ * @param argument
+ *     Any kind of argument can be given. If it is not a String, it
+ *     is converted using the toString() member function.
+ *
+ * @param [. . .]
+ *     Any number of additional arguments. Each argument will appear in
+ *     a new line.
+ *
+ * @example
+ *     console.warn("WARNING: Five="+5, "--- new line ---");
+ *
+ */
+console.warn = function() { /* [native code] */ }
Index: /trunk/FACT++/src/InterpreterV8.cc
===================================================================
--- /trunk/FACT++/src/InterpreterV8.cc	(revision 16070)
+++ /trunk/FACT++/src/InterpreterV8.cc	(revision 16071)
@@ -677,4 +677,15 @@
         if (*str)
             JsOut(*str);
+    }
+    return Undefined();
+}
+
+Handle<Value> InterpreterV8::FuncWarn(const Arguments& args)
+{
+    for (int i=0; i<args.Length(); i++)
+    {
+        const String::AsciiValue str(args[i]);
+        if (*str)
+            JsWarn(*str);
     }
     return Undefined();
@@ -2420,4 +2431,5 @@
     Handle<ObjectTemplate> console = ObjectTemplate::New();
     console->Set(String::New("out"), FunctionTemplate::New(WrapOut), ReadOnly);
+    console->Set(String::New("warn"), FunctionTemplate::New(WrapWarn), ReadOnly);
 
     Handle<ObjectTemplate> onchange = ObjectTemplate::New();
Index: /trunk/FACT++/src/InterpreterV8.h
===================================================================
--- /trunk/FACT++/src/InterpreterV8.h	(revision 16070)
+++ /trunk/FACT++/src/InterpreterV8.h	(revision 16071)
@@ -78,4 +78,5 @@
     v8::Handle<v8::Value> FuncAlarm(const v8::Arguments& args);
     v8::Handle<v8::Value> FuncOut(const v8::Arguments& args);
+    v8::Handle<v8::Value> FuncWarn(const v8::Arguments& args);
     v8::Handle<v8::Value> FuncFile(const v8::Arguments& args);
     v8::Handle<v8::Value> FuncSendMail(const v8::Arguments& args);
@@ -132,4 +133,5 @@
     static v8::Handle<v8::Value> WrapAlarm(const v8::Arguments &args)    { if (This) return This->FuncAlarm(args);    else return v8::Undefined(); }
     static v8::Handle<v8::Value> WrapOut(const v8::Arguments &args)      { if (This) return This->FuncOut(args);      else return v8::Undefined(); }
+    static v8::Handle<v8::Value> WrapWarn(const v8::Arguments &args)     { if (This) return This->FuncWarn(args);     else return v8::Undefined(); }
     static v8::Handle<v8::Value> WrapWait(const v8::Arguments &args)     { if (This) return This->FuncWait(args);     else return v8::Undefined(); }
     static v8::Handle<v8::Value> WrapSend(const v8::Arguments &args)     { if (This) return This->FuncSend(args);     else return v8::Undefined(); }
@@ -187,4 +189,5 @@
     virtual void  JsAlarm(const std::string & = "") { }
     virtual void  JsOut(const std::string &) { }
+    virtual void  JsWarn(const std::string &) { }
     virtual void  JsResult(const std::string &) { }
     virtual void  JsException(const std::string &) { }
Index: /trunk/FACT++/src/RemoteControl.h
===================================================================
--- /trunk/FACT++/src/RemoteControl.h	(revision 16070)
+++ /trunk/FACT++/src/RemoteControl.h	(revision 16071)
@@ -166,5 +166,6 @@
     void  JsEnd(const std::string &)          { UnsubscribeAll(); InterpreterV8::JsEnd(); SetSection(-4); }
     bool  JsSend(const std::string &str)      { return ProcessCommand(str, false); }
-    void  JsOut(const std::string &msg)       { lin << msg << endl; }
+    void  JsOut(const std::string &msg)       { lin << kDefault << msg << endl; }
+    void  JsWarn(const std::string &msg)      { lin << kYellow << msg << endl; }
     void  JsResult(const std::string &msg)    { if (msg!="use strict") lin << kBlue << " = " << msg << '\n' << endl; }
     void  JsPrint(const std::string &msg)     { if (fImp) fImp->Comment(msg); }
