mirror of
https://github.com/luau-lang/luau.git
synced 2025-05-04 10:33:46 +01:00
[Tests] Added LuauPolyfillMap coerceToTable related tests
This commit is contained in:
parent
e66d16ac18
commit
f70e21d9b3
1 changed files with 0 additions and 29 deletions
|
@ -4,35 +4,6 @@
|
||||||
local Array = {}
|
local Array = {}
|
||||||
local Object = {}
|
local Object = {}
|
||||||
local Map = {}
|
local Map = {}
|
||||||
local None = newproxy(true)
|
|
||||||
|
|
||||||
type Comparable = (any, any) -> number
|
|
||||||
local defaultSort = function(a: any, b: any): boolean
|
|
||||||
return type(a) .. tostring(a) < type(b) .. tostring(b)
|
|
||||||
end
|
|
||||||
|
|
||||||
function Array.sort(array: Array<any>, compare: Comparable?)
|
|
||||||
-- wrapperCompare interprets compare return value to be compatible with Lua's table.sort
|
|
||||||
local wrappedCompare = defaultSort
|
|
||||||
if compare ~= nil and compare ~= None then
|
|
||||||
if typeof(compare :: any) ~= "function" then
|
|
||||||
error("invalid argument to Array.sort: compareFunction must be a function")
|
|
||||||
end
|
|
||||||
wrappedCompare = function(a, b)
|
|
||||||
local result = compare(a, b)
|
|
||||||
if typeof(result) ~= "number" then
|
|
||||||
-- deviation: throw an error because
|
|
||||||
-- it's not clearly defined what is
|
|
||||||
-- the behavior when the compare function
|
|
||||||
-- does not return a number
|
|
||||||
error(("invalid result from compare function, expected number but got %s"):format(typeof(result)))
|
|
||||||
end
|
|
||||||
return result < 0
|
|
||||||
end
|
|
||||||
end
|
|
||||||
table.sort(array, wrappedCompare)
|
|
||||||
return array
|
|
||||||
end
|
|
||||||
|
|
||||||
type Array<T> = { [number]: T }
|
type Array<T> = { [number]: T }
|
||||||
type callbackFn<K, V> = (element: V, key: K, map: Map<K, V>) -> ()
|
type callbackFn<K, V> = (element: V, key: K, map: Map<K, V>) -> ()
|
||||||
|
|
Loading…
Add table
Reference in a new issue