From 6ba49b30cf1e33fb0dd6782a404ec34b7964cb59 Mon Sep 17 00:00:00 2001 From: Martin Dobrev Date: Tue, 24 Nov 2020 18:06:26 +0200 Subject: 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 * Add implement byte code generation for break/continue in for/while. --- JSImpl/src/ExpressionDefinitions.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'JSImpl/src/ExpressionDefinitions.h') 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, Values, IPLVector()) #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) -- cgit v1.3.1-23-gd82d