Commit Graph

91 Commits

Author SHA1 Message Date
Ruben Ayrapetyan e3cd8ee942 Generational mark and sweep GC. 2014-08-07 14:54:32 +04:00
Ruben Ayrapetyan e4ce585823 Implementing 'nop' opcode handler. 2014-08-05 15:53:17 +04:00
Ilmir Usmanov 557100059a Add bytecode pretty-printing 2014-08-04 22:56:26 +04:00
Ruben Ayrapetyan 020325d199 __HOST -> __TARGET_HOST_X64 2014-07-31 22:23:05 +04:00
Ilmir Usmanov 1d41e8a355 Add 'exit' intrinsic 2014-07-31 21:52:25 +04:00
Ruben Ayrapetyan 2c85a55c85 Introducing Global Environment constructor; using Global Environment as starting lexical environment. 2014-07-31 17:21:47 +04:00
Ruben Ayrapetyan bfad8e897d Implementing ECMA-262 v5 10.2.1.2 operations (object environment record's CreateMutableBinding, SetMutableBinding, etc.). 2014-07-31 17:13:20 +04:00
Ruben Ayrapetyan c364461b80 Splitting ecma_create_lexical_environment to ecma_create_decl_lex_env and ecma_create_object_lex_env. 2014-07-31 14:48:28 +04:00
Ruben Ayrapetyan b50e091b08 Renaming opcode_idx_t to opcode_counter_t. 2014-07-30 21:54:53 +04:00
Ruben Ayrapetyan 4ebf551525 Renaming interp_bytecode_idx to op_idx_t. 2014-07-30 21:52:17 +04:00
Ruben Ayrapetyan c344cc7422 Correct implementation of opfunc_call_0 that was commited in c8dc00f4558efeb4bc0c2cd5d21e778294cb0d3a. The comment to that revision is incorrect: it specifies that opfunc_func_decl_0 should be rewritten; it is mistake, really it was about opfunc_call_0. 2014-07-30 21:46:02 +04:00
Ruben Ayrapetyan e540590ddd Partial implementation of function call routine ([[Call]]). 2014-07-30 20:34:04 +04:00
Ruben Ayrapetyan df224408fc Introducing ecma_get_magic_string that returns pointer to requested magic string that is used in an ECMA routine. 2014-07-30 17:56:53 +04:00
Ruben Ayrapetyan d4d446cd4f Temporary implementation of 'func_decl_0' opcode handler. Should be rewritten from scratch after 'Function object creation' routine is fully implemented. 2014-07-30 15:44:28 +04:00
Ruben Ayrapetyan ccb0701469 Removing 'ret' opcode from unimplemented opcodes' list. 2014-07-30 15:42:32 +04:00
Ruben Ayrapetyan fe54e4dfd8 Implementation of 'ret' opcode handler. 2014-07-30 15:41:47 +04:00
Ruben Ayrapetyan e6f0057456 Partial implementation of func_decl_0 opcode handler. 2014-07-30 15:40:41 +04:00
Ruben Ayrapetyan c1d0a4dd13 Introducing interp_bytecode_idx type for opcode indexes. 2014-07-30 14:34:31 +04:00
Ruben Ayrapetyan 3ee0e8a8a5 Style fixes regarding 'empty' value: introducing ecma_is_empty_completion_value, reducing usage of the 'empty' value, listing possible usage cases of the 'empty' value in the comment to it's definition. 2014-07-28 21:21:31 +04:00
Ruben Ayrapetyan ff2609eb88 Implementing {pre,post}_{incr,decr} opcodes. 2014-07-25 18:07:18 +04:00
e.gavrin 43a8bbd576 fixed led processing and wait 2014-07-25 17:47:09 +04:00
Ruben Ayrapetyan 6301cba0c3 Implementing equal_value, not_equal_value, less_than, greater_than opcodes. 2014-07-24 21:09:02 +04:00
Ruben Ayrapetyan b2ae827fbd Partially implementing ECMA 'Absract relational comparison' (11.8.5). 2014-07-24 20:31:57 +04:00
Ilmir Usmanov 1f3b5a4c29 Merge 2014-07-24 19:50:37 +04:00
e.gavrin c2f82eefc0 add blink_toggle_once 2014-07-24 19:27:19 +04:00
Ruben Ayrapetyan 89834cd616 Printing of called function's name in 'call_1' opcode handler. 2014-07-24 18:30:49 +04:00
Ruben Ayrapetyan 63a757a5a7 Connecting try_get_str_by_idx with deserialize_string_by_id and get_number_by_idx with deserialize_num_by_id. 2014-07-24 18:28:46 +04:00
Ruben Ayrapetyan b7a3a13bc9 Implementing register variables. 2014-07-24 18:13:32 +04:00
Ilmir Usmanov 1790739b93 Add 'reg_var_decl' opcode 2014-07-24 15:45:55 +04:00
Ruben Ayrapetyan 2718d8e918 Fixing is_false_jmp, is_true_jmp opcodes; adding them to var_decl and assignment unit tests as partial checks. 2014-07-23 22:22:50 +04:00
Ruben Ayrapetyan 826c6aeca2 Implementing is_false_jmp, is_true_jmp opcodes. 2014-07-23 21:58:15 +04:00
Ruben Ayrapetyan 13b6d13c3c Implementing jmp_down, jmp_up opcodes. 2014-07-23 21:00:03 +04:00
Ilmir Usmanov f1dd405933 Merge 2014-07-23 20:50:29 +04:00
Ilmir Usmanov 764efa41b8 Fix parsing of for-loops. 2014-07-23 20:47:31 +04:00
Ruben Ayrapetyan 8d180e9be1 Minor style fixes. 2014-07-23 20:41:21 +04:00
Ruben Ayrapetyan 1796b9d903 Renaming rest camelCase-named identifiers according to underscore_named_value-naming. 2014-07-23 14:07:45 +04:00
Ruben Ayrapetyan bc0c7824c2 Renaming ecma_* identifiers from 'camelCase' to 'underscore_naming'. 2014-07-23 12:54:56 +04:00
Ruben Ayrapetyan b3b4c74cbe Renaming mem_* identifiers from 'camelCase' to 'underscore_naming'. 2014-07-23 12:54:45 +04:00
Ruben Ayrapetyan 2d4ed154ee Removing m_ prefix from identifiers (m_ValueType -> ValueType, ...). 2014-07-23 11:41:58 +04:00
Ilmir Usmanov 18fcf4bd77 Merge with 'geppetto': Generate bytecode while parsing 2014-07-22 21:18:19 +04:00
Ilmir Usmanov efb7009cfb Generate bytecode while parsing 2014-07-22 20:49:51 +04:00
Ruben Ayrapetyan cc513e9f35 Adding assertion that interpreter doesn't receive non-empty normal ecma completion value. 2014-07-22 19:01:11 +04:00
Ruben Ayrapetyan 488ed41c2b Implementing 'substraction' opcode handler and, partially (except string operands), 'addition' opcode handler; adding unit tests for them. 2014-07-22 18:55:13 +04:00
Ruben Ayrapetyan cbbd71588a Implementing 'division' and 'remainder' opcode handlers, adding unit tests for the opcodes. 2014-07-22 18:26:06 +04:00
Ruben Ayrapetyan f0abfbb31b Refinement of exception handling code in 'multiplication' and 'assignment' opcode handlers. 2014-07-22 17:23:29 +04:00
Ruben Ayrapetyan 739d19be5b Implementing 'multiplication' opcode handler and unit test for the opcode. 2014-07-21 21:59:15 +04:00
Ruben Ayrapetyan 9b2b248728 Partially implementing ToNumber operation. 2014-07-21 20:36:08 +04:00
Ruben Ayrapetyan 7a0612d441 Adding is_strict flag to interpreter context. 2014-07-21 20:24:48 +04:00
Ruben Ayrapetyan 2590b032e1 Fixing get_number_by_idx. 2014-07-21 19:41:12 +04:00
Ruben Ayrapetyan ff4d3e4af3 Implementing assignment of number literal values in 'assignment' opcode handler. 2014-07-21 19:22:25 +04:00