diff --git a/dev/tests/bytearray.lua b/dev/tests/bytearray.lua index 9860b9fe..e20d4318 100644 --- a/dev/tests/bytearray.lua +++ b/dev/tests/bytearray.lua @@ -6,3 +6,7 @@ for i=1,10 do assert(#arr == i) assert(arr[i] == 10 - i) end + +for i, v in ipairs(arr) do + assert(v == 10 - i) +end diff --git a/res/modules/internal/bytearray.lua b/res/modules/internal/bytearray.lua index 7178985e..03a2578d 100644 --- a/res/modules/internal/bytearray.lua +++ b/res/modules/internal/bytearray.lua @@ -119,6 +119,15 @@ local bytearray_mt = { end, __gc = function(self) free(self.bytes) + end, + __ipairs = function(self) + local i = 0 + return function() + i = i + 1 + if i <= self.size then + return i, self.bytes[i - 1] + end + end end }