User Tools

Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
interpreter [2012/10/23 23:42]
will
interpreter [2015/06/01 16:08] (current)
Line 1: Line 1:
-====== Interpreter ====== +====== ​Javascript ​Interpreter ====== 
-The Javascript interpreter used to run the algorithms on this wiki is a highly modified versions of the [[https://​github.com/​mozilla/​narcissus|Narcissus]] ​Javascript interpreter. ​It has been updated to run in web browsers ​and to be much more standards compliant. It has also been rewritten ​in [[continuation passing style]], so that the interpretation can be paused and controlled by the user.+The Javascript interpreter used to run the algorithms on this wiki is a fully reversible, standards-compliant,​ meta-circular ​Javascript interpreter. ​As well as running ​in the browser ​and allowing algorithms ​to be visualised, it can run code both forwards and backwards in time. It is written ​in [[continuation passing style]], so that the interpretation can be paused and controlled by the user.
  
-The Javascript interpreter currently passes 93% of the [[http://test262.ecmascript.org|ECMAScript Language test262]] test suite. (A lot of the failures currently are due to not handling "​strict"​ code or unicode.)+Based on [[https://github.com/​mozilla/​narcissus|Narcissus]].
  
 +===== ES5.1 Compliance =====
 +It currently passes 99% of the [[http://​test262.ecmascript.org|ECMAScript Language test262]] test suite.
  
-^                                             ^ Passes ^  Total ^        % ^ +===== Reversibility ===== 
-| Ch06 Notational Conventions ​                ​| ​     1 |      1 |  100.00% | +And can optionally be run in a reversible mode, where state changes are recorded so that they can be undoneThis allows much more informative visualisations ​and interaction,​ at the cost of running slightly slower ​and a bit more memory
-| Ch07 Lexical Conventions ​                   |    594 |    715 |   ​83.08% | + 
-| Ch08 Types                                  |    175 |    182 |   ​96.15% | +In reversible mode almost all state changes can be undoneSome state changes such as ''​Object.freeze()''​ and ''​Object.seal()''​ are not reversible at the moment as the interpreter uses the browser'​s Javascript objects and the effects of these functions are permanent.
-| Ch09 Type Conversion ​and Testing ​           |    128 |    128 |  100.00% | +
-| Ch10 Executable Code and Execution Contexts |    232 |    377 |   61.54% | +
-| Ch11 Expressions ​                           |   1177 |   1320 |   ​89.17% | +
-| Ch12 Statements ​                            ​| ​   470 |    521 |   90.21% | +
-| Ch13 Function Definition ​                   |    152 |    230 |   66.09% | +
-| Ch14 Program ​                               |     12 |     24 |   50.00% | +
-| Ch15 Standard Built-in ECMAScript Objects ​  ​| ​  7892 |   8074 |   ​97.75% | +
-+
-| Totals ​                                     |  10833 |  11572 |  93.61%  |+
  
interpreter.1351060941.txt.gz · Last modified: 2015/02/02 08:24 (external edit)