polardbxengine/extra/duktape/duktape-2.3.0/extras/console
dengwendi 1d6524707e INIT 2023-11-15 15:04:10 +08:00
..
Makefile INIT 2023-11-15 15:04:10 +08:00
README.rst INIT 2023-11-15 15:04:10 +08:00
duk_console.c INIT 2023-11-15 15:04:10 +08:00
duk_console.h INIT 2023-11-15 15:04:10 +08:00
test.c INIT 2023-11-15 15:04:10 +08:00

README.rst

=========================
Minimal 'console' binding
=========================

Duktape doesn't provide a ``console`` binding (for example ``console.log``)
by default because it would be a portability issue for some targets.  Instead,
an application should provide its own ``console`` binding.  This directory
contains an example binding:

* Add ``duk_console.c`` to list of C sources to compile.

* Ensure ``duk_console.h`` is in the include path.

* Include the extra header in calling code and initialize the bindings::

      #include "duktape.h"
      #include "duk_console.h"

      /* After initializing the Duktape heap or when creating a new
       * thread with a new global environment:
       */
      duk_console_init(ctx, 0 /*flags*/);

  Use the ``DUK_CONSOLE_PROXY_WRAPPER`` to enable a Proxy wrapper for the
  console object.  The wrapper allows all undefined methods (for example,
  ``console.foo``) to be handled as no-ops instead of throwing an error.
  See ``duk_console.h`` for full flags list.

* After these steps, ``console`` will be registered to the global object
  and is ready to use.

* By default the console object will use ``stdout`` for log levels up to
  info, and ``stderr`` for warning and above.  You can change this by
  providing either ``DUK_CONSOLE_STDOUT_ONLY`` or ``DUK_CONSOLE_STDERR_ONLY``
  in ``duk_console_init()`` flags.