JSD Low Level and API Items

John Bandhauer
17 June 1998

DO EVERYTHING FOR BOTH ENGINES

  • Threading
    • threadsafe traps
    • thread ids
    • stop one or multiple threads
    • interoperate with Java threads
    • track objects used by multiple threads
  • JS 1.3 JavaScript specific support
    • expose and support watchpoints
    • expose object creation and destruction
    • expose location of object constructor
    • expose location of line of code that created object (where's the 'new'?)
    • expose property iterators
    • expose property flags
    • expose prototype chains
    • expose scope resolution
    • expose types
    • call/return hooks
    • return w/ value support
    • implement debugger keyword as an engine hook
    • expose objects via reference id
    • Unicode support
    • expose info about natives
    • deep recursion hook
    • XDR hooks
    • expose security annotations
    • fix numerous existing Rhino bugs
    • expose graph of object references (not just property iterator)
    • allow for debug support when some optimizations are enabled
  • JS 1.4 support
    • expose and support exceptions
    • expose sealing
  • LiveConnect support
  • Profiling support
    • track amount of time in each function
    • code coverage support
    • sampling support
    • expose ratio of time spent in compile/interpreter/native/java/XDR
  • Debugger Performanace enhancements
    • low level stepping
    • compiled in (bytecode) debug statements
  • Enhanced UI support
    • expose which lines script have code
    • loop stepping (and other activities that are semantically linked)
    • expose an ASM (logical bytecode) mapping
    • integration with Native code debugging
    • support target code communication to debugger
    • improve error reporter mechanism (differentiate compile errors and warnings from runtime errors)
    • interpreter loop waits for adjustable slow execution modes
    • cross runtime debugging
    • multiple debugger on one runtime debugging
    • eval as user or superuser
    • fast multi object snapshot/compare to detect changes
    • track type conversions
    • recursize object size information
    • catch function call param mismatches
    • expose multiple uses of the same script source
    • expose various aliases for a given object
  • API enhancements
    • evolve and restructure API
    • add capability flags to api
    • fix breakpoint clearing/chaining bugs
    • constuct and maintain API testing system
    • evolve the existing UI for testing new support and distibution to licensees
    • support various embedding specific issues (and new embedders)
    • make Corba transport more generic (not ES 3.51 specific)
    • add new API transports (transend Corba)
    • C++ wrapper for api
  • Reference UI enhancements
    • strategies for alternate logic partitioning
  • General
    • work up documentation
    • provide examples
    • support embedders and tool providers
    • support Corba scripting
    • multi-platform build/test issues