Commit Graph

57 Commits

Author SHA1 Message Date
Ruben Ayrapetyan 8ce1ef3c8b Removing trailing whitespace in liballocator, libecmaobjects and libecmaoperations. 2014-08-11 15:59:19 +04:00
Ruben Ayrapetyan 99c15ef802 Implementing object model, memory allocators finalization routines. Adding assertion that all memory was freed before exit. 2014-08-07 19:24:32 +04:00
Ruben Ayrapetyan e3cd8ee942 Generational mark and sweep GC. 2014-08-07 14:54:32 +04:00
Ruben Ayrapetyan 411791ea32 Fix: remove unnecessary ecma_ref_object. 2014-08-05 17:59:20 +04:00
Ruben Ayrapetyan 8260cc0214 Implementing case 3.b in PutValue operation. 2014-08-01 12:48:03 +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 f8ef3deaf3 Full implementation of general objects' [[DefineOwnProperty]]. 2014-07-31 17:07:21 +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 16cab18ae9 Introducing partially implemented Global object constructor. 2014-07-31 14:26:24 +04:00
Ruben Ayrapetyan e25e4d6cab Introducing constructor for ecma_property_descriptor_t. 2014-07-31 14:03:11 +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 e540590ddd Partial implementation of function call routine ([[Call]]). 2014-07-30 20:34:04 +04:00
Ruben Ayrapetyan 221fb47a77 Implementing steps 16 - 19 of 'Function object creation' routine; creating ecma_op_get_throw_type_error stub. 2014-07-30 18:27:48 +04:00
Ruben Ayrapetyan 45a3d52d70 Fixing [[DefineOwnProperty]]: correctly setting up value of data named property; correctly increasing reference counters of getter and setter. 2014-07-30 18:24:14 +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 b059212e32 Implementing IsCallable operation. 2014-07-30 17:48:28 +04:00
Ruben Ayrapetyan e6f0057456 Partial implementation of func_decl_0 opcode handler. 2014-07-30 15:40:41 +04:00
Ruben Ayrapetyan f05719d622 Partial implementation of ECMA Function object creation routine. 2014-07-30 15:36:21 +04:00
Ruben Ayrapetyan f8743a1375 Switching from 'echa_char_t*' to 'const ecma_char_t*' where appropriate. 2014-07-30 14:20:20 +04:00
Ruben Ayrapetyan 299c94ee85 Implementation of general objects' [[GetOwnProperty]], [[GetProperty]], [[CanPut]], [[HasProperty]], [[Delete]]; partial implementation of general objects' [[Get]], [[Put]], [[DefineOwnProperty]]. 2014-07-29 14:32:01 +04:00
Ruben Ayrapetyan 4cefa6950e Fix ecma_op_define_own_property argument list: the routine now takes property descriptor as an argument instead of property. 2014-07-28 21:57:27 +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 cae07c0832 Implementing stubs for ecma objects' common internal properties and methods (ECMA-262 v5, Table 8). 2014-07-28 18:16:05 +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 20b04a5ed7 Adding ecma-try-catch-macro.h that should have been a part of previous commit. 2014-07-24 20:33:58 +04:00
Ruben Ayrapetyan b2ae827fbd Partially implementing ECMA 'Absract relational comparison' (11.8.5). 2014-07-24 20:31:57 +04:00
Ruben Ayrapetyan d659b703a1 Style fix in ecma_make_reference. 2014-07-23 21:59:32 +04:00
Ruben Ayrapetyan 826c6aeca2 Implementing is_false_jmp, is_true_jmp opcodes. 2014-07-23 21:58:15 +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 2d4ed154ee Removing m_ prefix from identifiers (m_ValueType -> ValueType, ...). 2014-07-23 11:41:58 +04:00
Ruben Ayrapetyan 8e08d5f6d6 Partially implementing ECMA 'Absract equality comparison' (11.9.3). 2014-07-22 22:13:51 +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 f71e8c521a Adding stubs with partial implementation for ecma numbers' addition, substraction, division, remainder calculation and negation. 2014-07-22 17:38:39 +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 7e87a1fde0 Implementing CheckObjectCoercible operation and partial stubs for ToPrimitive and ToObject operations. 2014-07-21 19:58:04 +04:00
Ruben Ayrapetyan 5df6233e0b Fix description comment for ecma_op_put_value. 2014-07-21 18:11:05 +04:00
Ruben Ayrapetyan 5e503ced32 Fixing ecma_op_get_value, ecma_op_put_value: correctly distinguishing whether the base is object or lexical environment. 2014-07-21 17:51:11 +04:00
Ruben Ayrapetyan 57629912e4 Rename: ecma_OpGetValue -> ecma_op_get_value; ecma_OpSetValue -> ecma_op_put_value. 2014-07-21 17:47:39 +04:00
Ruben Ayrapetyan 1175526d52 Fixing value copying/value leakage issues. 2014-07-21 17:39:39 +04:00
Ruben Ayrapetyan dd7029e15d Fixing ecma_OpHasBinding, ecma_OpCreateMutableBinding and ecma_OpSetMutableBinding (inserting missing breaks in switches). 2014-07-17 22:06:51 +04:00
Ruben Ayrapetyan f7abe7190d Implementing var_decl opcode. 2014-07-17 22:02:07 +04:00
Ruben Ayrapetyan 6891039184 Fixing assertion on HasBinding result in ecma_OpGetIdentifierReference. 2014-07-16 22:21:15 +04:00
Ruben Ayrapetyan b300316403 Fixing assertion in ecma_OpGetIdentifierReference. 2014-07-16 22:16:14 +04:00
Ruben Ayrapetyan 6cdb927d14 Implementing ECMA-262 v5 10.2.1.1 operations (declarative environment record's CreateMutableBinding, SetMutableBinding, etc.). 2014-07-16 21:44:10 +04:00
Ruben Ayrapetyan 2598d01105 Renaming ecma_IsUndefinedValue -> ecma_IsValueUndefined and the like; introducing ecma_IsCompletionValueNormal{True,False} helpers. 2014-07-16 21:42:49 +04:00