|
|
|
@ -103,5 +103,96 @@ function enums()
@@ -103,5 +103,96 @@ function enums()
|
|
|
|
|
eq(test.PassAndReturnsEnum(test.Enum0.Item1), test.Enum0.Item1); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function overloads() |
|
|
|
|
{ |
|
|
|
|
eq(test.Overload0(), undefined); |
|
|
|
|
|
|
|
|
|
eq(test.Overload1(), 1); |
|
|
|
|
eq(test.Overload1(2), 2); |
|
|
|
|
|
|
|
|
|
eq(test.Overload(1, 2), 1); |
|
|
|
|
//eq(test.Overload(1, 2.032), 2);
|
|
|
|
|
//eq(test.Overload(1.23, 2), 3);
|
|
|
|
|
|
|
|
|
|
eq(test.DefaultParamsOverload(0, 0), 2); |
|
|
|
|
eq(test.DefaultParamsOverload(0, 0.0), 2); |
|
|
|
|
eq(test.DefaultParamsOverload(0), 3); |
|
|
|
|
|
|
|
|
|
eq(test.DefaultParamsOverload2(), 1); |
|
|
|
|
eq(test.DefaultParamsOverload2(1), 1); |
|
|
|
|
eq(test.DefaultParamsOverload2(1, 2), 1); |
|
|
|
|
eq(test.DefaultParamsOverload2(1, 2, 3), 1); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function classes() |
|
|
|
|
{ |
|
|
|
|
var c = new test.Class(); |
|
|
|
|
eq(typeof(c), "object") |
|
|
|
|
eq(c.ReturnsVoid(), undefined) |
|
|
|
|
eq(c.ReturnsInt(), 0) |
|
|
|
|
eq(c.PassAndReturnsClassPtr(null), null) |
|
|
|
|
|
|
|
|
|
var c1 = new test.ClassWithSingleInheritance(); |
|
|
|
|
eq(c1.__proto__.constructor.name, 'ClassWithSingleInheritance') |
|
|
|
|
eq(c1.__proto__.__proto__.constructor.name, 'Class') |
|
|
|
|
eq(c1.ReturnsVoid(), undefined); |
|
|
|
|
eq(c1.ReturnsInt(), 0); |
|
|
|
|
eq(c1.ChildMethod(), 2); |
|
|
|
|
|
|
|
|
|
var classWithField = new test.ClassWithField(); |
|
|
|
|
eq(classWithField.ReturnsField(), 10); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function delegates() |
|
|
|
|
{ |
|
|
|
|
const signal = new test.Signal(); |
|
|
|
|
eq(signal.toString(), "Signal"); |
|
|
|
|
|
|
|
|
|
const classWithDelegate = new test.ClassWithDelegate(); |
|
|
|
|
const event0 = classWithDelegate.OnEvent0; |
|
|
|
|
eq(event0.__proto__.constructor.name, "Signal") |
|
|
|
|
|
|
|
|
|
const event0_1 = classWithDelegate.OnEvent0; |
|
|
|
|
eq(event0 === event0_1, true); |
|
|
|
|
|
|
|
|
|
let anon_cb_called = false; |
|
|
|
|
const anon_cb = () => { anon_cb_called = true; return 32; }; |
|
|
|
|
event0.connect(anon_cb); |
|
|
|
|
classWithDelegate.FireEvent0(10); |
|
|
|
|
eq(anon_cb_called, true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function delegates2() |
|
|
|
|
{ |
|
|
|
|
let anon_cb_called = false; |
|
|
|
|
const anon_cb = () => { anon_cb_called = true; return 32; }; |
|
|
|
|
const classInheritsDelegate = new test.ClassInheritsDelegate(); |
|
|
|
|
const event0 = classInheritsDelegate.OnEvent0; |
|
|
|
|
event0.connect(anon_cb); |
|
|
|
|
classInheritsDelegate.FireEvent0(10); |
|
|
|
|
eq(anon_cb_called, true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
builtins(); |
|
|
|
|
enums(); |
|
|
|
|
overloads(); |
|
|
|
|
classes(); |
|
|
|
|
delegates(); |
|
|
|
|
delegates2(); |
|
|
|
|
|
|
|
|
|
function printChain(obj) |
|
|
|
|
{ |
|
|
|
|
console.log("\nprototypes:") |
|
|
|
|
let proto = obj.__proto__ |
|
|
|
|
if (proto == null) |
|
|
|
|
{ |
|
|
|
|
console.log("invalid proto") |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
while (proto != null) |
|
|
|
|
{ |
|
|
|
|
console.log(proto.constructor.name) |
|
|
|
|
proto = proto.__proto__ |
|
|
|
|
} |
|
|
|
|
console.log("") |
|
|
|
|
} |
|
|
|
|