- Add error constant to debug client
- Rework duk_debug.js to use bluebird promises
- Use proper path delimiter (e.g. ';' on Windows)
- Tolerate broken source search dirs
- Accept both node and nodejs in debugger Makefile
- Automatic --source-dirs for both Duktape repo and dist dir
- README update
- Debugger cleanups
The duk_to_uint() coercion caps negative values to zero, so that e.g.
"buf[3] = -1;" yields 0x00 as the buffer value instead of the more natural
0xFF. Change to duk_to_int() to get natural behavior at least for the
whole duk_int_t range. Outside this range the duk_to_int() coercion will
again cap to DUK_INT_MIN and DUK_INT_MAX and behave a bit oddly.
Also testcase and RELEASES.rst update.
- Endianness for pointers and IEEE doubles
- Add DUK_OPT_DEBUGGER_DUMPHEAP feature option
- Add DUK_OPT_DEBUGGER_DUMPHEAP to Makefile
- Refactor executor and executor interrupt debugger handling to separate
functions to make them easier to read
- Explicit peek, read flush, and write flush callbacks
- Remove brkpt_dirty, easier and perhaps more robust to recheck breakpoints
whenever any debug commands have been executed
- Bug fixes, FIXME resolutions, trivia
- DUK_BSWAP32() and DUK_BSWAP16() in duk_features.h so that platform specific
macros, intrinsics, or inline assembly can be used if necessary
- DUK_DBLUNION_BSWAP() for byte swapping doubles (needed by debugger)
- duk_byteswap_bytes() helper for byte swapping arbitrary data (needed by
debugger for pointers)
- API call documentation
- DUK_DEBUG_PROTOCOL_VERSION define
- Update LoC in website index page
- Debugger changes to Guide
Quite minimal at this point. There should be an architecture figure.
To be text browser compatible it'd have to be ASCII art or have an
ASCII art fallback.
Fix compiler register limit which was incorrectly set to DUK_BC_BC_MAX.
That value is correct from a bytecode perspective but duk_hcompiledfunction
nargs/nregs fields are 16-bit so 0xffff is the effective limit.
Before this change functions with [65536,262143] registers would compile
without error but would allocate a register frame too small (due to nregs
overflow) which could then result in segfaults etc.
Add a very primitive bytecode execution timeout mechanism which can be used
to implement global script timeouts.
This mechanism will probably evolve into an API by the Duktape 1.2 release.