+3
-3
@@ -466,7 +466,7 @@ DEF_PRIMITIVE(map_keyIteratorValue)
|
||||
MapEntry* entry = &map->entries[index];
|
||||
if (IS_UNDEFINED(entry->key))
|
||||
{
|
||||
RETURN_ERROR("Invalid map iterator value.");
|
||||
RETURN_ERROR("Invalid map iterator.");
|
||||
}
|
||||
|
||||
RETURN_VAL(entry->key);
|
||||
@@ -481,7 +481,7 @@ DEF_PRIMITIVE(map_valueIteratorValue)
|
||||
MapEntry* entry = &map->entries[index];
|
||||
if (IS_UNDEFINED(entry->key))
|
||||
{
|
||||
RETURN_ERROR("Invalid map iterator value.");
|
||||
RETURN_ERROR("Invalid map iterator.");
|
||||
}
|
||||
|
||||
RETURN_VAL(entry->value);
|
||||
@@ -1280,7 +1280,7 @@ void wrenInitializeCore(WrenVM* vm)
|
||||
PRIMITIVE(vm->mapClass, "containsKey(_)", map_containsKey);
|
||||
PRIMITIVE(vm->mapClass, "count", map_count);
|
||||
PRIMITIVE(vm->mapClass, "remove(_)", map_remove);
|
||||
PRIMITIVE(vm->mapClass, "iterate_(_)", map_iterate);
|
||||
PRIMITIVE(vm->mapClass, "iterate(_)", map_iterate);
|
||||
PRIMITIVE(vm->mapClass, "keyIteratorValue_(_)", map_keyIteratorValue);
|
||||
PRIMITIVE(vm->mapClass, "valueIteratorValue_(_)", map_valueIteratorValue);
|
||||
|
||||
|
||||
+21
-3
@@ -200,7 +200,7 @@ class List is Sequence {
|
||||
}
|
||||
}
|
||||
|
||||
class Map {
|
||||
class Map is Sequence {
|
||||
keys { MapKeySequence.new(this) }
|
||||
values { MapValueSequence.new(this) }
|
||||
|
||||
@@ -216,6 +216,24 @@ class Map {
|
||||
|
||||
return result + "}"
|
||||
}
|
||||
|
||||
iteratorValue(iterator) {
|
||||
return MapEntry.new(
|
||||
keyIteratorValue_(iterator),
|
||||
valueIteratorValue_(iterator))
|
||||
}
|
||||
}
|
||||
|
||||
class MapEntry {
|
||||
construct new(key, value) {
|
||||
_key = key
|
||||
_value = value
|
||||
}
|
||||
|
||||
key { _key }
|
||||
value { _value }
|
||||
|
||||
toString { "%(_key):%(_value)" }
|
||||
}
|
||||
|
||||
class MapKeySequence is Sequence {
|
||||
@@ -223,7 +241,7 @@ class MapKeySequence is Sequence {
|
||||
_map = map
|
||||
}
|
||||
|
||||
iterate(n) { _map.iterate_(n) }
|
||||
iterate(n) { _map.iterate(n) }
|
||||
iteratorValue(iterator) { _map.keyIteratorValue_(iterator) }
|
||||
}
|
||||
|
||||
@@ -232,7 +250,7 @@ class MapValueSequence is Sequence {
|
||||
_map = map
|
||||
}
|
||||
|
||||
iterate(n) { _map.iterate_(n) }
|
||||
iterate(n) { _map.iterate(n) }
|
||||
iteratorValue(iterator) { _map.valueIteratorValue_(iterator) }
|
||||
}
|
||||
|
||||
|
||||
@@ -202,7 +202,7 @@ static const char* coreModuleSource =
|
||||
" }\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"class Map {\n"
|
||||
"class Map is Sequence {\n"
|
||||
" keys { MapKeySequence.new(this) }\n"
|
||||
" values { MapValueSequence.new(this) }\n"
|
||||
"\n"
|
||||
@@ -218,6 +218,24 @@ static const char* coreModuleSource =
|
||||
"\n"
|
||||
" return result + \"}\"\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" iteratorValue(iterator) {\n"
|
||||
" return MapEntry.new(\n"
|
||||
" keyIteratorValue_(iterator),\n"
|
||||
" valueIteratorValue_(iterator))\n"
|
||||
" }\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"class MapEntry {\n"
|
||||
" construct new(key, value) {\n"
|
||||
" _key = key\n"
|
||||
" _value = value\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" key { _key }\n"
|
||||
" value { _value }\n"
|
||||
"\n"
|
||||
" toString { \"%(_key):%(_value)\" }\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"class MapKeySequence is Sequence {\n"
|
||||
@@ -225,7 +243,7 @@ static const char* coreModuleSource =
|
||||
" _map = map\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" iterate(n) { _map.iterate_(n) }\n"
|
||||
" iterate(n) { _map.iterate(n) }\n"
|
||||
" iteratorValue(iterator) { _map.keyIteratorValue_(iterator) }\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
@@ -234,7 +252,7 @@ static const char* coreModuleSource =
|
||||
" _map = map\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" iterate(n) { _map.iterate_(n) }\n"
|
||||
" iterate(n) { _map.iterate(n) }\n"
|
||||
" iteratorValue(iterator) { _map.valueIteratorValue_(iterator) }\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
|
||||
Reference in New Issue
Block a user