104 Commits

Author SHA1 Message Date
Ilmir Usmanov
f163f9f5da Allocate memory for string literals and identifiers dinamically. 2014-10-23 17:04:36 +04:00
Ilmir Usmanov
6b06cef1c8 Property getters and setters also create scope 2014-10-22 14:26:14 +04:00
Ilmir Usmanov
ec6572d501 Add support of function expressions scopes. Uncomment tests. 2014-10-21 22:22:04 +04:00
Ilmir Usmanov
62a42fa087 Add fail tests. Fix parser. 2014-10-21 20:35:07 +04:00
Ilmir Usmanov
3f7fca4d39 Implement full support of strict mode in parser. 2014-10-20 16:54:40 +04:00
Ilmir Usmanov
bd7fd40a32 Fix 'function' declaration parsing 2014-10-16 21:12:03 +04:00
Ilmir Usmanov
b1e6656fb4 Fix property increment 2014-10-16 20:32:19 +04:00
Ilmir Usmanov
2637911b3e Fix 'this_arg' 2014-10-16 16:05:48 +04:00
Ilmir Usmanov
16556eb830 Fix 'switch' bytecode generation. Remove __strtof. Fix opcodes pretty-printing. 2014-10-16 15:33:54 +04:00
Ilmir Usmanov
6b733b8cd2 Fix 'continue' bytecode generation. Fix tests. 2014-10-15 21:04:00 +04:00
Ilmir Usmanov
e1e7752a62 Fix bytecode generation of binary expressions. Fix bytecode generation of query operator. Fix tests. 2014-10-15 20:08:43 +04:00
Ilmir Usmanov
77d56c5f93 Fix function end meta in property setter and getter 2014-10-15 17:15:43 +04:00
Ilmir Usmanov
af5cf79d3c Use tmps as property names 2014-10-15 16:40:56 +04:00
Ilmir Usmanov
032031a861 Add unary_plus and unary_minus opcodes 2014-10-15 15:20:49 +04:00
Ilmir Usmanov
819361c234 Fix postfix expression parsing 2014-10-15 14:33:39 +04:00
Ilmir Usmanov
a49b52105e Fix generation of this_arg. Fix pretty-printing of retval, prop_setter, prop_getter and string assignments 2014-10-15 12:57:11 +04:00
Ilmir Usmanov
9be0a85c1c Fix 'while' bytecode generation 2014-10-14 16:55:09 +04:00
Ilmir Usmanov
053cbc769f Fix alignment: part 2 2014-10-14 15:06:21 +04:00
Ilmir Usmanov
8a517ab03e Add support of octal integer literals 2014-10-13 17:45:20 +04:00
Ilmir Usmanov
c33afca360 Add support of 'default' clause in 'switch' statement 2014-10-13 16:32:17 +04:00
Ilmir Usmanov
18618c6501 Freaking FINALLY: postparser 2014-10-12 20:34:23 +04:00
Ilmir Usmanov
63662dfb35 Postparser landing patch: add tree of scopes 2014-10-12 20:34:23 +04:00
Ilmir Usmanov
5c6dbd1466 Allow absent of semicolon before '}' token 2014-10-10 19:05:37 +04:00
Ilmir Usmanov
19d0690586 Support properties named 'get' and 'set' 2014-10-10 18:27:28 +04:00
Ilmir Usmanov
64a0d8a8b0 Fix error message on for-in loops 2014-10-10 14:57:56 +04:00
Ilmir Usmanov
2c90f8a7f1 Fix break and continue generation 2014-10-09 20:55:16 +04:00
Ilmir Usmanov
9cd4344c4e Fix for loop parsing 2014-10-09 19:58:13 +04:00
Ilmir Usmanov
eeb497b84b Fix if-else without braces 2014-10-09 19:41:42 +04:00
Ilmir Usmanov
29c734d95d Reuse tmps in vargs 2014-10-09 18:28:28 +04:00
Ilmir Usmanov
bfa186d43a Generate only one var_decl opcodes for each variable declared in a scope 2014-10-09 15:30:30 +04:00
Ilmir Usmanov
1dd94c12b2 Fix insert_semicolon 2014-10-08 19:15:25 +04:00
Ilmir Usmanov
24920cba57 Fix property names parsing 2014-10-08 17:09:02 +04:00
Ilmir Usmanov
c3f493c693 Some minor fixes in parser: Do not warn on escape sequences. Allow 'new' operator without parens. Fix 'var' parsing in preparser. Fix a test. 2014-10-08 16:32:36 +04:00
Ilmir Usmanov
9775d23274 Support 'delete' and 'void' operators in parser. 2014-10-08 14:52:38 +04:00
Ilmir Usmanov
3d3da5d481 Preparser: new pass to order var_decls prior to parser 2014-10-07 20:14:41 +04:00
Ilmir Usmanov
62cc3cc604 Fix && and || parsing 2014-10-06 14:35:26 +04:00
Ilmir Usmanov
3d5fd214f3 Add switch-case 2014-10-06 14:35:26 +04:00
Ilmir Usmanov
3819883f80 Add human-readable syntax errors 2014-10-03 19:01:45 +04:00
Ilmir Usmanov
c4c713535e Fix insert_semicolon 2014-10-02 21:35:39 +04:00
Ilmir Usmanov
af00691d1d Add this_arg dumping in parser 2014-10-02 19:31:29 +04:00
Ilmir Usmanov
eff5e1a80b Fix stack operations in parser 2014-10-02 15:04:00 +04:00
Ilmir Usmanov
c8b97214fe Parse undefined as simple 2014-10-01 14:30:04 +04:00
Ilmir Usmanov
6561c3fe6c Add support of array initialization like [1,,,'4'] 2014-09-30 19:44:45 +04:00
Ilmir Usmanov
9d129e15dc Allocate stack memory by chunks 2014-09-30 18:40:24 +04:00
Ilmir Usmanov
cde880b1cf Fix 'break' parsing 2014-09-25 18:06:21 +04:00
Ilmir Usmanov
42876bdc8f Add support of native calls 2014-09-25 15:57:57 +04:00
Ilmir Usmanov
05a2224faa Fix parsing of assignment expressions without assignment operator. 2014-09-24 16:53:58 +04:00
Ilmir Usmanov
0738ec6a54 Add generation of prop_setter. 2014-09-24 15:30:37 +04:00
Ilmir Usmanov
8bcc37d0f8 Fix prop_getter, construct_n, array_n generation. 2014-09-23 22:53:35 +04:00
Ilmir Usmanov
f17ca4c455 Fix post_* opcodes generation 2014-09-23 20:32:22 +04:00