This repository was archived by the owner on Dec 31, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
This repository was archived by the owner on Dec 31, 2024. It is now read-only.
ES6 Support #24
Copy link
Copy link
Open
Description
Currently, the engine has good ES5 support. However, for any real-world application having ES6 support is imperative.
The following features ought to be implemented:
- Arrow functions (ES6 Support Groundwork + Fixes #26)
- Default arguments (ES6 Support Groundwork + Fixes #26)
- Spread arguments (ES6 Support Groundwork + Fixes #26)
- ES6-style variable declarations (let and const) (ES6 Support Groundwork + Fixes #26)
- Variable, parameter and assignment deconstructions (ES6 Object and assignment destructors + object stuff #28)
- Object literal shorthands, methods and computed keys (ES6 Object and assignment destructors + object stuff #28)
- Class definitions (Classes #29 WIP)
- Array deconstructors
- Spread syntax in objects
- Spread syntax in arrays
- Spread syntax in calls (and dynamic argument count in calls)
- Nullish coalescing operator and assignment (??)
- Optional indexing (.?)
- &&= and ||= operators (ES5 features that are missing)
- Generator functions
- new.target
- Exponent operator
- For-of loop
- Optional parsing mode for ES module files
The following will NOT be implemented:
- eval() - brings multiple complexities into the project, mostly with the resolution of variables in the runtime, for the benefit of a feature which is unsafe and has the better alternative of the Function constructor
- Non-strict context (aka JS code will be compiled and run "use strict" implied)
Metadata
Metadata
Assignees
Labels
No labels