git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4664 ed5197a5-7fde-0310-b194-c3ffbd925b24
		
			
				
	
	
		
			71 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
Bugs:
 | 
						|
- modules: better error handling with cyclic module references
 | 
						|
 | 
						|
Misc ideas:
 | 
						|
- use custom printf to avoid compatibility issues with floating point numbers
 | 
						|
- consistent naming for preprocessor defines
 | 
						|
- unify coding style and naming conventions
 | 
						|
- use names from the ECMA spec in library implementation
 | 
						|
- use byte code emitters with typed arguments (for clarity)
 | 
						|
- use 2 bytecode DynBufs in JSFunctionDef, one for reading, one for writing
 | 
						|
  and use the same wrappers in all phases
 | 
						|
- use more generic method for line numbers in resolve_variables and resolve_labels
 | 
						|
- use custom timezone support to avoid C library compatibility issues
 | 
						|
 | 
						|
Memory:
 | 
						|
- use memory pools for objects, etc?
 | 
						|
- test border cases for max number of atoms, object properties, string length
 | 
						|
- add emergency malloc mode for out of memory exceptions.
 | 
						|
- test all DynBuf memory errors
 | 
						|
- test all js_realloc memory errors
 | 
						|
- improve JS_ComputeMemoryUsage() with more info
 | 
						|
 | 
						|
Built-in standard library:
 | 
						|
- BSD sockets
 | 
						|
- modules: use realpath in module name normalizer and put it in quickjs-libc
 | 
						|
- modules: if no ".", use a well known module loading path ?
 | 
						|
- get rid of __loadScript, use more common name
 | 
						|
 | 
						|
REPL:
 | 
						|
- debugger
 | 
						|
- readline: support MS Windows terminal
 | 
						|
- readline: handle dynamic terminal resizing
 | 
						|
- readline: handle double width unicode characters
 | 
						|
- multiline editing
 | 
						|
- runtime object and function inspectors
 | 
						|
- interactive object browser
 | 
						|
- use more generic approach to display evaluation results
 | 
						|
- improve directive handling: dispatch, colorize, completion...
 | 
						|
- save history
 | 
						|
- close all predefined methods in repl.js and jscalc.js
 | 
						|
 | 
						|
Optimization ideas:
 | 
						|
- 64-bit atoms in 64-bit mode ?
 | 
						|
- 64-bit small bigint in 64-bit mode ?
 | 
						|
- reuse stack slots for disjoint scopes, if strip
 | 
						|
- add heuristic to avoid some cycles in closures
 | 
						|
- small String (0-2 charcodes) with immediate storage
 | 
						|
- perform static string concatenation at compile time
 | 
						|
- optimize string concatenation with ropes or miniropes?
 | 
						|
- add implicit numeric strings for Uint32 numbers?
 | 
						|
- optimize `s += a + b`, `s += a.b` and similar simple expressions
 | 
						|
- ensure string canonical representation and optimise comparisons and hashes?
 | 
						|
- remove JSObject.first_weak_ref, use bit+context based hashed array for weak references
 | 
						|
- property access optimization on the global object, functions,
 | 
						|
  prototypes and special non extensible objects.
 | 
						|
- create object literals with the correct length by backpatching length argument
 | 
						|
- remove redundant set_loc_uninitialized/check_uninitialized opcodes
 | 
						|
- peephole optim: push_atom_value, to_propkey -> push_atom_value
 | 
						|
- peephole optim: put_loc x, get_loc_check x -> set_loc x
 | 
						|
- convert slow array to fast array when all properties != length are numeric
 | 
						|
- optimize destructuring assignments for global and local variables
 | 
						|
- implement some form of tail-call-optimization
 | 
						|
- optimize OP_apply
 | 
						|
- optimize f(...b)
 | 
						|
 | 
						|
Test262o:   0/11262 errors, 463 excluded
 | 
						|
Test262o commit: 7da91bceb9ce7613f87db47ddd1292a2dda58b42 (es5-tests branch)
 | 
						|
 | 
						|
Result: 41/76133 errors, 1497 excluded, 8650 skipped
 | 
						|
Test262 commit: 6cbb6da9473c56d95358d8e679c5a6d2b4574efb
 |