Commit Graph

105 Commits

Author SHA1 Message Date
e.gavrin d4a9d9430e Refactoring of libcoreint part1 2014-08-23 00:16:56 +04:00
Ruben Ayrapetyan a341fe044b call_0, call_1 opcode handlers: wrapping function calls using ECMA_FUNCTION_CALL helper 2014-08-22 20:50:40 +04:00
Ruben Ayrapetyan 50a1532801 Implementing opfunc_instanceof using ecma_op_has_instance for [[HasInstance]] call 2014-08-22 15:39:23 +04:00
Ruben Ayrapetyan 7a20454047 Using ToString for property name conversion in opfunc_in 2014-08-22 15:26:05 +04:00
Ruben Ayrapetyan 9cc27115fa Using ToString for property name conversion in opfunc_getter, opfunc_setter 2014-08-22 15:07:21 +04:00
e.gavrin 7bda6e9d01 Add opcode handlers for logical_[not, or, and]] 2014-08-22 01:27:37 +04:00
e.gavrin 8e4ff93436 Add instanceof opcode handler. Untested. 2014-08-22 00:29:42 +04:00
e.gavrin 3dc1f8df77 Add in opcode handler. Untested. 2014-08-21 23:59:58 +04:00
e.gavrin b822c704e5 Add b_not opcode handler. Fixes in shift opcodes and in test 2014-08-21 22:52:34 +04:00
e.gavrin 7dea812364 Add shift opcodes handlers 2014-08-21 21:39:05 +04:00
e.gavrin dfcc3a0986 Add retval opcode handler. 2014-08-21 20:01:50 +04:00
e.gavrin c6a41c167e Add native_call opcode. 2014-08-21 17:30:52 +04:00
e.gavrin 1261820838 Add meta opcode. 2014-08-21 16:07:05 +04:00
e.gavrin 5b2b04f5f9 Various opcode's refinements: obj[0,1, 2, n]->obj_decl, array[0, 1, 2, n]->array_decl, func_expr[0, 1, n]->removed, varg[1_end, 2_end, 3_end, 3]->varg_list. 2014-08-21 15:49:10 +04:00
Ruben Ayrapetyan 284e7fc91b Renaming prop_access opcode to prop_getter; introducing prop_setter opcode; implementing property getter/setter opcode handlers. 2014-08-20 16:34:03 +04:00
Ilmir Usmanov a2fe594d0f Merge branch 'geppetto' 2014-08-19 16:22:39 +04:00
Ilmir Usmanov 126b8814a8 Add rules to check switch-cases 2014-08-19 16:22:05 +04:00
Ruben Ayrapetyan 9d33a91822 Storing literals' indexes instead of literals' contents in ecma-strings if possible. 2014-08-18 20:52:02 +04:00
Ruben Ayrapetyan 8bc41358ec Replacing const ecma_char_t* with ecma_string_t*; supporting number-represented string in ecma_string_t. 2014-08-18 18:34:34 +04:00
Ruben Ayrapetyan bcddffbefb Preparations to lazy conversion of Number to String: introducing ECMA_STRING_CONTAINER_HEAP_NUMBER container type for ecma_string_t. 2014-08-18 16:10:54 +04:00
Ruben Ayrapetyan 04112c6fea Implementing opfunc_call_1. 2014-08-15 20:10:22 +04:00
Ruben Ayrapetyan b582d56ecb Implementing opfunc_decl_1, opfunc_decl_2. 2014-08-15 18:30:47 +04:00
e.gavrin af798a7142 Fix mistype in opfunc_greater_or_equal_than and opfunc_less_or_equal_than opcodes 2014-08-14 20:42:28 +04:00
Ruben Ayrapetyan 1d70fe0a37 Fixing ecma_op_abstract_equality_compare 2014-08-14 20:03:50 +04:00
Ruben Ayrapetyan 0447d128d0 Implementing b_and, b_or, b_xor opcode handlers. 2014-08-14 19:56:55 +04:00
e.gavrin a075051d6f Add opfunc_equal_value_type and opfunc_not_equal_value_type opcode handlers. Add test. 2014-08-14 18:04:43 +04:00
e.gavrin 7803e073c4 Add opfuncs for greater_or_equal_than and less_or_equal_than opcodes. Add test. 2014-08-14 16:36:53 +04:00
Ruben Ayrapetyan c831912ae5 Replacing ecma_array_first_chunk_t with ecma_string_t for ecma-strings. 2014-08-13 19:21:25 +04:00
Ruben Ayrapetyan eee1daec91 Introducing ecma_compare_zt_string_to_zt_string interface that is __strcmp for ecma_char_t* zero-terminated strings. 2014-08-12 18:51:49 +04:00
e.gavrin b3b1ba0206 Formatting fixes in libcoreint 2014-08-12 01:13:32 +04:00
Ruben Ayrapetyan e53be2b441 Renaming ecma_get_pointer, ecma_set_pointer, ecma_set_pointer_non_null macroses to uppercase names. 2014-08-11 19:13:59 +04:00
Ruben Ayrapetyan cc4d55803c Fix func_decl_0: correctly set interpreter's opcode counter. 2014-08-07 19:35:11 +04:00
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
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 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 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