/* jband - 07/08/99 - stuff to do */

**** DOCS ****

- Docs

**** TESTING ****

- for xpconnect
- for xptcall

**** PORTS ****

- additional xptcall ports

**** GENERAL ****

- versioning 
- binary compatibility
- componentization
- debugging


**** FEATURES ****

- namespaces
    - xptinfo work
    - XPConnect work

- reimplement nsSJIID and nsJSCID using multiple inheritence

- flattened component scheme
    - xpidl extensions
    - XPConnect support
    - simple aggregatable interface for GetCID()
    - coclass design
    - registry 'merging'

- work in JS engine to track more info when exceptions thrown so that
  the uncaught exceptions will not be so mysterious (filename and lineno)

- proto object per class

- safer use of jsdoubles

- refactor wrapper tracking based on JSRuntime no JSContext

- Constants for WrappedJS objects? 
    - Even for WrappedNatives the constants should (perhaps) be in the 
      (as yet not created) class proto object rather than props of each object?
      This makes then overwritable?

- Add thread safety to xpconnect (and xptinfo)

- JS examples emitted from xpidl compiler

- Add support for further wrapping the component manager to allow
registering services and factories implemented in JS.

- XPJS

- Add better error support - reflect more xpcom error codes into
JS. I'd like to be able to declare xpcom error (and success)
codes in idl

- Improve exception scheme so that exceptions thrown by JS are
not just strings, but instead are more interesting objects.

- better debug and exception loocation support
    - reflect js lcations and stacks as an xpcom service
    - expose a debugger callable eval and dump stack

- write better tests (for xpconnect *and* xptcall)

- add coclass-like and flattened interfaces scheme. Needed for
DOM. Requires xpidl and typelib extensions in addition to runtime
support.

- define and enforce data conversion limits; e.g. what happens
when we try to coerce an out of range conversion, like converting
1232.2 into an 8-bit signed value? Fail, truncate? etc.

- possibly support opaque pointer typedefs and/or structs.

- declare C arrays in xpidl and map to JS

- cycle breaking issues
    - recomended patterns?
    - weak refs for JS -> native
    - weak refs for native -> JS

- We need better error reporting across the xpconnect boundary!
    - xpconnect specific nsresult error codes ? 
    - expose 'get last error details' to native xpcom?

- a global object will need global namespace interface
