Files
wren/test/api/slots.wren
T

40 lines
1.2 KiB
Plaintext
Raw Normal View History

2015-12-16 13:00:13 -08:00
class Slots {
foreign static noSet
foreign static getSlots(bool, num, string, bytes, value)
foreign static setSlots(a, b, c, d)
foreign static slotTypes(bool, foreignObj, list, nullObj, num, string, unknown)
2015-12-16 16:28:26 -08:00
foreign static ensure()
foreign static ensureOutsideForeign()
2016-07-28 08:06:36 -07:00
foreign static getListCount(list)
foreign static getListElement(list, index)
2015-12-16 13:00:13 -08:00
}
foreign class ForeignType {
construct new() {}
}
2015-12-16 13:00:13 -08:00
// If nothing is set in the return slot, it retains its previous value, the
// receiver.
System.print(Slots.noSet == Slots) // expect: true
var value = ["value"]
System.print(Slots.getSlots(true, "by\0te", 12.34, "str", value) == value)
// expect: true
2015-12-16 13:00:13 -08:00
System.print(Slots.setSlots(value, 0, 0, 0) == value)
// expect: true
2015-12-16 16:28:26 -08:00
System.print(Slots.slotTypes(false, ForeignType.new(), [], null, 1.2, "str", 1..2))
// expect: true
System.print(Slots.ensure())
// expect: 1 -> 20 (190)
System.print(Slots.ensureOutsideForeign())
// expect: 0 -> 20 (190)
var ducks = ["Huey", "Dewey", "Louie"]
2016-07-28 08:06:36 -07:00
System.print(Slots.getListCount(ducks)) // expect: 3
System.print(Slots.getListElement(ducks, 0)) // expect: Huey
System.print(Slots.getListElement(ducks, 1)) // expect: Dewey