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
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
Ruben Ayrapetyan
c8605bb4d1
Renaming ecma_GC*Property to ecma_Free*Property and moving them to ecma-helpers.c; introducing ecma_CreateNamedProperty, ecma_GetNamedProperty, ecma_GetNamedDataProperty, ecma_FreeProperty (extracted from ecma_GCRun), ecma_DeleteProperty; removing length argument of ecma_NewEcmaString helper.
2014-07-16 21:37:24 +04:00
Ruben Ayrapetyan
8d07e2b239
Introducing ecma_Property{Writable,Enumerable,Configurable}Value_t enum value types for properties' attributes.
2014-07-16 21:19:44 +04:00
Ruben Ayrapetyan
6918db2f59
Replacing 'ecma_Free' prefix in ecma_Free{Object,Property,Number,ArrayFirstChunk,ArrayNonFirstChunk} to 'ecma_Dealloc'.
2014-07-16 21:17:43 +04:00
Ruben Ayrapetyan
b72185696a
Introducing ecma_MakeReference and ecma_FreeReference, moving ecma_OpGetIdentifierReference to libecmaoperations/ecma-reference.c.
2014-07-16 17:20:40 +04:00
Ruben Ayrapetyan
60063683aa
Rename ecma_GCValue to ecma_FreeValue and move it to ecma-helpers-value.c. Introduce ecma_CopyValue.
2014-07-16 17:12:45 +04:00
Ruben Ayrapetyan
ca420ea0e9
Implementing PutValue for cases:
...
- base is lexical environment;
- base is undefined (unresolvable reference);
Descripting implementation of other PutValue's cases in comments.
2014-07-16 14:41:17 +04:00
Ruben Ayrapetyan
b1f9275048
Merge branch 'master' of git-server.vd:jerry
2014-07-15 21:44:21 +04:00
Ruben Ayrapetyan
c5cfff3d92
Adding comment to ecma_NewStandardError.
2014-07-15 21:41:47 +04:00
Ruben Ayrapetyan
16be2ee3ab
Implementing GetValue for cases:
...
- base is lexical environment;
- base is undefined (unresolvable reference);
Descripting implementation of other GetValue's cases in comments.
2014-07-15 21:41:47 +04:00
Ruben Ayrapetyan
56f731a3f2
Introducing ecma_MakeThrowValue constructor for throw completion values.
2014-07-15 21:41:47 +04:00
Ruben Ayrapetyan
cdde0900e3
Introducing native ecma error types and ecma_NewStandardError interface.
2014-07-15 21:41:47 +04:00
Ruben Ayrapetyan
4395da05d3
Renaming ecma_Object_t::u_Attributes to u.
...
Renaming ecma_CompletionValue_t:: completion_type to type, completion_value to value.
Introducing ECMA_TARGET_ID_RESERVED value of ecma_CompletionValue_t::target when it is unused.
Adding ecma_Reference_t type for ECMA-reference.
Introducing some constructors and helpers for ecma-values.
Introducing ecma_FindNamedProperty helper.
Removing ecma_SyntacticReference_t type.
Implementing ecma operation GetIdentifierReference.
Stubs and partial implementation for GetValue, SetValue, lexical environment operations (HasBinding, etc.).
2014-07-15 19:27:15 +04:00
Ruben Ayrapetyan
f88fe5fae3
Moving jerry defines from CFLAGS_COMMON to DEFINES_JERRY and fixing cppcheck arguments.
2014-07-15 19:17:21 +04:00
Ruben Ayrapetyan
2615f28700
Adding JERRY_UNIMPLEMENTED_REF_UNUSED_VARS(...) macros that allow referencing variables that are unused due to partial implementation.
2014-07-15 18:56:09 +04:00