Branch for SpiderMonkey 1.8.0 integration
Commit js-1.8.0 with project files for vc2005 and vc2008
Ignore Debug and Release in js/vc2008
AeonEngine abstract interface and concrete implementation (still skeletal) for AeonJSEngine.
Finished core AeonJSEngine semantics, equivalent to hl7daemon JSEngine functionality in 2008-10-10T16:03:39Z!haleyjd@hotmail.com:
* One-shot evaluation of strings and files
* Ability to cache compiled bytecode in CompiledScript objects from strings and files
* Execute compiled scripts with or without return results in qstring, int, unsigned int, double, or bool formats.
Added CMake stuff for JS.
Fixed a comment.
Merge from trunk
* AeonEngine now provides an error/warning output logging facility to daughter classes.
* Pull in fix from hl7daemon: ensure temp JSString is GC-rooted in executeWithResult, in the unlikely case JS_GetStringBytes causes garbage collection.
* Added ae_jsutils module
* Finished up context callback and error reporter
* Started work on core Aeon class natives for manipulation of the interpreter state
* Added AeonJS_SafeInstanceOf
* Renamed AeonJS_SafeGetStringBytes
Merge from trunk to pull in today's 3.40.25 changes.
Merge from trunk (damn I gotta do this more often...)
* Added AeonEngine::evaluateStringLogResult
* Moved AeonJS utilities into an AeonJS namespace
* Created AeonJS::AutoNamedRoot class
AutoNamedRoot semantic change: rooted pointer needs to have the same lifetime as the AutoNamedRoot, so that it can be passed into and initialized inside other functions. Easiest way to do this is to root a class member instead of a pointer passed in by address. Also eliminates need for stupid pointless reinterpret_cast overloads of AutoNamedRoot::init.
Overload of AeonJS::SafeGetStringBytes that takes an AutoNamedRoot &. Simplifies dealing with JSString return values from JSAPI.
* AeonJS::PrivateData base class for all JSObject private data.
* Proxy and ProxyRelationship hierarchy for control of relationships between objects with arbitrary dynamic allocation lifetimes. Employed in AeonJS::PrivateData for optional attachment to an external object not under the control of the virtual machine. Should easily generalize to other potential Aeon engines.
Add m_proxy to vc2008 project file.
AeonEngine::EvalContext class for generic support of evaluation context objects. Subclass in an AeonEngine descendent to provide support in that particular language (TODO: AeonJSEngine::EvalContext).
Away with pointless complexity and unneeded abstractions!