From b94d85c9ed84f9c1b5609dfcfb2843aa43e7d80b Mon Sep 17 00:00:00 2001 From: Hexcede <8394472+Hexcede@users.noreply.github.com> Date: Thu, 28 Jul 2022 16:16:52 -0400 Subject: [PATCH 1/2] Add `__len` metamethod proxying --- src/Sandbox/Sandbox.lua | 14 ++++++++++++++ src/Tests/H6x/Detection/TableLen.lua | 6 ++++++ 2 files changed, 20 insertions(+) create mode 100644 src/Tests/H6x/Detection/TableLen.lua diff --git a/src/Sandbox/Sandbox.lua b/src/Sandbox/Sandbox.lua index 3bbe7ce..e81dfb8 100644 --- a/src/Sandbox/Sandbox.lua +++ b/src/Sandbox/Sandbox.lua @@ -148,6 +148,13 @@ function Sandbox.new(options) end -- TODO -- self:ActivityEvent("DoneIterating", real) end)), self:Import(real) + end, + __len = function(object) + self:ProcessTermination() + self:TrackThread() + + local real = self:GetClean(object) + return #real end -- __metatable = "The metatable is locked." }, @@ -201,6 +208,13 @@ function Sandbox.new(options) end -- TODO -- self:ActivityEvent("DoneIterating", real) end), real + end, + __len = function(object) + self:ProcessTermination() + self:TrackThread() + + local real = self:GetClean(object) + return #real end -- __metatable = "The metatable is locked." } diff --git a/src/Tests/H6x/Detection/TableLen.lua b/src/Tests/H6x/Detection/TableLen.lua new file mode 100644 index 0000000..83a2ddc --- /dev/null +++ b/src/Tests/H6x/Detection/TableLen.lua @@ -0,0 +1,6 @@ +return function(H6x) + local sandbox = H6x.Sandbox.new() + assert(sandbox:ExecuteFunction(function(tab) + return #tab + end, {1, 2, 3}) == 3, "Table length does not match.") +end \ No newline at end of file From 2193fb24f6a3d360bce92ec463ca12788852a162 Mon Sep 17 00:00:00 2001 From: Hexcede <8394472+Hexcede@users.noreply.github.com> Date: Thu, 28 Jul 2022 16:19:30 -0400 Subject: [PATCH 2/2] Bump version --- wally.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wally.toml b/wally.toml index 57aef4a..ce9fe2c 100644 --- a/wally.toml +++ b/wally.toml @@ -1,7 +1,7 @@ [package] name = "hexcede/h6x" description = "A luau utility for constructing sandboxes to run code within." -version = "2.1.2" +version = "2.1.3" license = "MIT" authors = ["Hexcede"] registry = "https://github.com/UpliftGames/wally-index"