Commit Graph

59 Commits

Author SHA1 Message Date
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 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 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 ff4d3e4af3 Implementing assignment of number literal values in 'assignment' opcode handler. 2014-07-21 19:22:25 +04:00
Ruben Ayrapetyan d62f145ff2 Implementing 'assignment' opcode handler. 2014-07-21 18:03:12 +04:00
Ruben Ayrapetyan 1175526d52 Fixing value copying/value leakage issues. 2014-07-21 17:39:39 +04:00
Ruben Ayrapetyan 98a0c0f933 Introducing type argument in 'assignment' opcode handler. 2014-07-21 15:57:15 +04:00
Ruben Ayrapetyan f7abe7190d Implementing var_decl opcode. 2014-07-17 22:02:07 +04:00
Ruben Ayrapetyan 383853c116 Introducing string_literal_copy type descripting string literal copy for using in opcode handlers implementation. 2014-07-17 21:53:26 +04:00
Ruben Ayrapetyan 0209acad65 Introducing exitval opcode for end of script and assertions in unit tests. The opcode finishes interpretation with status code 0 (success) or 1 (failure). 2014-07-17 21:32:29 +04:00
Ruben Ayrapetyan dd5c9dfb39 Changing return type of opcode handlers to ecma_CompletionValue_t. 2014-07-17 20:53:48 +04:00
Ruben Ayrapetyan a20aa29354 Templating definition of unimplemented opcodes. 2014-07-17 20:46:47 +04:00
e.gavrin 0c9f81dbf9 add var_decl 2014-07-17 15:19:55 +04:00
e.gavrin 9a0b54313d remove opcodes 2014-07-17 13:08:43 +04:00
e.gavrin 73bf0f9be1 remove unused gen_bytecode and save_op_data 2014-07-16 23:03:58 +04:00
Ilmir Usmanov 270ee301b4 Start dumping assignment expressions to bytecode; revise bytecode instructions 2014-07-16 22:23:55 +04:00
Ilmir Usmanov 438318d788 Generate getop_* functions 2014-07-16 13:04:30 +04:00
Ruben Ayrapetyan 4ca4c71c8b Fix warning about unused parameter 'opdata' in opfunc_call_1. 2014-07-14 19:51:11 +04:00
Ruben Ayrapetyan 76e579d4e1 Remove inclusion of std headers to our headers; move fatal from src/error.h to src/libjsparser/parser.c. 2014-07-10 19:46:24 +04:00
Ruben Ayrapetyan fa63065412 Adding libecmaoperations module that implements ECMA-262 defined operations. 2014-07-10 14:28:01 +04:00
Ilmir Usmanov a2350cb88e Change parser to stack-only version 2014-07-09 18:05:19 +04:00
Ilmir Usmanov f46d5b440c Merge line-by-line parser 2014-07-09 16:17:42 +04:00
e.gavrin f18a5f5e31 opcodes + refined int structure 2014-07-08 13:18:00 +04:00
e.gavrin 21db33fa97 added opcodes 2014-07-07 23:18:49 +04:00