User Tools

Site Tools


Differences

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

Link to this comparison view

interpreter [2013/05/13 21:40]
will
interpreter [2015/06/01 16:08]
Line 1: Line 1:
-====== Tailspin Javascript Interpreter ====== 
-The Tailspin 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. 
  
-It is based on the [[https://​github.com/​mozilla/​narcissus|Narcissus]] Javascript interpreter. 
- 
-===== ES5.1 Compliance ===== 
-Tailspin currently passes 99% of the [[http://​test262.ecmascript.org|ECMAScript Language test262]] test suite. (The majority of the failures are currently due to "use strict"​ code.) 
- 
- 
-^                                             ^ Passes ^  Total ^        % ^ 
-| Ch06 Notational Conventions ​                ​| ​     1 |      1 |  100.00% | 
-| Ch07 Lexical Conventions ​                   |    696 |    715 |   ​97.34% | 
-| Ch08 Types                                  |    182 |    182 |  100.00% | 
-| Ch09 Type Conversion and Testing ​           |    128 |    128 |  100.00% | 
-| Ch10 Executable Code and Execution Contexts |    353 |    377 |   ​93.63% | 
-| Ch11 Expressions ​                           |   1315 |   1320 |   ​99.62% | 
-| Ch12 Statements ​                            ​| ​   517 |    521 |   ​99.23% | 
-| Ch13 Function Definition ​                   |    223 |    230 |   ​96.96% | 
-| Ch14 Program ​                               |     24 |     24 |  100.00% | 
-| Ch15 Standard Built-in ECMAScript Objects ​  ​| ​  8052 |   8074 |   ​99.73% | 
-| 
-| Totals ​                                     |  11491 |  11572 |   ​99.30% | 
- 
-===== Reversibility ===== 
-Tailspin is able to run in a reversible mode, where state changes are recorded so that they can be undone, as well as a non-revsersible mode which is slightly faster and more memory efficient. 
- 
-In reversible mode almost all state changes can be undone. Some state changes such as ''​Object.freeze()''​ and ''​Object.seal()''​ are not reversible at the moment as Tailspin uses the browsers Javascript objects and the effect of these functions is permanent. 
interpreter.txt ยท Last modified: 2015/06/01 16:08 (external edit)