Maintain order of property enumeration by keeping a linked list.
Let hasproperty push the value of the property on the stack if it exists.
Rename non-js utility sources to not have the 'js' prefix.
Implement substring and slice.
Add some more String functions.
Implement some Array functions.
Guard String.fromCharCode malloc with try/endtry.
Add js_hasproperty function.
Update LICENSE and AUTHORS
Create variables as DontDelete and DontEnum.
Fix off-by-one error in String.fromCharCode().
Add 'own' argument to iterator.
Implement a smarter deletion of properties when resizing an array.
Print a better error message when trying to call a non-function.
Make sure to pop error object when we catch them at the top level dofile call.
Fix bug in case OP_INITPROP_N where we used the value as the key.
Don't look for labels past function borders.
Push result of delete operator.
Create special initializer opcodes for brevity.
Automagically update Array length property.
Refactor property get/set internals.
Move non-standard 'gc' and 'print' global functions into main.c example.
Add a registry for stashing hidden javascript objects from C code.
Use ES5 specification for implementation of Error.prototype.toString().
Leave last evaluated expression on the stack for script code.
Record whether a function is script or function code.
Fix switch test-chain stack leftovers. Fix iterator on null and undefined.
Free iterator nodes as they are being iterated over.
Set property attributes on built-in objects and respect DontEnum.
Omit needless setjmp guard over catch block in try/catch statement.
Add 'string' operand versions of get/set/del property opcodes.
Use 'emitraw' function to emit operands in preparation for eventual peephole optimisations.
Add iterator object class for internal use in for-in loops.
Make instanceof a public function.
Implement instanceof expression.
Compile switch statements.
Add stack and scope balancing to exits from try/catch blocks.
Support empty expressions in for statements.
Implement try/catch/finally exception handling.
Clean up stack and with/endwith balancing on abrupt exits.
Remove incorrect eval result hack.
Break and continue to labelled statements.
Implement unlabeled break and continue.
Add prefixes and remove duplicate functions.
Make jsY_error return void (as it is a noreturn function).
Remove jsconf.h as it is not really useful.
Rename files and move a few functions around.
Fix CFunction calling conventions.
Fix constructors to return the created object if the function doesn't.
Clean up error object creation and throwing functions.
Rename many jsR functions to jsV.
Add enum-to-string functions for syntax tree and opcodes.
Split header into js.h public and jsi.h private. Start cleaning up
Add Error builtin objects and exception stack.
Fix bug in toFixed, toPrecision and toExponential.
Use ECMA-262 r5 semantics for missing this argument to call/apply.
Optimize String.prototype.charAt and charCodeAt.
Implement String.prototype.charAt and charCodeAt.
Rename jsR_numbertostring to jsR_stringfromnumber.
Create readonly length property on string objects.
Implement Function.prototype.toString()
Alloc interned strings at the end of the string nodes.
Put js_Object contents in a union.
Implement Function.prototype.apply()
More builtins. Fix prototype chains for builtin classes and prototypes.
Implement Number and Object classes.
Refactor ToString and ToNumber functions. Add ToPrimitive.
Implement relational and equality operators.
Reorder switch cases to match opcode order.
Support 'typeof' operator.
Return value of last evaluated expression in eval and script code.
Don't pass pointless 'sp' pointer throughout lexer now that we use
Simplify newline tests since we normalize line endings in next().
Handle \uXXXX escapes in identifiers.
Fix bug in number parsing.
Rewrite lexer to use a proper lookahead token.
Save line number where the token starts for improved error messages.
Import UTF-8 and runestring functions from plan9port.
Remember to remove openames.h when cleaning.
Move object creation functions into jsobject.c
Rename functions that push new objects on the stack.
Add allocation counter to trigger garbage collector during interpretation.
Add constructors called with 'new' keyword.