core: Add test for `Object.registerClass` return values

This commit is contained in:
Moulins 2021-01-12 15:32:56 +01:00 committed by Mike Welsh
parent f394953331
commit 26a2b6e4f7
4 changed files with 49 additions and 0 deletions

View File

@ -163,6 +163,7 @@ swf_tests! {
(escape, "avm1/escape", 1), (escape, "avm1/escape", 1),
(unescape, "avm1/unescape", 1), (unescape, "avm1/unescape", 1),
(register_class, "avm1/register_class", 1), (register_class, "avm1/register_class", 1),
(register_class_return_value, "avm1/register_class_return_value", 1),
(register_and_init_order, "avm1/register_and_init_order", 1), (register_and_init_order, "avm1/register_and_init_order", 1),
(on_construct, "avm1/on_construct", 1), (on_construct, "avm1/on_construct", 1),
(set_variable_scope, "avm1/set_variable_scope", 1), (set_variable_scope, "avm1/set_variable_scope", 1),

View File

@ -0,0 +1,32 @@
// Compile with:
// mtasc -main -header 200:150:30 Test.as -swf test.swf
class Test {
static function main(current) {
// Variables to bypass MTASC's type checker.
var number = 12;
var object = {};
var string = "bar";
trace("// not enough args");
trace(Object.registerClass());
trace("// too many args");
trace(Object.registerClass("foo", null, "bar"));
trace("// register a constructor");
trace(Object.registerClass("foo", function() {}));
trace("// unregister a constructor");
trace(Object.registerClass("foo", null));
trace("// weird symbols names");
trace(Object.registerClass(null, null));
trace(Object.registerClass(number, null));
trace(Object.registerClass(object, null));
trace("// wrong types");
trace(Object.registerClass("foo", number));
trace(Object.registerClass("foo", string));
trace(Object.registerClass("foo", object));
}
}

View File

@ -0,0 +1,16 @@
// not enough args
false
// too many args
true
// register a constructor
true
// unregister a constructor
true
// weird symbols names
true
true
true
// wrong types
false
false
false