# Jurassic **Repository Path**: octoberkey/Jurassic ## Basic Information - **Project Name**: Jurassic - **Description**: A .NET library to parse and execute JavaScript code. - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-05-06 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ![Jurassic](https://raw.githubusercontent.com/wiki/paulbartrum/jurassic/logo.png) [![Build status](https://ci.appveyor.com/api/projects/status/rx2xy5srhmv3kbkd/branch/master?svg=true)](https://ci.appveyor.com/project/paulbartrum/jurassic/branch/master) ## What is Jurassic? Jurassic is an implementation of the ECMAScript language and runtime. It aims to provide the best performing and most standards-compliant implementation of JavaScript for .NET. Jurassic is not intended for end-users; instead it is intended to be integrated into .NET programs. If you are the author of a .NET program, you can use Jurassic to compile and execute JavaScript code. ## Features * Supports all ECMAScript 3 and ECMAScript 5 functionality, including ES5 strict mode * Well tested - passes over five thousand unit tests (with over thirty thousand asserts) * Simple yet powerful API * Compiles JavaScript into .NET bytecode (CIL); not an interpreter * Deployed as a single .NET assembly (no native code) * Basic support for integrated debugging within Visual Studio * Uses light-weight code generation, so generated code is fully garbage collected * Tested on .NET 3.5, .NET 4 and Silverlight ## How do I get it? Install the [NuGet package](https://www.nuget.org/packages/Jurassic/). ## Usage See the [wiki](https://github.com/paulbartrum/jurassic/wiki) for full usage details. ## ECMAScript 6 status Support for ECMAScript 6 is in progress. See http://kangax.github.io/compat-table/es6/ for the definition of each feature. Feature|Status -------|------ **Optimisation**|   proper tail calls (tail call optimisation)|:x: **Syntax**|   default function parameters|:x:   rest parameters|:x:   spread (...) operator|:x:   object literal extensions|:x:   for..of loops|4/9   octal and binary literals|:white_check_mark: 4/4   template literals|2/5   RegExp "y" and "u" flags|:x:   destructuring, declarations|:x:   destructuring, assignment|:x:   destructuring, parameters|:x:   Unicode code point escapes|:white_check_mark: 2/2   new.target|:x: **Bindings**|   const|2/16   let|1/12   block-level function declaration[13]|:x: **Functions**|   arrow functions|:x:   class|:x:   super|:x:   generators|:x: **Built-ins**|   typed arrays|44/46   Map|17/19   Set|17/19   WeakMap|10/12   WeakSet|9/11   Proxy[18]|:x:   Reflect[20]|:x:   Promise|:white_check_mark:   Symbol|5/11   well-known symbols[21]|5/26 **Built-in extensions**|   Object static methods|3/4   function "name" property|5/17   String static methods|:white_check_mark: 2/2   String.prototype methods|:white_check_mark: 10/10   RegExp.prototype properties|2/6   Array static methods|1/11   Array.prototype methods|9/10   Number properties|:white_check_mark: 7/7   Math methods|:white_check_mark: 17/17   Date.prototype[Symbol.toPrimitive]|:white_check_mark: 1/1 **Subclassing**|   Array is subclassable|:x:   RegExp is subclassable|:x:   Function is subclassable|:x:   Promise is subclassable|:x:   miscellaneous subclassables|:x: **Misc**|   prototype of bound functions|:x:   Proxy, internal 'get' calls|:x:   Proxy, internal 'set' calls|:x:   Proxy, internal 'defineProperty' calls|:x:   Proxy, internal 'deleteProperty' calls|:x:   Proxy, internal 'getOwnPropertyDescriptor' calls|:x:   Proxy, internal 'ownKeys' calls|:x:   Object static methods accept primitives|7/10   own property order|2/7   miscellaneous|6/10 **Annex b**|   non-strict function semantics[29]|2/3   \_\_proto\_\_ in object literals[30]|:x:   Object.prototype.\_\_proto\_\_|1/6   String.prototype HTML methods|:white_check_mark: 3/3   RegExp.prototype.compile|:white_check_mark: 1/1   RegExp syntax extensions|4/8   HTML-style comments|:x: