Mozilla SpiderMonkey Features

Jaxer is based on the Mozilla engine, the same core that powers Firefox 3, but without the rendering capabilities*. And this simple fact unlocks a lot of power that's been built up over many years by Mozilla developers.

Unless your apps and sites have targeted Firefox exclusively — unlikely, given its market share — they could not rely on JavaScript features beyond version 1.4. And how about the numerous extensions that have been developed for Firefox, some of which actually ship with the browser? Most developers don't even know about them, and they couldn't rely on them being available to most of their target audience.

But now all that Firefox 3 goodness is under the hood of your Jaxer, on the server side, under your full control:

  • JavaScript 1.7 and 1.8 generators
  • iterators
  • array comprehensions
  • Microformats, anyone? The built-in Microformats.js provides access to hCard, hCalendar, and other types
  • native JSON parsing and encoding
  • XSLT transformations through the XSLTProcessor object
  • RDF subsystem
  • base64 encoding and decoding
  • rich SOA stack with SOAP and WSDL

* You can do some server-side rendering with the appropriate graphics libraries installed.

There are all sorts of hidden gems to discover: did you know there's a very nice Jaxer Shell in Aptana Studio that lets you execute against a live Jaxer server? Try typing the following snippet in the Jaxer Shell to see that we've just scratched the surface of what's available.

All properties in the Jaxer namespace

Connecting to Jaxer Console application...
Connected...
var tmp = [];
for (var p in Jaxer)
{
	tmp.push("Jaxer." + p);
}
print(tmp.sort().join("\n"));
Jaxer.AUTOLOAD_ATTR
Jaxer.AUTOLOAD_ATTR_FALSE_REGEXP
Jaxer.App
Jaxer.BinarySocket
Jaxer.CacheManager
Jaxer.Callback
Jaxer.CallbackManager
Jaxer.ClientError
Jaxer.Config
Jaxer.Container
Jaxer.CoreEvents
Jaxer.DB
Jaxer.Dir
Jaxer.DirUtils
Jaxer.Exception
Jaxer.Extensions
Jaxer.File
Jaxer.FileUtils
Jaxer.Filesystem
Jaxer.FunctionInfo
Jaxer.Includer
Jaxer.Log
Jaxer.NetworkUtils
Jaxer.Overrides
Jaxer.PROXY_ATTR
Jaxer.Process
Jaxer.RUNAT_ANY_BOTH_REGEXP
Jaxer.RUNAT_ANY_SERVER_REGEXP
Jaxer.RUNAT_ATTR
Jaxer.RUNAT_BOTH_AND_CACHE
Jaxer.RUNAT_BOTH_AND_PROXY
Jaxer.RUNAT_BOTH_BASE
Jaxer.RUNAT_BOTH_NO_CACHE
Jaxer.RUNAT_CLIENT
Jaxer.RUNAT_NO_CACHE_REGEXP
Jaxer.RUNAT_SEPARATOR
Jaxer.RUNAT_SERVER_AND_CACHE
Jaxer.RUNAT_SERVER_AND_PROXY
Jaxer.RUNAT_SERVER_BASE
Jaxer.RUNAT_SERVER_NO_CACHE
Jaxer.Request
Jaxer.Response
Jaxer.SIMPLE_PARSE
Jaxer.SMTP
Jaxer.SRC_ATTR
Jaxer.Sandbox
Jaxer.ScriptInfo
Jaxer.ScriptProcessor
Jaxer.Serialization
Jaxer.SessionManager
Jaxer.Socket
Jaxer.System
Jaxer.TYPE_ATTR
Jaxer.TextParser
Jaxer.Thread
Jaxer.Util
Jaxer.Web
Jaxer.XHR
Jaxer.__newFunctions
Jaxer.__tempLoad
Jaxer.afterClientFramework
Jaxer.application
Jaxer.beforeClientFramework
Jaxer.buildNumber
Jaxer.clientData
Jaxer.corePreferences
Jaxer.embeddedClientFramework
Jaxer.enabled
Jaxer.evaluateScriptsIfDisabled
Jaxer.fatalError
Jaxer.fatalErrorLogged
Jaxer.fatalErrorPage
Jaxer.frameworkLoaded
Jaxer.include
Jaxer.isCallback
Jaxer.isHeadCreated
Jaxer.isHeadInitialized
Jaxer.isOnServer
Jaxer.isServerStartedFired
Jaxer.lastLoadedFragment
Jaxer.lastScriptRunat
Jaxer.load
Jaxer.loadAllExtensions
Jaxer.loadExtension
Jaxer.notifyFatal
Jaxer.page
Jaxer.proxies
Jaxer.request
Jaxer.response
Jaxer.responseErrorPage
Jaxer.session
Jaxer.sessionPage
Jaxer.setEvent
Jaxer.setTitle
Jaxer.unloadExtension