sebastienros / jint

Javascript Interpreter for .NET
BSD 2-Clause "Simplified" License
4.1k stars 562 forks source link

[Announcement] Jint 3.0.0-beta released #343

Closed sebastienros closed 1 year ago

sebastienros commented 7 years ago

I have managed to port Jint to using Esprima .NET. All unit tests from Jint 2.0 are passing so I am confident with the stability and feature set. Right now it targets both net45 and dotnet core, and it's missing the portable target but it's temporary. It has been released on nuget and is under the es6 branch of this repository.

The goal of this version is to support ECMAScript 2016 aka ES6. Esprima .NET being a fully compliant ECMAScript 2016 parser, we can know start working on new feature one by one. All ES6 programs will be parsed correctly, we just need to handle them and implement their behavior by following the standard, like it was done for ES5 in Jint 2.0.

Useful links:

A GitHub project was created to follow the evolution of the implementation. A new Beta nuget package will ship for any tasks reaching completion.

Happypig375 commented 7 years ago

Any updates on this? The last commit on both Esprima .NET and es6 branch are from October 2016. Is it still in beta?

sebastienros commented 7 years ago

I haven't been able to make progress on it since then ... been too busy since then. But it is still my goal to complete this.

Happypig375 commented 7 years ago

But it is still my goal to complete this.

Any plans for ECMAScript 7 (published June 2016) and ECMAScript 8 (published June 2017)? You need to keep up, man!

kane-mason commented 6 years ago

Also desperate for update please! Good work so far:)

sebastienros commented 6 years ago

There has been some progress. I shipped a refreshed 3.0 beta version. It contains the support for Symbol. I also have started updating the internal implementation for the support of let and const.

wpitallo commented 6 years ago

This is awesome, thanks so much awesome stuff. How near to completion is the 3.0 beta version? Think it could be used in production yet :)

jaredthirsk commented 6 years ago

"The goal of this version is to support ECMAScript 2016 aka ES6. " Isn't ECMAScript 2016 ES7 and ES6 is ECMAScript 2015? Can you clarify?

Note Esprima .NET says: "Full support for ECMAScript 2016 (ECMA-262 7th Edition)"

Nufflee commented 6 years ago

Any updates on this?

ahmedhasanmotiwala commented 6 years ago

Any Updates ?

ralphv commented 6 years ago

Any updates?

lahma commented 6 years ago

Map and Set support just landed to dev and probably soon on NuGet. Work continues with other ES6 features.

lahma commented 5 years ago

Most of missing string and array functions have landed to dev branch.

FlorianRappl commented 5 years ago

Thanks for taking your time on this project and the value you provide to the .NET eco-system - you rock!

Since Jint v3 and AngleSharp's v0.10 seem both to be stuck in a forever loop (yes, I try to release it soon and it seems I can now do it this Christmas 🎄 ) I wonder if we somewhat can join forces here ...

Since ES6 also a couple of things happened and I would love to see some parts of the newer specs being implemented (especially await / async). Could we do something about it?

Maybe its time to form some umbrella foundation around AngleSharp + Jint + rel. projects to be something like a ".NET web tool projects foundation" (to find new contributors and foster more active development). What is your opinion @sebastienros ?

lahma commented 5 years ago

Spread, rest and default parameters have landed to dev branch.

sebastienros commented 5 years ago

Also in case anyone has missed it we have a list of es6 feature on the main readme that is updated with what has been implemented so far.

kevinroast commented 5 years ago

Fantastic work and really appreciate the effort you have put into this project. Can I ask, did you have any thoughts on when you would likely start the Arrows function item on the backlog?

lahma commented 5 years ago

Arrow functions have landed into dev /cc @kevinroast

kevinroast commented 5 years ago

great stuff!

OlegSkripnyak commented 5 years ago

Awesome !

lahma commented 4 years ago

Proxy and Reflect are now in dev

viceice commented 4 years ago

Latest version on nuget depends on Esprima 1.0.1256 which is missing.

BTW: This issue should be pinned. :-)

lahma commented 4 years ago

Since last update for-of is now implemented and object spread with some missing Object APIs:

Currently there's work ongoing around Promise and let/const support.

lahma commented 4 years ago

Lexical scoping of variables, a.k.a. let/const support just landed in dev.

viceice commented 4 years ago

any chance to get a new prerelease to nuget.org?

lahma commented 3 years ago

ES2020 feature nullish coalescing (myNumericVar ?? 0) has landed to dev.

lahma commented 3 years ago

class support has landed dev.

lahma commented 3 years ago

Array.prototype.flatand Array.prototype.flatMap have landed dev.

lahma commented 3 years ago

Promise support has landed dev, async and await keywords have not yet been implemented.

lahma commented 3 years ago

Optional?.chaining?.has?.landed?.main

lahma commented 3 years ago

Optional catch binding has landed main and now high on heels also a new release is on NuGet for you to consume, enjoy!

lahma commented 3 years ago

WeakMap and WeakSet have strongly landed to main.

lahma commented 3 years ago

Internal feature of having Realm and Intrinsics concepts has landed main. This basically makes it easier to follow the specification and hopefully paves way for JS API for realms, which is in the works.

lahma commented 3 years ago

ArrayBuffer and DataView have landed main.

lahma commented 3 years ago

Typed arrays have landed main.

If you are backed by a commercial entity benefiting from my/our work, please consider sponsoring, even a one time donation will buy some beer and adds some motivation. Completing these tasks can take days of free time from family life.

savornicesei commented 3 years ago

Hi @sebastienros , @lahma Is it possible to have an alpha version published on NuGet?

lahma commented 3 years ago

@savornicesei even better, you can download the beta from NuGet which contains the work items discussed here so far.

savornicesei commented 3 years ago

Ohhhh.... I might have not checked the "Prerelease" checkbox in Rider. Sorry, sorry! Then I can check if it works with latest highlight.js lib.

Thanks!

lahma commented 3 years ago

ES2021 Logical Assignment (??=, &&=, ||=) has landed main and NuGet.

lahma commented 2 years ago

ES2020 BigInt has landed main.

lahma commented 2 years ago

ES6 module and module loader support has landed main. Things might still move a bit public-API-wise.

omansak commented 2 years ago

When will jint 3release none-beta version, any idea?

lahma commented 2 years ago

When will jint 3release none-beta version, any idea?

When it's ready 🤷🏻‍♂️

MeikelLP commented 2 years ago

@lahma will there be new beta builds? The latest is v3.0.0-beta-2037 (from December 2021) but there are several new features in the latest beta that are not on nuget.

lahma commented 2 years ago

@MeikelLP we'll try to get a new preview on NuGet, requires an API key update so waiting for it, stay tuned.

lahma commented 2 years ago

@MeikelLP there's a new release on NuGet now.

lahma commented 2 years ago

String.prototype.replaceAll just got merged to main.

lahma commented 2 years ago

import.meta just got merged to main.

lahma commented 2 years ago

ShadowRealm (stage 3 proposal) just got merged to main.

lahma commented 2 years ago

AggregateError was merged to main.

lahma commented 2 years ago

WeakRef was merged to main.