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
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
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
ff2609eb88
Implementing {pre,post}_{incr,decr} opcodes.
2014-07-25 18:07:18 +04:00
Ruben Ayrapetyan
b7a3a13bc9
Implementing register variables.
2014-07-24 18:13:32 +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
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
8e08d5f6d6
Partially implementing ECMA 'Absract equality comparison' (11.9.3).
2014-07-22 22:13:51 +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
7e87a1fde0
Implementing CheckObjectCoercible operation and partial stubs for ToPrimitive and ToObject operations.
2014-07-21 19:58:04 +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
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
aa6bed0c4c
Implementing ecma_CompareZtStringToEcmaString - zero-terminated- and ecma- strings compare routine.
2014-07-18 14:07:07 +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
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
0a87643eb6
Changing size of ecma_Char_t to 1 byte.
2014-07-17 20:56:20 +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
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
56f731a3f2
Introducing ecma_MakeThrowValue constructor for throw completion values.
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
63547e9f2c
Change bit fields' type from uint32_t to unsigned int (because uint32_t is defined as something other than unsigned int in arm-none-eabi stdint.h; using that type for bit-fields is GCC extension).
2014-07-14 19:56:17 +04:00
Ruben Ayrapetyan
fa63065412
Adding libecmaoperations module that implements ECMA-262 defined operations.
2014-07-10 14:28:01 +04:00
Ruben Ayrapetyan
c4d2c4c916
Moved definition of syntactic reference structure to ecma-refecence.h, removed ctx-reference.[ch] and ctx-manager.[ch].
2014-07-10 11:16:23 +04:00
Ilmir Usmanov
f46d5b440c
Merge line-by-line parser
2014-07-09 16:17:42 +04:00
e.gavrin
3fde3400f4
manualy generated blinky opcodes
2014-07-03 16:23:25 +04:00