diff options
| Commit | 6ba49b30cf1e33fb0dd6782a404ec34b7964cb59 (patch) | |
|---|---|---|
| Author | 2020-11-24 18:06:26 +0200 | |
| Committer | 2020-11-24 18:06:26 +0200 | |
| Files | a89b314c4d0b942d2350b9adbd741d6fa3375bfb /JSImpl/src/ExpressionDefinitions.h | |
| IPL-6ba49b30cf1e33fb0dd6782a404ec34b7964cb59.tar IPL-6ba49b30cf1e33fb0dd6782a404ec34b7964cb59.tar.gz IPL-6ba49b30cf1e33fb0dd6782a404ec34b7964cb59.zip | ||
| Parent | 4e883334a14ff22f12765204d6bf223d07c0298f (diff) | |
Feature/object getters (#101)
* Add member access expression.
* Implement property getters.
* Add test for property getters.
* Add test for property setter.
* Implement while and do-while
Signed-off-by: Martin Dobrev <martindobrev0@gmail.com>
* Add implement byte code generation for break/continue in for/while.
1 files changed, 11 insertions, 3 deletions
| -rw-r--r-- | JSImpl/src/ExpressionDefinitions.h | 14 |
diff --git a/JSImpl/src/ExpressionDefinitions.h b/JSImpl/src/ExpressionDefinitions.h index 1fad948..33f13b3 100644 --- a/JSImpl/src/ExpressionDefinitions.h +++ b/JSImpl/src/ExpressionDefinitions.h @@ -79,8 +79,13 @@ MACRO(IPLVector<ExpressionPtr>, Values, IPLVector<ExpressionPtr>()) #define CALL_EXPRESSION_MEMBERS(MACRO)\ - MACRO(ExpressionPtr, Identifier, ExpressionPtr())\ - MACRO(ExpressionPtr, Arguments, ExpressionPtr()) + MACRO(ExpressionPtr, ObjectOrCall, ExpressionPtr())\ + MACRO(ExpressionPtr, Member, ExpressionPtr()) + +#define MEMBER_ACCESS_EXPRESSION_MEMBERS(MACRO)\ + MACRO(IPLString, Name, "") + +#define MEMBER_NO_MEMBERS(MACRO) #define EXPRESSION_DEFINITION_ITERATOR(MACRO)\ MACRO(LiteralNull, NO_MEMBERS)\ @@ -105,4 +110,7 @@ MACRO(FunctionDeclaration, FUNCTION_EXPRESSION_MEMBERS)\ MACRO(TopStatements, TOP_EXPRESSION_MEMBERS)\ MACRO(EmptyExpression, NO_MEMBERS)\ - MACRO(CallExpression, CALL_EXPRESSION_MEMBERS) + MACRO(Call, CALL_EXPRESSION_MEMBERS)\ + MACRO(MemberAccess, MEMBER_ACCESS_EXPRESSION_MEMBERS)\ + MACRO(Break, MEMBER_NO_MEMBERS)\ + MACRO(Continue, MEMBER_NO_MEMBERS) |
