Skip to content

andychu/narcissus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

narcissus on Narwhal
--------------------

Here is the original Narcissus: http://mxr.mozilla.org/mozilla/source/js/narcissus/

This is a port to Narwhal: http://narwhaljs.org

To develop:

1) Make your changes to patched/*.js, which is a modified copy of the code in
original/*.js
2) Run build/makelib.py to make lib/narcissus.js
3) var narcissus = require('narcissus');

STATUS (as of 12/26/09)
-----------------------

Enhancements over the original Narcissus:

- Packaged as a CommonJS module (into a single JavaScript file by
  build/makelib.py)

- Defines a toJSON() method on Node instances, so the parse tree can be output
  as JSON
  - The bin/narcissus tool can be used to output a JSON parse tree
  - See codegen/*.json for examples, which are parse trees of the stuff in
    testdata/*.js
  - The JSON parse tree has been consumed (experimentally) by JSON Template (see
    codegen/) 

- Uses ES5 Object.defineProperty rather than Mozilla's __defineProperty__
  (halfway working in Narwhal, without writable/configurable/etc.)

- Engine compatibility
  - Fixed Mozilla-specific extensions ('catch if') so it works in narwhal-v8 in
    addition to narwhal-rhino
  - Fixed some subtle bugs related to using __proto__ in v8.  Prior to this,
    Narcissus couldn't parse itself in v8.

- Tests
  - Has some JavaScript tests based on Narwhal/CommonJS
  - There is a in-progress test in tests/narcissus_test.py, which borrows the
    approach of pynarcissus and runs over v8's JS test suites.  (See
    http://code.google.com/p/pynarcissus/)

Known issues
------------

- The meta-interpreter runs really basic code correctly, but some things appear
  broken (see narcissus-test.js).  Right now I care mostly about the parser.

- Under narwhal-rhino, tests/narcissus-test/testParseRealCode takes about 30
  seconds.  On narwhal-v8, it's more or less instant.  Could be a narwhal-rhino
  bug.

Details:
- Can parse JSON Template but not execute it
- Cannot parse or execute jsexec.js


Docs are not complete, so if you want to use this, feel free to mail me at
andy@chubot.org.

About

JavaScript in JavaScript

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published