Add tests for control flow instructions that use booleans or strict equality.

Other comparisons will have to wait until we have ECMA-compliant abstract comparison and coercion.
This commit is contained in:
David Wendt 2020-03-04 14:25:44 -05:00
parent 9c5ea1d30c
commit 7253c091a2
9 changed files with 98 additions and 0 deletions

View File

@ -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.

View File

@ -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)");
}

View File

@ -0,0 +1,4 @@
if (true)
if (!false)
if (!true)
if (false)

Binary file not shown.

Binary file not shown.

View File

@ -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)");
}

View File

@ -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)

Binary file not shown.

Binary file not shown.