Home

Awesome

Jurassic

Build status

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

How do I get it?

Install the NuGet package.

Usage

See the 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. The table below is correct as of version 3.1.

FeatureStatus
Optimisation
  proper tail calls (tail call optimisation):x:
Syntax
  default function parameters4/7
  rest parameters:x:
  spread syntax for iterable objects:x:
  object literal extensions:white_check_mark: 6/6
  for..of loops6/9
  octal and binary literals:white_check_mark: 4/4
  template literals6/7
  RegExp "y" and "u" flags:x:
  destructuring, declarations:x:
  destructuring, assignment:x:
  destructuring, parameters:x:
  Unicode code point escapes:white_check_mark: 4/4
  new.target:white_check_mark: 2/2
Bindings
  const:white_check_mark: 18/18
  let14/16
  block-level function declaration[18]:x:
Functions
  arrow functions:x:
  class:white_check_mark: 24/24
  super:white_check_mark: 8/8
  generators:x:
Built-ins
  typed arrays45/46
  Map18/19
  Set18/19
  WeakMap11/12
  WeakSet10/11
  Proxy [25]33/34
  Reflect [26]18/20
  Promise4/8
  Symbol:white_check_mark: 12/12
  well-known symbols[27]23/26
Built-in extensions
  Object static methods:white_check_mark: 4/4
  function "name" property10/17
  String static methods:white_check_mark: 2/2
  String.prototype methods:white_check_mark: 10/10
  RegExp.prototype properties:white_check_mark: 6/6
  Array static methods8/11
  Array.prototype methods:white_check_mark: 10/10
  Number properties:white_check_mark: 9/9
  Math methods:white_check_mark: 17/17
  Date.prototype[Symbol.toPrimitive]:white_check_mark: 1/1
Subclassing
  Array is subclassable9/11
  RegExp is subclassable:white_check_mark: 4/4
  Function is subclassable4/6
  Promise is subclassable:x:
  miscellaneous subclassables:x:
Misc
  prototype of bound functions1/5
  Proxy, internal 'get' calls19/36
  Proxy, internal 'set' calls7/11
  Proxy, internal 'defineProperty' calls:x:
  Proxy, internal 'deleteProperty' calls:x:
  Proxy, internal 'getOwnPropertyDescriptor' calls2/4
  Proxy, internal 'ownKeys' calls:white_check_mark: 3/3
  Object static methods accept primitives:white_check_mark: 10/10
  own property order5/7
  Updated identifier syntax1/3
  miscellaneous8/9
Annex b
  non-strict function semantics[35]2/3
  __proto__ in object literals [36]:x:
  Object.prototype.__proto__1/6
  String.prototype HTML methods:white_check_mark: 3/3
  RegExp.prototype.compile1/2
  RegExp syntax extensions4/8
  HTML-style comments:x: