Open
Description
const a = ["foo", "bar"];
a.every((v) => typeof v === "string");
const b = new Set(["foo", "bar"]);
const values = b.values().toArray();
values.every((v) => typeof v === "string");
const c = new Set(["foo", "bar"]);
c.values().every((v) => typeof v === "string");
The code compiles to:
local ____lualib = require("lualib_bundle")
local __TS__ArrayEvery = ____lualib.__TS__ArrayEvery
local Set = ____lualib.Set
local __TS__New = ____lualib.__TS__New
local ____exports = {}
local a = {"foo", "bar"}
__TS__ArrayEvery(
a,
function(____, v) return type(v) == "string" end
)
local b = __TS__New(Set, {"foo", "bar"})
local values = b:values():toArray()
__TS__ArrayEvery(
values,
function(____, v) return type(v) == "string" end
)
local c = __TS__New(Set, {"foo", "bar"})
c:values():every(function(____, v) return type(v) == "string" end)
return ____exports
Here, :toArray()
and :every()
is missing from the set iterator returned by :values()
, causing a runtime error.