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
d1a4053953
jscript: Fixed func->funcs leak.
2012-04-25 12:16:56 +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
05d59abc1c
jscript: Make sure to jump out of switch before entering implicit default clausule.
2012-04-16 12:08:56 +02:00
Jacek Caban
353553e0aa
jscript: Emit undefined statement return for switch without default clausule.
2012-04-02 14:14:30 +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
a1c4c84005
jscript: Store parser_ctx_t in bytecode_t instead of other way around.
2012-03-13 10:30:49 +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
4fb1cad149
jscript: Simplify compile_subscript_stat.
2012-03-13 10:30:22 +01:00
Alexandre Julliard
902915f667
jscript: Set return value after assert(0) to avoid warnings.
2012-01-17 15:02:47 +01:00
Jacek Caban
4aec6b1090
jscript: Added labelled continue statement implementation.
2012-01-17 14:08:32 +01:00
Jacek Caban
9a4e12aa93
jscript: Added labelled break statement implementation.
2012-01-17 14:07:54 +01:00
Jacek Caban
383e2b1a0e
jscript: Added labelled statement implementation.
2012-01-17 14:06:13 +01:00
Jacek Caban
dc5a75a7ac
jscript: Fixed continue inside for..in statement.
2012-01-10 17:58:57 +01:00
Jacek Caban
4f59ab4ab7
jscript: Use 0 as an invalid label value.
2012-01-03 12:37:23 +01:00
Jacek Caban
708c83e208
jscript: Make 0 an invalid code offset.
2012-01-03 12:37:22 +01:00
Jacek Caban
11453b2414
jscript: Always alloc the first chunk of code buffer.
2012-01-03 12:37:22 +01:00
Jacek Caban
83e8658894
jscript: Get rid of no longer needed interp_tree.
2011-12-30 15:41:06 +01:00
Jacek Caban
cdd90254dd
jscript: Get rid of no longer needed compile_interp_fallback since we can handle all execution by bytecode.
...
We use compiler on whole functions body now. There is still some work
done to move it one level up (to whole source string) to do some work
that's currently done (sometimes in a hacky way) by parser, but the most
critical part is done.
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
11ccf0f33e
jscript: Handle invalid continue statements in compiler.
2011-12-30 15:41:01 +01:00
Jacek Caban
7361cdc2f3
jscript: Handle invalid break statements in compiler.
2011-12-30 15:40:58 +01:00
Jacek Caban
59619073a8
jscript: Added bytecode dumper implementation.
2011-12-29 16:18:51 +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
8f8c852897
jscript: Get rid of no longer needed no_fallback hack.
2011-12-28 17:49:30 +01:00
Jacek Caban
c5c2276a9f
jscript: Added bytecode versions of break and continue statements.
2011-12-28 17:49:19 +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
17fedc448b
jscript: Added bytecode version of for loop statement.
2011-12-27 16:55:07 +01:00
Jacek Caban
f5425aeeca
jscript: Added bytecode version of while statement.
2011-12-27 16:55:07 +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
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
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
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