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:
parent
9c5ea1d30c
commit
7253c091a2
|
@ -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.
|
||||
|
|
|
@ -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)");
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
if (true)
|
||||
if (!false)
|
||||
if (!true)
|
||||
if (false)
|
Binary file not shown.
Binary file not shown.
|
@ -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)");
|
||||
}
|
|
@ -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.
Loading…
Reference in New Issue