diff --git a/core/tests/regression_tests.rs b/core/tests/regression_tests.rs index d73d7341d..eff7b84da 100644 --- a/core/tests/regression_tests.rs +++ b/core/tests/regression_tests.rs @@ -236,6 +236,8 @@ swf_tests! { (as3_virtual_properties, "avm2/virtual_properties", 1), (as3_es4_oop_prototypes, "avm2/es4_oop_prototypes", 1), (as3_es4_method_binding, "avm2/es4_method_binding", 1), + (as3_control_flow_bool, "avm2/control_flow_bool", 1), + (as3_control_flow_stricteq, "avm2/control_flow_stricteq", 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/control_flow_bool/Test.as b/core/tests/swfs/avm2/control_flow_bool/Test.as new file mode 100644 index 000000000..aeeb49045 --- /dev/null +++ b/core/tests/swfs/avm2/control_flow_bool/Test.as @@ -0,0 +1,30 @@ +package { + public class Test {} +} + +var t = true; +var f = false; + +if (t) { + trace("if (true)"); +} else { + trace("TEST FAIL: if (true)"); +} + +if (!f) { + trace("if (!false)"); +} else { + trace("TEST FAIL: if (!false)"); +} + +if (!t) { + trace("TEST FAIL: if (!true)"); +} else { + trace("if (!true)"); +} + +if (f) { + trace("TEST FAIL: if (false)"); +} else { + trace("if (false)"); +} \ No newline at end of file diff --git a/core/tests/swfs/avm2/control_flow_bool/output.txt b/core/tests/swfs/avm2/control_flow_bool/output.txt new file mode 100644 index 000000000..c1e3ebcab --- /dev/null +++ b/core/tests/swfs/avm2/control_flow_bool/output.txt @@ -0,0 +1,4 @@ +if (true) +if (!false) +if (!true) +if (false) diff --git a/core/tests/swfs/avm2/control_flow_bool/test.fla b/core/tests/swfs/avm2/control_flow_bool/test.fla new file mode 100644 index 000000000..e84226824 Binary files /dev/null and b/core/tests/swfs/avm2/control_flow_bool/test.fla differ diff --git a/core/tests/swfs/avm2/control_flow_bool/test.swf b/core/tests/swfs/avm2/control_flow_bool/test.swf new file mode 100644 index 000000000..e691fb87b Binary files /dev/null and b/core/tests/swfs/avm2/control_flow_bool/test.swf differ diff --git a/core/tests/swfs/avm2/control_flow_stricteq/Test.as b/core/tests/swfs/avm2/control_flow_stricteq/Test.as new file mode 100644 index 000000000..bbb32a797 --- /dev/null +++ b/core/tests/swfs/avm2/control_flow_stricteq/Test.as @@ -0,0 +1,54 @@ +package { + public class Test {} +} + +var t = true; +var f = false; + +if (t === t) { + trace("if (true === true)"); +} else { + trace("TEST FAIL: if (true === true)"); +} + +if (t === f) { + trace("TEST FAIL: if (true === false)"); +} else { + trace("if (true === false)"); +} + +if (f === t) { + trace("TEST FAIL: if (false === true)"); +} else { + trace("if (false === true)"); +} + +if (f === f) { + trace("if (false === false)"); +} else { + trace("TEST FAIL: if (false === false)"); +} + +if (t !== t) { + trace("TEST FAIL: if (true !== true)"); +} else { + trace("if (true !== true)"); +} + +if (t !== f) { + trace("if (true !== false)"); +} else { + trace("TEST FAIL: if (true !== false)"); +} + +if (f !== t) { + trace("if (false !== true)"); +} else { + trace("TEST FAIL: if (false !== true)"); +} + +if (f !== f) { + trace("TEST FAIL: if (false !== false)"); +} else { + trace("if (false !== false)"); +} \ No newline at end of file diff --git a/core/tests/swfs/avm2/control_flow_stricteq/output.txt b/core/tests/swfs/avm2/control_flow_stricteq/output.txt new file mode 100644 index 000000000..d92f63df2 --- /dev/null +++ b/core/tests/swfs/avm2/control_flow_stricteq/output.txt @@ -0,0 +1,8 @@ +if (true === true) +if (true === false) +if (false === true) +if (false === false) +if (true !== true) +if (true !== false) +if (false !== true) +if (false !== false) diff --git a/core/tests/swfs/avm2/control_flow_stricteq/test.fla b/core/tests/swfs/avm2/control_flow_stricteq/test.fla new file mode 100644 index 000000000..e84226824 Binary files /dev/null and b/core/tests/swfs/avm2/control_flow_stricteq/test.fla differ diff --git a/core/tests/swfs/avm2/control_flow_stricteq/test.swf b/core/tests/swfs/avm2/control_flow_stricteq/test.swf new file mode 100644 index 000000000..421426e41 Binary files /dev/null and b/core/tests/swfs/avm2/control_flow_stricteq/test.swf differ