Document current plan for Duktape versioning - semantic versioning plus
Duktape specific definition of "public API", maintenance period, etc.
Update guide and API documentation to match.
Change Duktape internal keys to begin with an uppercase character, e.g.
\xFFValue. This makes the internal key naming convention easier for user
code: if the user key begins with a lowercase character (which is the
usual Ecmascript convention), the user internal key will simply be e.g.
\xFFfoo.
Double \xFF prefix can still be used by user code when the bytes that
follow are unknown, e.g. they are from an external source.
Also rewrite parts of Guide internal properties section for perhaps
more clarity.
Trivial change, but match the typing for other 'nargs' arguments; duk_idx_t
is technically the correct type because nargs refers to the number of value
stack arguments expected by the function.
Add symbol visibility macros for header definitions and actual declarations.
These are concretely needed for Windows DLL build support (__declspec(dllexport)
and __declspec(dllimport)). These macros will also be useful for controlling
symbol visibility when e.g. duk_js_compiler.c is split into multiple files.
Add DUK_OPT_DLL_BUILD feature option for a DLL build. It is critical for
Windows build to enable __declspec(dllexport)/__declspec(dllimport).
- Make duk_dump_context_{stdout,stderr}() a comma expression macro instead
of a do-while-macro to allow use in expressions, e.g.
"(void) duk_dump_context_stdout()"
- Fix trivial bug for DUK_OPT_NO_FILE_IO
For GCC 4+ these now produce a nice clean build when compiling the split
compiler source files. Without these, the result is quite messy.
MSVC symbol visibility macros are based on feedback from David Demelier.
They seem to now allow a Windows DLL build (__declspec(dllimport) and
__declspec(dllexport)).