Original URL: http://www.theregister.co.uk/2010/09/20/mozilla_narcissus_zaphod/

Mozilla Labs pops out JavaScript language tool for coders

Two heads are better than one. Just ask Beeblebrox

By Kelly Fiveash

Posted in Developer, 20th September 2010 12:34 GMT

Mozilla has released a JavaScript engine strictly for testing purposes to allow web developers to gain deeper access to – and better understanding of – the code underpinning its browser.

The Narcissus engine and Zaphod script look-up tool have been added to Mozilla Labs to help the open source outfit develop new ideas for the JavaScript language.

“What features should we add to JavaScript? What should the syntax/semantics be? What practical issues will come up that we have not considered so far? With Narcissus and Zaphod, we can more easily answer these questions,” said Mozilla’s Tom Austin.

“In programming language (PL) research, we like to write up fancy evaluation rules containing lots of Greek letters. Unfortunately, these rules tend to be inscrutable to anyone who isn’t a PL researcher. Even for PL researchers, there is something unsatisfying about seeing a bunch of rules on a piece of paper.”

By releasing the Narcissus Javascript engine, which is based on simpler code and is much less affected by the changing browser code base, Mozilla hopes to get more people testing the software.

Meanwhile, Zaphod doggedly searches for scripts with a tag of “application/narcissus” and parses them with Narcissus. Mozilla’s factory line JavaScript engine SpiderMonkey ignores the tag.

“But we might also want to see how the implementation would work on a pre-existing page. Click on the mozilla icon in the bottom right corner and Narcissus will be set as the default JavaScript interpreter. After experimenting, click on the icon again and SpiderMonkey will be reset as your JS implementation,” said Austin.

“Zaphod/Narcissus cannot yet handle some of the more JavaScript-heavy pages, but it can handle enough to be a valuable research tool for JavaScript language hackers.”

This way for more about the JavaScript experiment. ®