openfl
Version:
A fast, productive library for 2D cross-platform development.
154 lines (136 loc) • 3.08 kB
JavaScript
// Class: Reflect
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = require("./hxClasses_stub").default;
var $hxEnums = require("./hxEnums_stub").default;
var $import = require("./import_stub").default;
function haxe_CallStack() {return require("./haxe/CallStack");}
function js__$Boot_HaxeError() {return require("./js/_Boot/HaxeError");}
function js_Boot() {return require("./js/Boot");}
// Constructor
var Reflect = function(){}
// Meta
Reflect.__name__ = "Reflect";
Reflect.__isInterface__ = false;
Reflect.prototype = {
};
Reflect.prototype.__class__ = Reflect.prototype.constructor = $hxClasses["Reflect"] = Reflect;
// Init
// Statics
Reflect.hasField = function(o,field) {
return Object.prototype.hasOwnProperty.call(o,field);
}
Reflect.field = function(o,field) {
try {
return o[field];
} catch( e ) {
(haxe_CallStack().default).lastException = e;
var e1 = ((e) instanceof (js__$Boot_HaxeError().default)) ? e.val : e;
return null;
}
}
Reflect.setField = function(o,field,value) {
o[field] = value;
}
Reflect.getProperty = function(o,field) {
var tmp;
if(o == null) {
return null;
} else {
var tmp1;
if(o.__properties__) {
tmp = o.__properties__["get_" + field];
tmp1 = tmp;
} else {
tmp1 = false;
}
if(tmp1) {
return o[tmp]();
} else {
return o[field];
}
}
}
Reflect.setProperty = function(o,field,value) {
var tmp;
var tmp1;
if(o.__properties__) {
tmp = o.__properties__["set_" + field];
tmp1 = tmp;
} else {
tmp1 = false;
}
if(tmp1) {
o[tmp](value);
} else {
o[field] = value;
}
}
Reflect.callMethod = function(o,func,args) {
return func.apply(o,args);
}
Reflect.fields = function(o) {
var a = [];
if(o != null) {
var hasOwnProperty = Object.prototype.hasOwnProperty;
for( var f in o ) {
if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
a.push(f);
}
}
}
return a;
}
Reflect.isFunction = function(f) {
if(typeof(f) == "function") {
return !((js_Boot().default).isClass(f) || (js_Boot().default).isEnum(f));
} else {
return false;
}
}
Reflect.compare = function(a,b) {
if(a == b) {
return 0;
} else if(a > b) {
return 1;
} else {
return -1;
}
}
Reflect.compareMethods = function(f1,f2) {
if(f1 == f2) {
return true;
}
if(!Reflect.isFunction(f1) || !Reflect.isFunction(f2)) {
return false;
}
if(f1.scope == f2.scope && f1.method == f2.method) {
return f1.method != null;
} else {
return false;
}
}
Reflect.isEnumValue = function(v) {
if(v != null) {
return v.__enum__ != null;
} else {
return false;
}
}
Reflect.deleteField = function(o,field) {
if(!Reflect.hasField(o,field)) {
return false;
}
delete(o[field]);
return true;
}
Reflect.makeVarArgs = function(f) {
return function() {
var a = Array.prototype.slice.call(arguments);
return f(a);
};
}
// Export
exports.default = Reflect;