Commit Graph

215 Commits

Author SHA1 Message Date
Jacek Caban 16b2b019b8 jscript: Use jsval_t instead of VARIANT for stack values. 2012-09-17 18:27:42 +02:00
Jacek Caban 8c5f5b49ec jscript: Added support for host objects being part of scope chain. 2012-09-13 16:47:29 +02:00
Jacek Caban dc2133cc66 jscript: Added support for no new line between break and identifier rule. 2012-09-10 17:36:02 +02:00
Jacek Caban 4cfab07748 jscript: Always store numeric literals as double. 2012-06-20 19:20:57 +02:00
Jacek Caban 35e663425d jscript: Store double op arg directly instead of by pointer. 2012-05-14 12:04:23 +02:00
Jacek Caban e273636d4d jscript: Make flags parameter of OP_regexp unsigned. 2012-05-14 12:04:22 +02:00
Jacek Caban 0d5defafd4 jscipt: Make arg_cnt parameter of OP_new unsigned. 2012-05-14 12:04:22 +02:00
Jacek Caban ca15adfde6 jscript: Get rid of parser function collecting hack by moving the logic to compiler. 2012-04-26 19:27:36 +02:00
Jacek Caban 474f1152b2 jscript: Moved collecting variable declarations from parser to compiler. 2012-04-25 12:17:08 +02:00
Jacek Caban b866c7f5e9 jscript: Make parser a temporary compiler object. 2012-04-25 12:17:04 +02:00
Jacek Caban 97b44da746 jscript: Store function parameters in function_code_t. 2012-04-25 12:17:01 +02:00
Jacek Caban 64a3f5077f jscript: Store variable names in function_code_t. 2012-04-25 12:16:52 +02:00
Jacek Caban 375ab889d8 jscript: Store source code range in function_code_t. 2012-04-24 17:45:27 +02:00
Jacek Caban 8c533d10d6 jscript: Store function name in function_code_t. 2012-04-24 17:45:18 +02:00
Jacek Caban d76b675ea8 jscript: Use compiler-generated struct for representing function code. 2012-04-24 17:45:16 +02:00
Jacek Caban 0b0e34ab39 jscript: Addded parameterized property assignment support. 2012-04-17 19:19:03 +02:00
Jacek Caban f7a8650500 jscript: Added decoding support. 2012-03-26 18:15:11 +02:00
Jacek Caban 0762106648 jscript: Store source code in bytecode_t. 2012-03-26 18:15:08 +02:00
Jacek Caban a6ee63eef3 jscript: Removed no longer needed ref counting in parser_ctx_t. 2012-03-13 10:30:53 +01:00
Jacek Caban a1c4c84005 jscript: Store parser_ctx_t in bytecode_t instead of other way around. 2012-03-13 10:30:49 +01:00
Jacek Caban 8c347fd71d jscript: Store script context in exec_ctx_t. 2012-03-13 10:30:42 +01:00
Jacek Caban 9d4b0bd502 jscript: Don't store compiler_ctx_t in parser_ctx_t. 2012-03-13 10:30:36 +01:00
Jacek Caban be29a73845 jscript: Call script_parse from compile_script, not the other way around. 2012-03-13 10:30:32 +01:00
Jacek Caban 825eb76321 jscript: Compile all function from given source in one run. 2012-03-13 10:30:27 +01:00
Jacek Caban 9f83c6061f jscript: Store bytecode_t in exec_ctx_t. 2012-03-13 10:30:18 +01:00
Jacek Caban f03b24ad3e jscript: Get rid of no longer used OP_label. 2012-01-17 14:08:33 +01:00
Jacek Caban 9752df99af jscript: Get rid of instr_off from expression_t. 2012-01-03 12:37:23 +01:00
Jacek Caban da07748ca2 jscript: Get rid of return_type_t. 2011-12-30 15:41:07 +01:00
Jacek Caban 83e8658894 jscript: Get rid of no longer needed interp_tree. 2011-12-30 15:41:06 +01:00
Jacek Caban e0552ad8c3 jscript: Use bytecode for labeled continue and break statements. 2011-12-30 15:41:06 +01:00
Jacek Caban fc092da98e jscript: Use bytecode for return statement implementation. 2011-12-30 15:41:05 +01:00
Jacek Caban dd7a5301e6 jscript: Make compiler responsible for proper return from regular code vs. eval-interpreted code. 2011-12-30 15:41:04 +01:00
Jacek Caban ee6e6986fb jscript: Moved instr_off from statement_t to source_elements_t. 2011-12-29 16:18:50 +01:00
Jacek Caban b3907c40f7 jscript: No longer support per-statement compilation. 2011-12-29 16:18:50 +01:00
Jacek Caban 6710e7ec6f jscript: Get rid of stat_eval_table. 2011-12-29 16:18:49 +01:00
Jacek Caban 2dcb8d412f jscript: Always use bytecode for while statement. 2011-12-29 16:18:48 +01:00
Jacek Caban c6932d8069 jscript: Always use bytecode for try statement. 2011-12-29 16:18:47 +01:00
Jacek Caban 985c6a1943 jscript: Always use bytecode for switch statement. 2011-12-29 16:18:46 +01:00
Jacek Caban f904bc8e78 jscript: Always use bytecode for for statement. 2011-12-29 16:18:46 +01:00
Jacek Caban 2c0920f8c3 jscript: Always use bytecode for for..in statement. 2011-12-29 16:18:45 +01:00
Jacek Caban 1c0fe6002d jscript: Always use bytecode for with statement. 2011-12-29 16:18:44 +01:00
Jacek Caban 80113b5c5c jscript: Use labels in compiler for ending loops. 2011-12-28 17:49:15 +01:00
Jacek Caban 3b56e49ef9 jscript: Added bytecode version of try statement. 2011-12-28 17:48:48 +01:00
Jacek Caban 02ff8d1853 jscript: Use bytecode for throw statement. 2011-12-28 17:48:42 +01:00
Jacek Caban 3f4f9f0f40 jscript: Rename throw opcode to throw_ref. 2011-12-28 17:48:37 +01:00
Jacek Caban 661241a392 jscript: Added bytecode version of for..in statement. 2011-12-28 17:48:32 +01:00
Jacek Caban a6530f4032 jscript: Use bytecode for labelled statement stub. 2011-12-27 16:55:09 +01:00
Jacek Caban c57dd899a4 jscript: Added bytecode version of switch statement. 2011-12-27 16:55:08 +01:00
Jacek Caban abffe88e19 jscript: Added bytecode version of with statement. 2011-12-27 16:55:08 +01:00
Jacek Caban 95677c5099 jscript: Added new jmp_z opcode, more appropriate for branches. 2011-12-20 20:06:30 +01:00
Jacek Caban e5d7d50faa jscript: Renamed jmp_z and jmp_nz to cnd_z and cnd_nz. 2011-12-20 20:06:30 +01:00
Jacek Caban 00030ff66f jscript: Get rid of no longer needed identifier in exprval_t. 2011-12-20 20:06:29 +01:00
Jacek Caban f5a3f1417e jscript: Get rid of no longer used expr_eval flags. 2011-12-20 20:06:29 +01:00
Jacek Caban 5c158f1df6 jscript: Use compiler to handle variable statement. 2011-12-20 20:06:28 +01:00
Jacek Caban 7c3160ae02 jscript: Use compiler for hanling empty statements. 2011-12-19 20:15:47 +01:00
Jacek Caban cf2fc11e31 jscript: Use compiler for handling if statement. 2011-12-19 20:15:47 +01:00
Jacek Caban ccba279b89 jscript: Use compiler for handling expression statements. 2011-12-19 20:15:47 +01:00
Jacek Caban 2f3e27f09a jscript: Use bytecode for execution main code block in exec_source. 2011-12-19 20:15:46 +01:00
Jacek Caban f6023c428a jscript: Use bytecode for block statement implementation. 2011-12-19 20:15:46 +01:00
Jacek Caban 42aefd424d jscript: Store type information in statement nodes. 2011-12-19 20:15:45 +01:00
Jacek Caban 6b1077e2cb jscript: Invoke bytecode directly from expr_eval. 2011-12-16 16:38:29 +01:00
Jacek Caban fecc2fcb5e jscript: Get rid of no longer needed expression eval entry. 2011-12-16 16:38:28 +01:00
Jacek Caban 5e6faaea12 jscript: Use bytecode for object literal implementation. 2011-12-16 16:38:28 +01:00
Jacek Caban b268e41da6 jscript: Use bytecode for function expression implementation. 2011-12-16 16:38:28 +01:00
Jacek Caban 63366f8f1b jscript: Always use compiler for member, array and identifier expressions. 2011-12-15 17:46:47 +01:00
Jacek Caban fd6ecbd781 jscript: Throw type error on invalid delete. 2011-12-15 17:46:42 +01:00
Jacek Caban 3fd2979fba jscript: Use byte code for deleting identifier expressions. 2011-12-15 17:46:41 +01:00
Jacek Caban 3caf287630 jscript: Use bytecode for typeof expression implementation. 2011-12-13 18:59:10 +01:00
Jacek Caban 6f35c8fd5d jscript: Use bytecode for instanceof implementation. 2011-12-12 15:50:46 +01:00
Jacek Caban 7c3728d728 jscript: Use bytecode for '<<=' expression implementation. 2011-12-09 21:15:29 +01:00
Jacek Caban a80392e5ea jscript: Use bytecode for '<<' expression implementation. 2011-12-09 21:15:28 +01:00
Jacek Caban 7904932a9e jscript: Use bytecode for '>>>=' expression implementation. 2011-12-09 21:15:28 +01:00
Jacek Caban 96e822a33e jscript: Use bytecode for '>>>' expression implementation. 2011-12-09 21:15:28 +01:00
Jacek Caban d30bfb6e54 jscript: Use bytecode for '>>=' expression. 2011-12-08 18:00:16 +01:00
Jacek Caban 28013dfa6f jscript: Use bytecode for '>>' expression. 2011-12-08 18:00:14 +01:00
Jacek Caban fc4948af2c jscript: Use bytecode for '&=' expression implementation. 2011-12-08 18:00:12 +01:00
Jacek Caban 1ef486421e jscript: Use bytecode for binary and implementation. 2011-12-08 18:00:11 +01:00
Jacek Caban 558d759465 jscript: Use bytecode for array literal expressions. 2011-12-08 18:00:09 +01:00
Jacek Caban 4d0e360266 jscript: Use bytecode for pre-decrement implementation. 2011-12-08 18:00:07 +01:00
Jacek Caban 667cc2e68a jscript: Use bytecode for pre-increment expression implementation. 2011-12-08 18:00:05 +01:00
Jacek Caban e1da3d7242 jscript: Use bytecode for post-decrement expression. 2011-12-07 17:50:02 +01:00
Jacek Caban a508149fad jscript: Use bytecode for post-increment expression. 2011-12-07 17:50:01 +01:00
Jacek Caban aa809f1b7e jscript: Added bytecode version of array expression. 2011-12-07 17:50:01 +01:00
Jacek Caban 9c9157a144 jscript: Use binary_expression_t instead of array_expression_t. 2011-12-07 17:50:01 +01:00
Jacek Caban 4da0cf39f4 jscript: Use bytecode for all call expressions. 2011-12-07 17:50:00 +01:00
Jacek Caban 3aa7cee00e jscript: Use bytecode for calls on identifier and member expressions. 2011-12-07 17:50:00 +01:00
Jacek Caban 9749de29bc jscript: Use bytecode for '^=' expression implementation. 2011-12-06 15:50:59 +01:00
Jacek Caban c74641acf2 jscript: Use bytecode for '|=' expression. 2011-12-06 15:50:59 +01:00
Jacek Caban a289b8e0a4 jscript: Added bytecode version of member expression. 2011-12-06 15:50:59 +01:00
Jacek Caban 822fdde42d jscript: Use bytecode for '%=' expression implementation. 2011-12-06 15:50:59 +01:00
Jacek Caban e9bd2e47f8 jscript: Use bytecode for '/=' expression implementation. 2011-12-06 15:50:59 +01:00
Jacek Caban 0ff59f444b jscript: Use bytecode for '*=' expression implementation. 2011-12-06 15:50:59 +01:00
Jacek Caban 7b022dbbb8 jscript: Use bytecode for '-=' expression implementation. 2011-12-05 12:25:14 +01:00
Jacek Caban 087afe8b79 jscript: Use bytecode for '+=' expression implementation. 2011-12-05 12:25:09 +01:00
Jacek Caban 8511797c07 jscript: Use bytecode for invalid assignments. 2011-12-05 12:25:04 +01:00
Jacek Caban 9aafd03110 jscript: Use bytecode for assigning to array expression. 2011-12-05 12:24:55 +01:00
Jacek Caban d3d2f063b6 jscript: Use bytecode for assignment to identifier. 2011-12-05 12:24:50 +01:00
Jacek Caban 9f9f5ae0a7 jscript: Use bytecode for '>=' expression implementation. 2011-12-01 14:18:41 +01:00
Jacek Caban f3e18fbf03 jscript: Use bytecode for '>' expression implementation. 2011-12-01 14:18:37 +01:00
Jacek Caban fb51810a95 jscript: Use bytecode for '<=' expression implementation. 2011-12-01 14:18:33 +01:00