Add a test for `propertyIsEnumerable`.
This commit is contained in:
parent
2afbcf450a
commit
dc0cb00a03
|
@ -242,6 +242,7 @@ swf_tests! {
|
|||
(as3_class_enumeration, "avm2/class_enumeration", 1),
|
||||
(as3_is_prototype_of, "avm2/is_prototype_of", 1),
|
||||
(as3_has_own_property, "avm2/has_own_property", 1),
|
||||
(as3_property_is_enumerable, "avm2/property_is_enumerable", 1),
|
||||
}
|
||||
|
||||
// TODO: These tests have some inaccuracies currently, so we use approx_eq to test that numeric values are close enough.
|
||||
|
|
|
@ -0,0 +1,177 @@
|
|||
package {
|
||||
public class Test {}
|
||||
}
|
||||
|
||||
class ES4Class extends Object {
|
||||
public var test_var = "var";
|
||||
public const test_const = "const";
|
||||
|
||||
public function test_function() {
|
||||
trace("test_function");
|
||||
}
|
||||
|
||||
public function get test_virt() {
|
||||
return "test_virt";
|
||||
}
|
||||
|
||||
public function set test_virt(val) {
|
||||
trace("test_virt");
|
||||
}
|
||||
|
||||
public static var test_static_var = "var";
|
||||
public static const test_static_const = "const";
|
||||
|
||||
public static function test_static_function() {
|
||||
trace("test_static_function");
|
||||
}
|
||||
|
||||
public static function get test_static_virt() {
|
||||
return "test_static_virt";
|
||||
}
|
||||
|
||||
public static function set test_static_virt(val) {
|
||||
trace("test_static_virt");
|
||||
}
|
||||
|
||||
private var test_private_var = "private_var";
|
||||
private const test_private_const = "private_const";
|
||||
|
||||
private function test_private_function() {
|
||||
trace("test_private_function");
|
||||
}
|
||||
|
||||
private function get test_private_virt() {
|
||||
return "test_private_virt";
|
||||
}
|
||||
|
||||
private function set test_private_virt(val) {
|
||||
trace("test_private_virt");
|
||||
}
|
||||
}
|
||||
|
||||
function ES3Class() {
|
||||
this.test_var = "var";
|
||||
}
|
||||
|
||||
ES3Class.test_static_var = "var";
|
||||
|
||||
ES3Class.test_static_function = function () {
|
||||
trace("test_static_function");
|
||||
}
|
||||
|
||||
ES3Class.prototype.test_function = function() {
|
||||
trace("test_function");
|
||||
}
|
||||
|
||||
ES3Class.prototype.test_proto = "proto_var";
|
||||
|
||||
var es4inst = new ES4Class();
|
||||
var es3inst = new ES3Class();
|
||||
|
||||
trace("//es4inst.propertyIsEnumerable('test_var')");
|
||||
trace(es4inst.propertyIsEnumerable('test_var'));
|
||||
trace("//es4inst.propertyIsEnumerable('test_const')");
|
||||
trace(es4inst.propertyIsEnumerable('test_const'));
|
||||
trace("//es4inst.propertyIsEnumerable('test_function')");
|
||||
trace(es4inst.propertyIsEnumerable('test_function'));
|
||||
trace("//es4inst.propertyIsEnumerable('test_virt')");
|
||||
trace(es4inst.propertyIsEnumerable('test_virt'));
|
||||
trace("//es4inst.propertyIsEnumerable('test_static_var')");
|
||||
trace(es4inst.propertyIsEnumerable('test_static_var'));
|
||||
trace("//es4inst.propertyIsEnumerable('test_static_const')");
|
||||
trace(es4inst.propertyIsEnumerable('test_static_const'));
|
||||
trace("//es4inst.propertyIsEnumerable('test_static_function')");
|
||||
trace(es4inst.propertyIsEnumerable('test_static_function'));
|
||||
trace("//es4inst.propertyIsEnumerable('test_static_virt')");
|
||||
trace(es4inst.propertyIsEnumerable('test_static_virt'));
|
||||
trace("//es4inst.propertyIsEnumerable('test_private_var')");
|
||||
trace(es4inst.propertyIsEnumerable('test_private_var'));
|
||||
trace("//es4inst.propertyIsEnumerable('test_private_const')");
|
||||
trace(es4inst.propertyIsEnumerable('test_private_const'));
|
||||
trace("//es4inst.propertyIsEnumerable('test_private_function')");
|
||||
trace(es4inst.propertyIsEnumerable('test_private_function'));
|
||||
trace("//es4inst.propertyIsEnumerable('test_private_virt')");
|
||||
trace(es4inst.propertyIsEnumerable('test_private_virt'));
|
||||
|
||||
trace("//ES4Class.propertyIsEnumerable('test_var')");
|
||||
trace(ES4Class.propertyIsEnumerable('test_var'));
|
||||
trace("//ES4Class.propertyIsEnumerable('test_const')");
|
||||
trace(ES4Class.propertyIsEnumerable('test_const'));
|
||||
trace("//ES4Class.propertyIsEnumerable('test_function')");
|
||||
trace(ES4Class.propertyIsEnumerable('test_function'));
|
||||
trace("//ES4Class.propertyIsEnumerable('test_virt')");
|
||||
trace(ES4Class.propertyIsEnumerable('test_virt'));
|
||||
trace("//ES4Class.propertyIsEnumerable('test_static_var')");
|
||||
trace(ES4Class.propertyIsEnumerable('test_static_var'));
|
||||
trace("//ES4Class.propertyIsEnumerable('test_static_const')");
|
||||
trace(ES4Class.propertyIsEnumerable('test_static_const'));
|
||||
trace("//ES4Class.propertyIsEnumerable('test_static_function')");
|
||||
trace(ES4Class.propertyIsEnumerable('test_static_function'));
|
||||
trace("//ES4Class.propertyIsEnumerable('test_static_virt')");
|
||||
trace(ES4Class.propertyIsEnumerable('test_static_virt'));
|
||||
trace("//ES4Class.propertyIsEnumerable('test_private_var')");
|
||||
trace(ES4Class.propertyIsEnumerable('test_private_var'));
|
||||
trace("//ES4Class.propertyIsEnumerable('test_private_const')");
|
||||
trace(ES4Class.propertyIsEnumerable('test_private_const'));
|
||||
trace("//ES4Class.propertyIsEnumerable('test_private_function')");
|
||||
trace(ES4Class.propertyIsEnumerable('test_private_function'));
|
||||
trace("//ES4Class.propertyIsEnumerable('test_private_virt')");
|
||||
trace(ES4Class.propertyIsEnumerable('test_private_virt'));
|
||||
|
||||
trace("//ES4Class.prototype.propertyIsEnumerable('test_var')");
|
||||
trace(ES4Class.prototype.propertyIsEnumerable('test_var'));
|
||||
trace("//ES4Class.prototype.propertyIsEnumerable('test_const')");
|
||||
trace(ES4Class.prototype.propertyIsEnumerable('test_const'));
|
||||
trace("//ES4Class.prototype.propertyIsEnumerable('test_function')");
|
||||
trace(ES4Class.prototype.propertyIsEnumerable('test_function'));
|
||||
trace("//ES4Class.prototype.propertyIsEnumerable('test_virt')");
|
||||
trace(ES4Class.prototype.propertyIsEnumerable('test_virt'));
|
||||
trace("//ES4Class.prototype.propertyIsEnumerable('test_static_var')");
|
||||
trace(ES4Class.prototype.propertyIsEnumerable('test_static_var'));
|
||||
trace("//ES4Class.prototype.propertyIsEnumerable('test_static_const')");
|
||||
trace(ES4Class.prototype.propertyIsEnumerable('test_static_const'));
|
||||
trace("//ES4Class.prototype.propertyIsEnumerable('test_static_function')");
|
||||
trace(ES4Class.prototype.propertyIsEnumerable('test_static_function'));
|
||||
trace("//ES4Class.prototype.propertyIsEnumerable('test_static_virt')");
|
||||
trace(ES4Class.prototype.propertyIsEnumerable('test_static_virt'));
|
||||
trace("//ES4Class.prototype.propertyIsEnumerable('test_private_var')");
|
||||
trace(ES4Class.prototype.propertyIsEnumerable('test_private_var'));
|
||||
trace("//ES4Class.prototype.propertyIsEnumerable('test_private_const')");
|
||||
trace(ES4Class.prototype.propertyIsEnumerable('test_private_const'));
|
||||
trace("//ES4Class.prototype.propertyIsEnumerable('test_private_function')");
|
||||
trace(ES4Class.prototype.propertyIsEnumerable('test_private_function'));
|
||||
trace("//ES4Class.prototype.propertyIsEnumerable('test_private_virt')");
|
||||
trace(ES4Class.prototype.propertyIsEnumerable('test_private_virt'));
|
||||
|
||||
trace("//es3inst.propertyIsEnumerable('test_var')");
|
||||
trace(es3inst.propertyIsEnumerable('test_var'));
|
||||
trace("//es3inst.propertyIsEnumerable('test_function')");
|
||||
trace(es3inst.propertyIsEnumerable('test_function'));
|
||||
trace("//es3inst.propertyIsEnumerable('test_proto')");
|
||||
trace(es3inst.propertyIsEnumerable('test_proto'));
|
||||
trace("//es3inst.propertyIsEnumerable('test_static_var')");
|
||||
trace(es3inst.propertyIsEnumerable('test_static_var'));
|
||||
trace("//es3inst.propertyIsEnumerable('test_static_function')");
|
||||
trace(es3inst.propertyIsEnumerable('test_static_function'));
|
||||
|
||||
trace("//ES3Class.propertyIsEnumerable('test_var')");
|
||||
trace(ES3Class.propertyIsEnumerable('test_var'));
|
||||
trace("//ES3Class.propertyIsEnumerable('test_function')");
|
||||
trace(ES3Class.propertyIsEnumerable('test_function'));
|
||||
trace("//ES3Class.propertyIsEnumerable('test_proto')");
|
||||
trace(ES3Class.propertyIsEnumerable('test_proto'));
|
||||
trace("//ES3Class.propertyIsEnumerable('test_static_var')");
|
||||
trace(ES3Class.propertyIsEnumerable('test_static_var'));
|
||||
trace("//ES3Class.propertyIsEnumerable('test_static_function')");
|
||||
trace(ES3Class.propertyIsEnumerable('test_static_function'));
|
||||
|
||||
trace("//ES3Class.prototype.propertyIsEnumerable('test_var')");
|
||||
trace(ES3Class.prototype.propertyIsEnumerable('test_var'));
|
||||
trace("//ES3Class.prototype.propertyIsEnumerable('test_function')");
|
||||
trace(ES3Class.prototype.propertyIsEnumerable('test_function'));
|
||||
trace("//ES3Class.prototype.propertyIsEnumerable('test_proto')");
|
||||
trace(ES3Class.prototype.propertyIsEnumerable('test_proto'));
|
||||
trace("//ES3Class.prototype.propertyIsEnumerable('test_static_var')");
|
||||
trace(ES3Class.prototype.propertyIsEnumerable('test_static_var'));
|
||||
trace("//ES3Class.prototype.propertyIsEnumerable('test_static_function')");
|
||||
trace(ES3Class.prototype.propertyIsEnumerable('test_static_function'));
|
|
@ -0,0 +1,102 @@
|
|||
//es4inst.propertyIsEnumerable('test_var')
|
||||
false
|
||||
//es4inst.propertyIsEnumerable('test_const')
|
||||
false
|
||||
//es4inst.propertyIsEnumerable('test_function')
|
||||
false
|
||||
//es4inst.propertyIsEnumerable('test_virt')
|
||||
false
|
||||
//es4inst.propertyIsEnumerable('test_static_var')
|
||||
false
|
||||
//es4inst.propertyIsEnumerable('test_static_const')
|
||||
false
|
||||
//es4inst.propertyIsEnumerable('test_static_function')
|
||||
false
|
||||
//es4inst.propertyIsEnumerable('test_static_virt')
|
||||
false
|
||||
//es4inst.propertyIsEnumerable('test_private_var')
|
||||
false
|
||||
//es4inst.propertyIsEnumerable('test_private_const')
|
||||
false
|
||||
//es4inst.propertyIsEnumerable('test_private_function')
|
||||
false
|
||||
//es4inst.propertyIsEnumerable('test_private_virt')
|
||||
false
|
||||
//ES4Class.propertyIsEnumerable('test_var')
|
||||
false
|
||||
//ES4Class.propertyIsEnumerable('test_const')
|
||||
false
|
||||
//ES4Class.propertyIsEnumerable('test_function')
|
||||
false
|
||||
//ES4Class.propertyIsEnumerable('test_virt')
|
||||
false
|
||||
//ES4Class.propertyIsEnumerable('test_static_var')
|
||||
false
|
||||
//ES4Class.propertyIsEnumerable('test_static_const')
|
||||
false
|
||||
//ES4Class.propertyIsEnumerable('test_static_function')
|
||||
false
|
||||
//ES4Class.propertyIsEnumerable('test_static_virt')
|
||||
false
|
||||
//ES4Class.propertyIsEnumerable('test_private_var')
|
||||
false
|
||||
//ES4Class.propertyIsEnumerable('test_private_const')
|
||||
false
|
||||
//ES4Class.propertyIsEnumerable('test_private_function')
|
||||
false
|
||||
//ES4Class.propertyIsEnumerable('test_private_virt')
|
||||
false
|
||||
//ES4Class.prototype.propertyIsEnumerable('test_var')
|
||||
false
|
||||
//ES4Class.prototype.propertyIsEnumerable('test_const')
|
||||
false
|
||||
//ES4Class.prototype.propertyIsEnumerable('test_function')
|
||||
false
|
||||
//ES4Class.prototype.propertyIsEnumerable('test_virt')
|
||||
false
|
||||
//ES4Class.prototype.propertyIsEnumerable('test_static_var')
|
||||
false
|
||||
//ES4Class.prototype.propertyIsEnumerable('test_static_const')
|
||||
false
|
||||
//ES4Class.prototype.propertyIsEnumerable('test_static_function')
|
||||
false
|
||||
//ES4Class.prototype.propertyIsEnumerable('test_static_virt')
|
||||
false
|
||||
//ES4Class.prototype.propertyIsEnumerable('test_private_var')
|
||||
false
|
||||
//ES4Class.prototype.propertyIsEnumerable('test_private_const')
|
||||
false
|
||||
//ES4Class.prototype.propertyIsEnumerable('test_private_function')
|
||||
false
|
||||
//ES4Class.prototype.propertyIsEnumerable('test_private_virt')
|
||||
false
|
||||
//es3inst.propertyIsEnumerable('test_var')
|
||||
true
|
||||
//es3inst.propertyIsEnumerable('test_function')
|
||||
false
|
||||
//es3inst.propertyIsEnumerable('test_proto')
|
||||
false
|
||||
//es3inst.propertyIsEnumerable('test_static_var')
|
||||
false
|
||||
//es3inst.propertyIsEnumerable('test_static_function')
|
||||
false
|
||||
//ES3Class.propertyIsEnumerable('test_var')
|
||||
false
|
||||
//ES3Class.propertyIsEnumerable('test_function')
|
||||
false
|
||||
//ES3Class.propertyIsEnumerable('test_proto')
|
||||
false
|
||||
//ES3Class.propertyIsEnumerable('test_static_var')
|
||||
true
|
||||
//ES3Class.propertyIsEnumerable('test_static_function')
|
||||
true
|
||||
//ES3Class.prototype.propertyIsEnumerable('test_var')
|
||||
false
|
||||
//ES3Class.prototype.propertyIsEnumerable('test_function')
|
||||
true
|
||||
//ES3Class.prototype.propertyIsEnumerable('test_proto')
|
||||
true
|
||||
//ES3Class.prototype.propertyIsEnumerable('test_static_var')
|
||||
false
|
||||
//ES3Class.prototype.propertyIsEnumerable('test_static_function')
|
||||
false
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue