Commit Graph
100 Commits
Author SHA1 Message Date
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 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 f05719d622 Partial implementation of ECMA Function object creation routine. 2014-07-30 15:36:21 +04:00
Ruben Ayrapetyan 7bca73b8be Removing build targets from 'all' because check targets call build targets themself. 2014-07-30 15:08:50 +04:00
Ruben Ayrapetyan 52495b2cc1 Generating version info without header file. 2014-07-30 15:08:02 +04:00
Ruben Ayrapetyan c1d0a4dd13 Introducing interp_bytecode_idx type for opcode indexes. 2014-07-30 14:34:31 +04:00
Ruben Ayrapetyan 0dd67e4799 Introducing ecma_object_class_t type that describes ecma-defined object classes (value of ECMA_INTERNAL_PROPERTY_CLASS internal property); adding outer lexical environment's reference counter increment in ecma_create_lexical_environment; updating ecma_create_object to support object type field (that is not connected with ecma-defined object class, but is internal implementation defined type of an object). 2014-07-30 14:24:01 +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 56daef38eb Fixing debug.stm32f4: uncommented memcpy and memset aliases, placed them under #ifndef LIBC_MUSL. 2014-07-30 13:57:40 +04:00
Ruben Ayrapetyan 8d387cd32f Introducing make parameters todo, fixme and echo: todo/fixme enable printing of todo/fixme pragma messages if set to 1 (that are disabled by default after this commit); echo enables compilation/linking command line echoing if set to 1. 2014-07-29 14:52:42 +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 b073701da4 Introducing ECMA property descriptor (8.10) type and helpers for it: constructor and destructor. 2014-07-28 21:54:42 +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 7840a846e8 Fix: removing extra semi-colon after FIXME. 2014-07-28 15:46:12 +04:00
Ruben Ayrapetyan 7984c7e65f Fixing comment about an object's maximum reference counter. Adding runtime check for the counter's overflow. 2014-07-28 15:17:01 +04:00
Ruben Ayrapetyan 27f6d2b552 Fixing test_poolman that is failing after 6b050cc03719bfdb49b68eeb5deeed61bc51ff5a. 2014-07-25 20:23:34 +04:00
Ruben Ayrapetyan f1a0e616b1 Resident set size measurement script. 2014-07-25 20:16:43 +04:00
Ruben Ayrapetyan 09c1f91bb3 Printing heap's block headers before beginning of unit test. 2014-07-25 20:00:59 +04:00
Ruben Ayrapetyan e3c8af68f5 Enhancement of heap memory usage statistics output. 2014-07-25 19:16:52 +04:00
Ruben Ayrapetyan 5e4078095a Print heap memory usage statistics before exit (host version). 2014-07-25 19:09:10 +04:00
Ruben Ayrapetyan d90dccde9a Reducing heap's chunk size to 64 bytes, heap size to 2.5K; RAM size to 8K in stm32f4 linker script. 2014-07-25 19:03:45 +04:00
Ruben Ayrapetyan 222e9e680c Adding assertion checks in serializer_dump_opcode and serializer_rewrite_opcode to avoid buffer overrun. 2014-07-25 18:20:54 +04:00
Ruben Ayrapetyan ff2609eb88 Implementing {pre,post}_{incr,decr} opcodes. 2014-07-25 18:07:18 +04:00
Ruben Ayrapetyan cfdef23303 Adding compilation flag '-Wfatal-errors'. 2014-07-25 18:06:45 +04:00
Ruben Ayrapetyan 361e5a6f38 Use -gdwarf-3 by default, -gdwarf-4 if dwarf4=1 option is passed to make. 2014-07-25 13:51:35 +04:00
Ruben Ayrapetyan 7077e42c85 Improving performance of building unittests. 2014-07-24 21:41:04 +04:00
Ruben Ayrapetyan 7f918612c1 Removing 'dev.*' targets. 2014-07-24 21:19:34 +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 61550f2029 Fixing opcode unit tests. 2014-07-24 20:04:27 +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
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 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 13b6d13c3c Implementing jmp_down, jmp_up opcodes. 2014-07-23 21:00:03 +04:00
Ruben Ayrapetyan 8d180e9be1 Minor style fixes. 2014-07-23 20:41:21 +04:00
Ruben Ayrapetyan 26c00acd50 Refinement of src/main.c. 2014-07-23 19:08:06 +04:00
Ruben Ayrapetyan dafae023e3 Merge branch 'master' of git-server.vd:jerry 2014-07-23 15:50:07 +04:00
Ruben Ayrapetyan cbba89c7f8 Extending each *.check target by unit tests' run. 2014-07-23 15:48:58 +04:00
Ruben Ayrapetyan d17e28b7bf Fixing *.stm32f4 builds. 2014-07-23 14:57:37 +04:00
Ruben Ayrapetyan 0eea67ceb2 Renaming camelCase-named identifiers in unit tests' code. 2014-07-23 14:14:45 +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 79f3d97434 Renaming jerry_* identifiers from 'camelCase' to 'underscore_naming'. 2014-07-23 13:03:30 +04:00
Ruben Ayrapetyan c0df259726 Renaming ecma_GC_info_t -> ecma_gc_info_t (missed this renaming in previous commit). 2014-07-23 13:00:01 +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
Ruben Ayrapetyan 3ef9ee9eb4 Merge branch 'master' of git-server.vd:jerry 2014-07-22 22:15:03 +04:00
Ruben Ayrapetyan 8e08d5f6d6 Partially implementing ECMA 'Absract equality comparison' (11.9.3). 2014-07-22 22:13:51 +04:00
Ruben Ayrapetyan 19c15b03b0 Reverting changes in jerry_Exit and adding comment about jerry_AssertFail call. 2014-07-22 21:47:33 +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 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 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 7e87a1fde0 Implementing CheckObjectCoercible operation and partial stubs for ToPrimitive and ToObject operations. 2014-07-21 19:58:04 +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
Ruben Ayrapetyan 84131d9a28 Introducing get_number_by_idx interface for retrieving literal number value by it's identifier. Change ecma_Number_t type from double to float. 2014-07-21 19:16:08 +04:00
Ruben Ayrapetyan 5df6233e0b Fix description comment for ecma_op_put_value. 2014-07-21 18:11:05 +04:00
Ruben Ayrapetyan 30c383556d Unit test for 'assignment' opcode. 2014-07-21 18:09:05 +04:00
Ruben Ayrapetyan 6abc3ae3a2 Merge branch 'master' of git-server.vd:jerry 2014-07-21 18:06:54 +04:00
Ruben Ayrapetyan d62f145ff2 Implementing 'assignment' opcode handler. 2014-07-21 18:03:12 +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 0ff6d7ae9e Fixing ecma_CopyValue: adding missing breaks in switch. 2014-07-21 16:55:39 +04:00
Ruben Ayrapetyan 98a0c0f933 Introducing type argument in 'assignment' opcode handler. 2014-07-21 15:57:15 +04:00
Ruben Ayrapetyan 0af0c86532 Unit test: single var_decl, followed by exitval. 2014-07-18 15:27:38 +04:00
Ruben Ayrapetyan aa6bed0c4c Implementing ecma_CompareZtStringToEcmaString - zero-terminated- and ecma- strings compare routine. 2014-07-18 14:07:07 +04:00
Ruben Ayrapetyan ef51126aab Adding boolean return value, indicating whether script execution finished with success or failure, to run_int. Moving opcode loop from run_int to run_int_from_pos. 2014-07-18 12:27:17 +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 f1d33b9236 Inverting properties' attributes' values in corresponding enums - now not_{writable,configurable,enumerable} correspond to 0 and {writable,configurable,enumerable} to 1. 2014-07-17 22:02:57 +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 819b947445 Introducing try_get_string_by_idx interface for retrieving literal string value by it's identifier. 2014-07-17 21:07:25 +04:00
Ruben Ayrapetyan 0a87643eb6 Changing size of ecma_Char_t to 1 byte. 2014-07-17 20:56:20 +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
Ruben Ayrapetyan d7a1566c23 During compilation of unit tests print compilation command line if it has been failed. 2014-07-17 20:43:30 +04:00
Ruben Ayrapetyan dd3f85b594 Making cppcheck to suppress warnings about missing system includes and unused functions. Setting --error-exitcode to 0 until all other warnings are fixed. 2014-07-17 18:55:25 +04:00
Ruben Ayrapetyan ffe6ab14bb Adding ctags and ID database to .gitignore list. 2014-07-17 18:55:10 +04:00
Ruben Ayrapetyan 124673b5b4 Merge branch 'master' of git-server.vd:jerry 2014-07-17 14:48:41 +04:00
Ruben Ayrapetyan c0232c45f3 Redirecting all build's and tests' output to out/$(TARGET)/{.,obj,check}. Make clean now is rm -rf ./out. 2014-07-17 14:46:50 +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