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.
This commit is contained in:
Derick Alangi 2021-06-13 17:28:31 +01:00
parent 22be6af376
commit ece87384ab

View File

@ -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.