I've try to understand how spider-monkey engine work, but i can't understand what following code mean because of my bad cpp knowledge @_@
typedef Handle<JSObject*>                   HandleObject;
typedef Handle<js::Module*>                 HandleModule;
typedef Handle<js::ScriptSourceObject *>    HandleScriptSource;
typedef Handle<JSFunction*>                 HandleFunction; 
typedef Handle<JSScript*>                   HandleScript;
typedef Handle<JSString*>                   HandleString;
typedef Handle<jsid>                        HandleId;
typedef Handle<Value>                       HandleValue;
I think <JSObject*>, etc)... are template type, but '*' means pointer?
 
    