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