Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Announcement] Jint 3.0.0-beta released #343

Closed
sebastienros opened this issue Oct 29, 2016 · 67 comments
Closed

[Announcement] Jint 3.0.0-beta released #343

sebastienros opened this issue Oct 29, 2016 · 67 comments
Labels

Comments

@sebastienros
Copy link
Owner

sebastienros commented Oct 29, 2016

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.

This was referenced Oct 29, 2016
@Happypig375
Copy link

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

@sebastienros
Copy link
Owner Author

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

This comment was marked as resolved.

@kane-mason
Copy link

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

@sebastienros
Copy link
Owner Author

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
Copy link

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
Copy link

"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

This comment was marked as resolved.

@ahmedhasanmotiwala

This comment was marked as resolved.

@ralphv

This comment was marked as resolved.

@lahma
Copy link
Collaborator

lahma commented Sep 10, 2018

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

@lahma
Copy link
Collaborator

lahma commented Dec 3, 2018

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

@FlorianRappl
Copy link

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
Copy link
Collaborator

lahma commented Dec 21, 2018

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

@sebastienros
Copy link
Owner Author

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
Copy link

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
Copy link
Collaborator

lahma commented Mar 3, 2019

Arrow functions have landed into dev /cc @kevinroast

@kevinroast
Copy link

great stuff!

@OlegSkripnyak
Copy link

Awesome !

@lahma
Copy link
Collaborator

lahma commented Dec 28, 2019

Proxy and Reflect are now in dev

@viceice

This comment was marked as resolved.

@lahma
Copy link
Collaborator

lahma commented Apr 12, 2020

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 lahma pinned this issue Apr 16, 2020
@lahma
Copy link
Collaborator

lahma commented May 24, 2020

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

@viceice
Copy link
Contributor

viceice commented Sep 1, 2020

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

@MeikelLP

This comment was marked as resolved.

@lahma

This comment was marked as resolved.

@lahma

This comment was marked as resolved.

@lahma
Copy link
Collaborator

lahma commented Apr 29, 2022

String.prototype.replaceAll just got merged to main.

@lahma
Copy link
Collaborator

lahma commented May 21, 2022

import.meta just got merged to main.

@lahma
Copy link
Collaborator

lahma commented May 22, 2022

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

@lahma
Copy link
Collaborator

lahma commented May 22, 2022

AggregateError was merged to main.

@lahma
Copy link
Collaborator

lahma commented Jul 25, 2022

WeakRef was merged to main.

@lahma
Copy link
Collaborator

lahma commented Sep 26, 2022

Array.group and Array.groupToMap (stage 3 proposals) have been merged to main.

@lahma
Copy link
Collaborator

lahma commented Oct 1, 2022

RegExp named capture groups were just merged to main.

@lahma
Copy link
Collaborator

lahma commented Oct 2, 2022

RegExp match indices support was just merged to main.

@lahma
Copy link
Collaborator

lahma commented Oct 15, 2022

Promise.any and Promise.allSettled were just merged to main.

@lahma
Copy link
Collaborator

lahma commented Oct 20, 2022

A feature popular among the cool kids is now available on main branch/MyGet feed called async/await. Please try it out and prepare to make PRs if it doesn't work 😉

We can cross it out as completed if no-one complains too much.

Don't forget to donate all the big business money to GitHub sponsors, I spent a vacation day with this

@lahma
Copy link
Collaborator

lahma commented Oct 23, 2022

A slightly exotic feature called FinalizationRegistry has landed main. As it's related to garbage collection there might still be some quirks to fix, but now also that feature box has been ticked.

@lahma
Copy link
Collaborator

lahma commented Nov 20, 2022

Implementations for https://github.com/tc39/proposal-symbols-as-weakmap-keys and https://github.com/tc39/proposal-change-array-by-copy (stage 3 proposals) have been merged to main.

@jhouxzirrus
Copy link

Is there a Minimum Features list somewhere for what is expected for a Version 3 full release?

If there's no clearly defined minimum features list, then this thing is going to continue sitting in Beta forever.

Expecting 100% coverage is unrealistic, and it seems to me like the current coverage probably warrants non-beta.

Also, it would be great if this thing was easily added from NuGet package manager. Only version 2 seems visible right now.

@lahma
Copy link
Collaborator

lahma commented Mar 13, 2023

@jhouxzirrus would you be ok with non-semantic versioning - like API and feature brreaking changes in minor releases?

@pha3z
Copy link

pha3z commented Mar 14, 2023

@jhouxzirrus would you be ok with non-semantic versioning - like API and feature brreaking changes in minor releases?

I think those concerns are secondary.

After establishing a minimum reasonable features set, then its possible to target that set for a major release followed by minor releases that consist of fixes to any discovered bugs or oversights.

Features beyond the minimum set would then be consideration either for minor releases where code impact is low (minimal to no breaking changes), or target the next major release (version 4).

I'm just saying.... when you build software without targeting a restricted feature set (especially for something as pervasive as ECMA features), you end up in "forever beta" territory and that has a distinct negative impact on users.... not to mention possible burnout for project contributors since they feel like the project will never be complete.

@lahma
Copy link
Collaborator

lahma commented Mar 14, 2023

@pha3z If such minimum list would be established, would you like to help out implementing the missing bits? I think concrete help would be the key instead of talking about how software should be planned or released.

@pha3z
Copy link

pha3z commented Mar 14, 2023

I'm not sure I'm qualified to assist or have time.

I only observed that the project seems to be very mature, and so I poked my head into suggest that maybe its not really beta material anymore.... and wondered if maybe it needs a ribbon on it so it can be published to nuget and made easier for users to get started with it. :)

@lahma

This comment was marked as resolved.

@lahma
Copy link
Collaborator

lahma commented May 14, 2023

All ECMAScript 2022 features should now be supported in main:

  • Class Fields
  • RegExp Match Indices
  • Top-level await
  • Ergonomic brand checks for Private Fields
  • .at()
  • Accessible Object.prototype.hasOwnProperty (Object.hasOwn)
  • Class Static Block
  • Error Cause

Also ECMAScript 2020 export * as ns from was actually already working for modules and covered by tests. Updated supported feature list can be seen on repo's README.md.

@cyraid
Copy link

cyraid commented May 14, 2023

All ECMAScript 2022 features should now be supported in main:

  • Class Fields
  • RegExp Match Indices
  • Top-level await
  • Ergonomic brand checks for Private Fields
  • .at()
  • Accessible Object.prototype.hasOwnProperty (Object.hasOwn)
  • Class Static Block
  • Error Cause

Also ECMAScript 2020 export * as ns from was actually already working for modules and covered by tests. Updated supported feature list can be seen on repo's README.md.

Wow, seriously? What are you guys, machines? Jokes aside, good job!

Edit: What are you guys missing, just tail calls and generators?

@lahma
Copy link
Collaborator

lahma commented May 14, 2023

Edit: What are you guys missing, just tail calls and generators?

Basically generators. Tail calls is a bit niche and might not be worth the effort. Async has some corner cases to fix too.

@lahma
Copy link
Collaborator

lahma commented May 16, 2023

Now that ES2023 is nearing finalization, it seems that Jint has those features also covered, go figure. README has been updated to reflect that.

  • Array find from last
  • Change Array by copy
  • Hashbang Grammar
  • Symbols as WeakMap keys

@lahma lahma closed this as completed May 16, 2023
@lahma lahma reopened this May 16, 2023
Repository owner locked and limited conversation to collaborators May 16, 2023
@lahma lahma converted this issue into discussion #1555 May 16, 2023

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
Projects
None yet
Development

No branches or pull requests