Adding GetArray for strings

This commit is contained in:
Vasilii Rogin 2023-04-24 14:48:01 +03:00
parent 75cc266b25
commit 89ba7fdcb3
3 changed files with 9 additions and 5 deletions

View File

@ -539,9 +539,13 @@ static void opGetArray(Program* program)
// TODO: If type is string then do substr instead of array operation // TODO: If type is string then do substr instead of array operation
auto key = programStackPopValue(program); auto key = programStackPopValue(program);
auto arrayId = programStackPopInteger(program);
auto value = GetArray(arrayId, SFallScriptValue { key }); auto arrayId = SFallScriptValue { programStackPopValue(program) };
programStackPushValue(program, value); if (arrayId.isInt()) {
auto value = GetArray(arrayId.integerValue, SFallScriptValue { key });
programStackPushValue(program, value);
} else {
}
} }
// free_array // free_array

View File

@ -18,7 +18,7 @@ SFallScriptValue::SFallScriptValue(Object* value)
opcode = VALUE_TYPE_PTR; opcode = VALUE_TYPE_PTR;
pointerValue = value; pointerValue = value;
}; };
SFallScriptValue::SFallScriptValue(ProgramValue& value) SFallScriptValue::SFallScriptValue(const ProgramValue& value)
{ {
opcode = value.opcode; opcode = value.opcode;

View File

@ -11,7 +11,7 @@ public:
SFallScriptValue(); SFallScriptValue();
SFallScriptValue(int value); SFallScriptValue(int value);
SFallScriptValue(Object* value); SFallScriptValue(Object* value);
SFallScriptValue(ProgramValue& value); SFallScriptValue(const ProgramValue& value);
bool isInt() const; bool isInt() const;
bool isFloat() const; bool isFloat() const;