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
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
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
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
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
fa63065412
Adding libecmaoperations module that implements ECMA-262 defined operations.
2014-07-10 14:28:01 +04:00