From ece87384abc7b9624efa30a5262ef29e5faf83ab Mon Sep 17 00:00:00 2001 From: Derick Alangi Date: Sun, 13 Jun 2021 17:28:31 +0100 Subject: [PATCH] Add support for `.start` and `.end` attributes on Range objects This is an attempt to implement `.start` and `.end` on range objects to fix issue #60. --- src/pk_core.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/pk_core.c b/src/pk_core.c index ff003d8..5e29934 100644 --- a/src/pk_core.c +++ b/src/pk_core.c @@ -1318,9 +1318,15 @@ Var varGetAttrib(PKVM* vm, Var on, String* attrib) { Range* range = (Range*)obj; SWITCH_ATTRIB(attrib->data) { - CASE_ATTRIB("as_list", 0x1562c22) : + CASE_ATTRIB("as_list", 0x1562c22): return VAR_OBJ(rangeAsList(vm, range)); + CASE_ATTRIB("start", 0x652b04df): + return VAR_NUM((double)(range->from)); + + CASE_ATTRIB("end", 0x6a8e75aa): + return VAR_NUM((double)(range->to)); + CASE_DEFAULT: ERR_NO_ATTRIB(vm, on, attrib); return VAR_NULL; @@ -1329,7 +1335,8 @@ Var varGetAttrib(PKVM* vm, Var on, String* attrib) { UNREACHABLE(); } - case OBJ_SCRIPT: { + case OBJ_SCRIPT: + { Script* scr = (Script*)obj; // Search in functions.