Fixed issue: #51
This commit is contained in:
@@ -331,6 +331,48 @@ public class FragmentsTest extends TestSuite {
|
||||
}
|
||||
}
|
||||
|
||||
public void testPairsUsesMetatableOverride() {
|
||||
runFragment(
|
||||
LuaValue.varargsOf(new LuaValue[] {
|
||||
LuaValue.valueOf("k"),
|
||||
LuaValue.valueOf("v")
|
||||
}),
|
||||
"local t = setmetatable({}, {\n" +
|
||||
" __pairs = function(self)\n" +
|
||||
" local done = false\n" +
|
||||
" return function()\n" +
|
||||
" if done then return nil end\n" +
|
||||
" done = true\n" +
|
||||
" return 'k', 'v'\n" +
|
||||
" end, self, nil\n" +
|
||||
" end\n" +
|
||||
"})\n" +
|
||||
"for k, v in pairs(t) do\n" +
|
||||
" return k, v\n" +
|
||||
"end\n");
|
||||
}
|
||||
|
||||
public void testIpairsUsesMetatableOverride() {
|
||||
runFragment(
|
||||
LuaValue.varargsOf(new LuaValue[] {
|
||||
LuaValue.valueOf(7),
|
||||
LuaValue.valueOf("x")
|
||||
}),
|
||||
"local t = setmetatable({}, {\n" +
|
||||
" __ipairs = function(self)\n" +
|
||||
" local done = false\n" +
|
||||
" return function()\n" +
|
||||
" if done then return nil end\n" +
|
||||
" done = true\n" +
|
||||
" return 7, 'x'\n" +
|
||||
" end, self, 0\n" +
|
||||
" end\n" +
|
||||
"})\n" +
|
||||
"for i, v in ipairs(t) do\n" +
|
||||
" return i, v\n" +
|
||||
"end\n");
|
||||
}
|
||||
|
||||
public void testTableMove() {
|
||||
runFragment(
|
||||
LuaValue.varargsOf(new LuaValue[] {
|
||||
|
||||
Reference in New Issue
Block a user