1Misc: 2- use realpath in module name normalizer and put it in quickjs-libc 3- use custom printf to avoid C library compatibility issues 4- rename CONFIG_ALL_UNICODE, CONFIG_BIGNUM, CONFIG_ATOMICS, CONFIG_CHECK_JSVALUE ? 5- unify coding style and naming conventions 6- use names from the ECMA spec in library implementation 7- modules: if no ".", use a well known module loading path ? 8- use JSHoistedDef only for global variables (JSHoistedDef.var_name != JS_ATOM_NULL) 9- add index in JSVarDef and is_arg flag to merge args and vars in JSFunctionDef 10- replace most JSVarDef flags with var_type enumeration 11- use byte code emitters with typed arguments (for clarity) 12- use 2 bytecode DynBufs in JSFunctionDef, one for reading, one for writing 13 and use the same wrappers in all phases 14- use more generic method for line numbers in resolve_variables and resolve_labels 15- use custom timezone support to avoid C library compatibility issues 16 17Memory: 18- test border cases for max number of atoms, object properties, string length 19- add emergency malloc mode for out of memory exceptions. 20- test all DynBuf memory errors 21- test all js_realloc memory errors 22- bignum: handle memory errors 23- use memory pools for objects, etc? 24- improve JS_ComputeMemoryUsage() with more info 25 26Optimizations: 27- 64-bit atoms in 64-bit mode ? 28- use auto-init properties for more global objects 29- reuse stack slots for disjoint scopes, if strip 30- optimize `for of` iterator for built-in array objects 31- add heuristic to avoid some cycles in closures 32- small String (0-2 charcodes) with immediate storage 33- perform static string concatenation at compile time 34- optimize string concatenation with ropes or miniropes? 35- add implicit numeric strings for Uint32 numbers? 36- optimize `s += a + b`, `s += a.b` and similar simple expressions 37- ensure string canonical representation and optimise comparisons and hashes? 38- remove JSObject.first_weak_ref, use bit+context based hashed array for weak references 39- optimize function storage with length and name accessors? 40- property access optimization on the global object, functions, 41 prototypes and special non extensible objects. 42- create object literals with the correct length by backpatching length argument 43- remove redundant set_loc_uninitialized/check_uninitialized opcodes 44- peephole optim: push_atom_value, to_propkey -> push_atom_value 45- peephole optim: put_loc x, get_loc_check x -> set_loc x 46- comparative performance benchmark 47- use variable name when throwing uninitialized exception if available 48- convert slow array to fast array when all properties != length are numeric 49- optimize destructuring assignments for global and local variables 50- implement some form of tail-call-optimization 51- optimize OP_apply 52- optimize f(...b) 53 54Extensions: 55- support more features in [features] section 56- add built-in preprocessor in compiler, get rid of jscompress 57 handle #if, #ifdef, #line, limited support for #define 58- get rid of __loadScript, use more common name 59- BSD sockets 60 61REPL: 62- debugger 63- readline: support MS Windows terminal 64- readline: handle dynamic terminal resizing 65- readline: handle double width unicode characters 66- multiline editing 67- runtime object and function inspectors 68- interactive object browser 69- use more generic approach to display evaluation results 70- improve directive handling: dispatch, colorize, completion... 71- save history 72- close all predefined methods in repl.js and jscalc.js 73 74Test262o: 0/11262 errors, 463 excluded 75Test262o commit: 7da91bceb9ce7613f87db47ddd1292a2dda58b42 (es5-tests branch) 76 77Test262: 30/71095 errors, 870 excluded, 549 skipped 78Test262 commit: 281eb10b2844929a7c0ac04527f5b42ce56509fd 79