📄 todo
字号:
TODO Virtual Machine & JS API
=============================
* Write tests for the built-in File object.
* js_interp_reinit(): restore the interpreter to the same state where
it was after the js_create_interp() call. Or, js_clone_interp() to
create a clone of a running interpreter. Or, speedup the compiler
definition: on-demand, something else?
* src/regexp.h file:
#define regcomp my_regcomp
#define regexec my_regexec
#define regfree my_regfree
* Cleanup the error message and error code passing in the JSIOStream
interface.
* compilation / configuration
- `--with-*' options to enable / disable features like: crc32,
regexp, compiler, getcwd, popen
* There are still some memory leaks that occur when the dynamic memory
allocation fails and we have some previously allocated stuffs on
stack variables. Find a nice solution for this.
* Dynamic stack expansion in case of stack overflow and shrinking when
the stack usage is less that some fraction of the stack space.
* System
methods: readln(), printf()
* object Function
implement
* object Date
methods: parse, getTimezoneOffset, UTC
constructor with 1 argument
* object Object
properties: constructor
methods: toString
Check that all built-in objects implement toString(). The other
methods and all properties are currently unimplemented.
* Added the flags JS_ATTRIB_READONLY, JS_ATTRIB_DONTENUM, etc. for the
object properties.
* Built-ins
Allow users to overwrite the default methods. Basicly, we have all
that is needed for this. I just want to think this one for a while,
because the default __proto__ lookup will slow the built-in method
dispatching.
* String.format() might be handy
* byte-code operands
- `load_array' and `store_array' to work with built-in objects with
integer array indexes
- `nth' to work with built-in objects
- cmp_{eq,ne}: object OP string/number
* operand delete_property: support for the with-chains
* RegExp.multiline property
* String.{,un}pack(): implement all missing type specifiers
* allow user-defined global methods for the JavaScript extension
* Tcl extension
* Garbage collection should be re-implemented. Incremental?
Generational? Maybe, maybe not.
* Garbage collection (slot recycling) for constants. The current
implementation leaks the constant slots when functions (and
therefore the constants) are freed.
* tests for built-in objects and methods. Do this at the same time
when the documentation is updated.
* byte-code operand profiling shows the following facts:
operand #hits relative hits
----------------------------------------
store_property 1048 21.38
load_property 741 15.12
call_method 531 10.83
store_local 272 5.55
...
maybe the implementation of the object properties could be
optimized
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -