Fix duplicate constant storage in bytecode.- NaN boxing (cancelled)
Refactor VM to use TCO?Add||or&&operator support.Addelsestatement support.Addwhilestatement support.Add support for undefined variable declarations.Add static-size & heap strings with interning.Add simple data objects.Add custom natives:console,clockobjects!Add larger strings underObjectBase<Value>, StringBasefor string literals.Makebanana.jswork.Add anonymous functions as expressions.Add support forthisin functions & objects.Add Arrays:Add mark and sweep GC.Addbreakandcontinue.Parse function decls differently:function name() {}is likevar name = function() {...}.Hoistvardecls per scope.Add support for scoped symbol resolution in bytecode generation.- FIX GC to track DEAD CAPTURE OBJECTS!!Add support for Property Descriptors.Add anObject.methodAPI:UpdateObjectandArraybuilt-ins to be more conformant:Addtypeofandvoidoperators.Add implicitretopcode on omitted returns- it yields athisreference on ctor-mode calls, discarding any regular expr result.Addarray.lengthwith side-effects!MakeStringa constructor function & add some methods.Refactor bytecode gen to Dep. Inj. modules for generating each expr / stmt.Add prefix increment & decrement operator.Support Polyfills.Add exceptions (seecodegen.md).Add for loops.Function.prototypeshould be a dud function (returnundefined& length =0).- Improve operations for objects:
- DELAYED: Improve
as_stringmethod of object-base... Pretty print object literal /[object <class name> ... ] Addx instanceof yoperator.Add rest parameters by ES6.Adddeleteoperator.Add postfix++and--operators.- Add more statement support:
- Empty statement
return;semanticsdo {} while (cond);semantics- Allow any statement in if/else, while, for...
- Add whitespace escapes and hex ASCII escapes in string literals.
- Improve runtime errors: WIP
ReferenceErroron bad property accesses.SyntaxErroron bad syntax evaluation / Function ctor calls.
- Add
__proto__AKA[[prototype]]support:- Add
__proto__to parsing. - Add
__proto__support to bytecode & compiler. - Add
__proto__support toValue& VM. - Add
__proto__test cases.
- Add
- Add more support for built-in methods:
- String methods: concat, split
- Object methods: keys, seal, isFrozen, isSealed, isConfigurable, hasOwnProperty
- Date methods: instance getters & setters, toString?? toDateString??
- Math methods: E, LOG, PI constants, pow, cos, sin, tan, log, logn, floor, ceil
- Array methods: some, reduce, shift, unshift, splice, sort