1339 Commits

Author SHA1 Message Date
Ruben Ayrapetyan
eb80e817d8 Removing trailing whitespace in src/libcoreint/opcodes.c. 2014-12-15 23:08:34 +03:00
Ilmir Usmanov
7e7bdc2aac Rework literal indexes hash table to simple array in order to improve performance 2014-12-15 22:56:22 +03:00
Ilmir Usmanov
864bd3de06 Fix comment. 2014-12-15 22:47:41 +03:00
Ilmir Usmanov
ddac13f944 Fix parsing of empty file 2014-12-15 17:10:04 +03:00
Ilmir Usmanov
c1ebb8db50 Fix expression statement parsing in case of statement starts with keyword 2014-12-12 16:36:18 +03:00
Ilmir Usmanov
6aee69d6df Fix native_call opcode dumping 2014-12-12 16:34:59 +03:00
Ilmir Usmanov
4b7871bdde Fix 'op=' assignment bytecode dumping in case of arrays 2014-12-10 19:20:33 +03:00
Ilmir Usmanov
dc8ab27900 Split parser into parser itself, opcodes dumper and syntax errors checker.
Add internal hash map of literal indexes:
  In this hash map key is pair of block number and literal's unique identifier in the block, and the value is a literal index that unique in the whole program.
  Block is a continues array of opcodes. So, bytecode is splitted into blocks.
  Each block has its own uid counter. To get literal index the interpreter looks up it in the hash map.
  Thus, now JS program is able to have more than 255 identifiers/string literals.
  The first 128 (0-127) uids are reserved for block's uid counter, the other 128 (128-255) are reserved for tmp variables.
