diff --git a/core/tests/regression_tests.rs b/core/tests/regression_tests.rs index 722927ab5..a691b002a 100644 --- a/core/tests/regression_tests.rs +++ b/core/tests/regression_tests.rs @@ -252,6 +252,9 @@ swf_tests! { (as3_object_to_locale_string, "avm2/object_to_locale_string", 1), (as3_function_to_locale_string, "avm2/function_to_locale_string", 1), (as3_class_to_locale_string, "avm2/class_to_locale_string", 1), + (as3_object_value_of, "avm2/object_value_of", 1), + (as3_function_value_of, "avm2/function_value_of", 1), + (as3_class_value_of, "avm2/class_value_of", 1), } // TODO: These tests have some inaccuracies currently, so we use approx_eq to test that numeric values are close enough. diff --git a/core/tests/swfs/avm2/class_value_of/Test.as b/core/tests/swfs/avm2/class_value_of/Test.as new file mode 100644 index 000000000..7f8b320ed --- /dev/null +++ b/core/tests/swfs/avm2/class_value_of/Test.as @@ -0,0 +1,10 @@ +package { + public class Test {} +} + +class ES4Class { + +} + +trace("//ES4Class.valueOf() === ES4Class"); +trace(ES4Class.valueOf() === ES4Class); \ No newline at end of file diff --git a/core/tests/swfs/avm2/class_value_of/output.txt b/core/tests/swfs/avm2/class_value_of/output.txt new file mode 100644 index 000000000..199f9dd8a --- /dev/null +++ b/core/tests/swfs/avm2/class_value_of/output.txt @@ -0,0 +1,2 @@ +//ES4Class.valueOf() === ES4Class +true diff --git a/core/tests/swfs/avm2/class_value_of/test.fla b/core/tests/swfs/avm2/class_value_of/test.fla new file mode 100644 index 000000000..d382fbe3e Binary files /dev/null and b/core/tests/swfs/avm2/class_value_of/test.fla differ diff --git a/core/tests/swfs/avm2/class_value_of/test.swf b/core/tests/swfs/avm2/class_value_of/test.swf new file mode 100644 index 000000000..ba4f6e441 Binary files /dev/null and b/core/tests/swfs/avm2/class_value_of/test.swf differ diff --git a/core/tests/swfs/avm2/function_value_of/Test.as b/core/tests/swfs/avm2/function_value_of/Test.as new file mode 100644 index 000000000..038d75e6c --- /dev/null +++ b/core/tests/swfs/avm2/function_value_of/Test.as @@ -0,0 +1,16 @@ +package { + public class Test {} +} + +var freeFunction = function() { +}; + +function namedFunction() { + +} + +trace("//freeFunction.valueOf() === freeFunction"); +trace(freeFunction.valueOf() === freeFunction); + +trace("//namedFunction.valueOf() === namedFunction"); +trace(namedFunction.valueOf() === namedFunction); \ No newline at end of file diff --git a/core/tests/swfs/avm2/function_value_of/output.txt b/core/tests/swfs/avm2/function_value_of/output.txt new file mode 100644 index 000000000..5be28b9db --- /dev/null +++ b/core/tests/swfs/avm2/function_value_of/output.txt @@ -0,0 +1,4 @@ +//freeFunction.valueOf() === freeFunction +true +//namedFunction.valueOf() === namedFunction +true diff --git a/core/tests/swfs/avm2/function_value_of/test.fla b/core/tests/swfs/avm2/function_value_of/test.fla new file mode 100644 index 000000000..d382fbe3e Binary files /dev/null and b/core/tests/swfs/avm2/function_value_of/test.fla differ diff --git a/core/tests/swfs/avm2/function_value_of/test.swf b/core/tests/swfs/avm2/function_value_of/test.swf new file mode 100644 index 000000000..eee5e2b1d Binary files /dev/null and b/core/tests/swfs/avm2/function_value_of/test.swf differ diff --git a/core/tests/swfs/avm2/object_value_of/Test.as b/core/tests/swfs/avm2/object_value_of/Test.as new file mode 100644 index 000000000..38c66a8af --- /dev/null +++ b/core/tests/swfs/avm2/object_value_of/Test.as @@ -0,0 +1,8 @@ +package { + public class Test {} +} + +var obj = new Object(); + +trace("//obj.valueOf() === obj"); +trace(obj.valueOf() === obj); \ No newline at end of file diff --git a/core/tests/swfs/avm2/object_value_of/output.txt b/core/tests/swfs/avm2/object_value_of/output.txt new file mode 100644 index 000000000..03efbeb6f --- /dev/null +++ b/core/tests/swfs/avm2/object_value_of/output.txt @@ -0,0 +1,2 @@ +//obj.valueOf() === obj +true diff --git a/core/tests/swfs/avm2/object_value_of/test.fla b/core/tests/swfs/avm2/object_value_of/test.fla new file mode 100644 index 000000000..d382fbe3e Binary files /dev/null and b/core/tests/swfs/avm2/object_value_of/test.fla differ diff --git a/core/tests/swfs/avm2/object_value_of/test.swf b/core/tests/swfs/avm2/object_value_of/test.swf new file mode 100644 index 000000000..49c490e50 Binary files /dev/null and b/core/tests/swfs/avm2/object_value_of/test.swf differ