2014-12-10 18:31:59 +03:00
Ilmir Usmanov
fc9e83d290 Remove obsolete unit tests. 2014-12-10 18:29:43 +03:00
Ilmir Usmanov
a251bf5d6f Add array list structure.
Change hash table to use array lists instead of linked lists.
2014-12-10 18:27:36 +03:00
Ruben Ayrapetyan
2c86712e21 Introducing number chunk for storage of temporary (stack-only) number operands. 2014-12-09 18:24:16 +03:00
Ruben Ayrapetyan
1182f7bbfe Removing JERRY_UNREACHABLE from lexical environment related routines. 2014-12-05 13:25:41 +03:00
Ruben Ayrapetyan
5bb90fb8ca Initializing object / lexical environment descriptors with zeroes before field initialization. 2014-12-05 13:24:39 +03:00
Ruben Ayrapetyan
ee7ac6602b Fixing insertion to lookup cache: removing possibility of invalidation of entry during it's initialization, skipping empty entries during search for entry containing specified property. 2014-12-04 17:03:14 +03:00
Ruben Ayrapetyan
2b9b729c37 Invoking jerry_exit (ERR_OUT_OF_MEMORY) instead of JERRY_UNREACHABLE in in ecma_alloc_*. 2014-12-04 15:10:39 +03:00
Ruben Ayrapetyan
f7f0681698 Invoking tools/perf.sh in tools/run_benchmarks.sh. 2014-12-04 12:52:55 +03:00
Ruben Ayrapetyan
3b1c6b5c37 Fixing an issue in garbage collection module: correctly updating 'may reference younger objects' flag. 2014-12-04 12:38:06 +03:00
Ruben Ayrapetyan
d2f6b36cf7 Implementing Math.sin and Math.cos built-in routines. 2014-12-04 11:39:23 +03:00
Ruben Ayrapetyan
557a4b6460 Removing ecma_op_object_has_property and ecma_op_general_object_has_property routines. 2014-12-03 22:48:37 +03:00
Ruben Ayrapetyan
90fccc04ba Passing property descriptors by const ref instead of by value. 2014-12-03 21:57:11 +03:00
Ruben Ayrapetyan
b7daa16b99 Implementing number comparisons through simple comparison operators, checking under !JERRY_NDEBUG that behaviour is equivalent to ECMA-defined comparisons. 2014-12-03 20:22:29 +03:00
Ruben Ayrapetyan
8998860c7b Extract non-inlineable long path from ecma_op_object_get_own_property. 2014-12-03 19:25:16 +03:00
Ruben Ayrapetyan
98a11c13d5 Padding ecma_lcache_entry_t to 8 bytes size. 2014-12-03 19:25:01 +03:00
Ruben Ayrapetyan
e955d8f742 Assigning numbers to named data properties' values without reallocating pool chunk if the value already contains a number. 2014-12-03 16:03:13 +03:00
Ruben Ayrapetyan
3190089818 Introducing getter and setter for named data property's value field, ecma_named_data_property_assign_value interface; using boolean flags for 'Writable', 'Enumerable' and 'Configurable' attributes values while passing them in routine arguments. 2014-12-03 15:45:58 +03:00
Ruben Ayrapetyan
668eef73c8 Implementing system call sequences in plain assembler routines; removing -fomit-frame-pointer for non-optimized builds. 2014-12-02 15:42:09 +03:00
Ruben Ayrapetyan
ef012d9cd4 Adding lcache lookup and insert to ecma_find_named_property; removing lcache insert from ecma_op_object_get_own_property. 2014-11-28 21:27:52 +03:00
Ruben Ayrapetyan
3b29280b79 Using hash value stored in ecma-string for lcache search; comparing string faster but with possible false negatives while performing lcache lookup. 2014-11-28 21:27:48 +03:00
Ruben Ayrapetyan
fe7e34d93e Adding ecma-string's hash to ecma_string_t. 2014-11-28 21:12:44 +03:00
Ruben Ayrapetyan
6c65c48772 Removing 'length' field from ecma-string descriptor (calculating length upon request). 2014-11-28 16:26:22 +03:00
Ruben Ayrapetyan
7b75dcf0c9 Removing assertion checks with possible side effects. 2014-11-27 21:04:14 +03:00
Ruben Ayrapetyan
f6e7621d3f Adding __always_inline attribute to some value handling helpers. 2014-11-27 19:40:14 +03:00
Ruben Ayrapetyan
1f3d96cffa Representing ecma_completion_value_t as integer instead of structure with bit-fields, adding corresponding field accessors; adding __attribute_const__ to some value handling helpers. 2014-11-27 18:20:12 +03:00
Ruben Ayrapetyan
0d870a1e74 Representing ecma_value_t as integer instead of structure with bit-fields, adding corresponding field accessors. 2014-11-27 17:34:03 +03:00
Ruben Ayrapetyan
815309c7e9 Introducing ecma_get_[type]_from_value, ecma_get_[type]_from_completion_value and ecma_get_completion_value_value interfaces. 2014-11-27 14:19:53 +03:00
Ruben Ayrapetyan
22e1941050 Moving pools that received request on allocation / free to beginning of pools' list; extracting long path from mem_pools_alloc. 2014-11-26 20:22:44 +03:00
Ruben Ayrapetyan
c21e186f2c Static definition of pool's area size and number of chunks in a pool; alignment of mem_block_header_t and mem_pool_state_t to MEM_ALIGNMENT. 2014-11-26 19:23:26 +03:00
Ruben Ayrapetyan
9a0081b856 Splitting free block from end if block search direction is backward (currently, for short-term blocks). 2014-11-24 18:52:47 +03:00
Ruben Ayrapetyan
5b8077b976 Storing provideThis flag and pointer to binding object immediately in descriptor of object-bound lexical environment. 2014-11-21 20:37:04 +03:00
Ruben Ayrapetyan
958126f5c8 Adding debug assertion about incoming state of formal parameters collection to ecma_create_arguments_object. 2014-11-21 17:08:40 +03:00
Ruben Ayrapetyan
103e1b1c8a Running cppcheck only for sources affected by local changes. 2014-11-21 16:28:52 +03:00
Ruben Ayrapetyan
036521627e Introducing "on-stack" ecma-string descriptors and using them in get_variable_value / set_variable_value. 2014-11-21 13:06:30 +03:00
Ruben Ayrapetyan
14ab1b3355 Removing construction of ecma_reference_t in get_variable_value and set_variable_value. 2014-11-20 22:09:14 +03:00
Ruben Ayrapetyan
f5ffae0fec Removing runtime checks for reading / writing 'arguments' variable in CompactProfile mode (the checks should be performed during parsing). 2014-11-20 18:24:31 +03:00
Ruben Ayrapetyan
d7764dfc6e Implementation of ecma_make_simple_value and ecma_make_completion_value through bitwise operations (instead of through bit-fields). 2014-11-20 15:34:46 +03:00
Ruben Ayrapetyan
76aab95aac Implementation of ecma_is_value_* for simple values through comparison with integer constants (instead of bit-fields). 2014-11-20 15:33:27 +03:00
Ruben Ayrapetyan
6dd357a554 Using ecma_is_value_* instead of switches for determining of ecma-value's type. 2014-11-20 15:33:04 +03:00
Ruben Ayrapetyan
7b3eaf146b Introducing ecma_is_value_{number,string,object} for checking type of ecma-value. 2014-11-20 14:21:33 +03:00
Ruben Ayrapetyan
30ff59fca3 Reverting c2933d9e44eb5346161964c7c52f1ca793c4c7b4 changes of ecma_number_{is,make}_infinity routines. 2014-11-19 17:55:15 +03:00
Ruben Ayrapetyan
27827e607c Reducing cases in which full static source analysis is performed.
- starting vera++ only on changed sources;
 - starting cppcheck only on changed sources, if no header file was changed,
   and on all sources, if at least one header file was changed.
2014-11-19 16:54:52 +03:00